`
yaojingguo
  • 浏览: 208957 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Secondary Sort in Hadoop

    博客分类:
  • java
 
阅读更多
I write this stuff since it confused me a lot.

First, the input Iterable values for reduce method is not sorted in any
order. It is mentioned on Page 277 in Hadoop: The Definitive Guide,
Third Edition.

Job has three methods related to second sort:

  1) setPartitionerClass
  2) setSortComparatorClass
  3) setGroupingComparatorClass

For 0.18.3 API, JobConf's following three methods are used:
  1) setPartitionerClass
  2) setOutputKeyComparatorClass
  3) setOutputValueGroupingComparator

The confusing part is setGroupingComparatorClass. For the following
input for reduce:

<k1, v1> <k2, v2> // sorted by key from map phase

If setGroupingComparatorClass decides that k1 is equivalent to k2 even
thought k1 and k2 are different, the output from reduce method will be:

<k1, <v1, v2>> // <v1, v2> are in the original key order, k2 is lost.

Now let's talk about MaxTemperatureUsingSecondarySort. Input is like:

1901 99
1901 98
1902 80
1902 10

The output from map is:

<<1901, 99>, null>
<<1901, 98>, null>
<<1902, 80>, null>
<<1902, 10>, null>

The reduce method will be invoked twice. The output is:

<1901, 99>
<1902, 80>

Now turns to SecondarySort in Hadoop examples. For the same input, the
output from map is:

<<1901, 98>, 98>
<<1901, 99>, 99>
<<1902, 10>, 10>
<<1902, 80>, 80>

The reduce method will also be invoked twice. The output is:

<1901, 98>
<1901, 99>
<1902, 10>
<1902, 80>
分享到:
评论

相关推荐

    Hadoop大数据期末考试重点

    2. **配置文件的区别**:hadoop-env.sh配置文件用于确保Hadoop系统能正常运行HDFS守护进程,如NameNode、Secondary NameNode和DataNode,而非yarn-env.sh。 3. **Hadoop2.x的Block大小**:在Hadoop2.x中,默认的...

    hadoop in action中文电子版

    本书首先会介绍Hadoop的基本架构,包括NameNode、DataNode、Secondary NameNode等组件的工作方式,以及HDFS的文件读写流程。接着,它会详细讲解MapReduce的工作原理,包括Mapper和Reducer阶段,以及中间结果的 ...

    Hadoop 官方文档(中文版)

    - MapReduce 模型:理解Map和Reduce两个主要阶段,以及Shuffle和Sort的过程。 - JobTracker与TaskTracker(旧版)/ResourceManager与NodeManager(YARN):了解任务调度和执行的逻辑。 - 自定义Mapper和Reducer:...

    hadoop源代码存档

    2. hadoop-hdfs:实现了HDFS,包括NameNode(元数据管理)、DataNode(数据存储)和Secondary NameNode(元数据备份)的源码。 3. hadoop-mapreduce:实现了MapReduce计算框架,包括JobTracker(任务调度)、...

    hadoop 1.2.1核心源码

    9. **MapReduce工作流程**:在Hadoop 1.2.1中,MapReduce包括Map阶段和Reduce阶段,中间数据通过Shuffle和Sort进行处理。通过源码,我们可以看到这些阶段如何协调工作,以及数据如何在节点之间流动。 10. **HDFS...

    Hadoop Real-World Solutions Cookbook 源代码

    6. **Chap 7 - 高级MapReduce技术**:涵盖如使用Secondary Sort进行复杂排序,或者使用New API(MapReduce v2, YARN)提升性能和资源管理。 7. **Chap 8 - Hadoop优化与故障排除**:这部分内容可能涉及Hadoop集群的...

    数据算法--HadoopSpark大数据处理技巧.pdf

    这份“数据算法--HadoopSpark大数据处理技巧”文档显然探讨了如何利用这两个工具进行复杂的数据操作,具体涉及到Scala编程实现的两个重要算法:Secondary Sort(二级排序)和Common Friends(共同朋友计算)。...

    hadoop高级应用

    5. **数据处理优化**:在Hadoop中,可以通过优化MapReduce的Job配置,如调整Split大小,优化Reducer数量,使用Combiner减少网络传输,以及利用Secondary Sort等技术来提升处理效率。 6. **容错与稳定性**:Hadoop...

    hadoop-2.7.1.tar.gz

    - HA(High Availability):在2.7.1版本中,HDFS支持NameNode的高可用性,通过使用Secondary NameNode和Quorum Journal Manager实现,确保了服务的连续性。 - HDFS Federation:允许多个独立的命名空间并行运行在...

    实战hadoop中的源码

    Reduce阶段则将Mapper的结果聚合,通过Shuffle和Sort过程,保证相同键值对的数据被同一个Reducer处理。 4. **源码分析**:深入Hadoop源码,可以了解如数据分块策略、Block和Packet的定义、心跳机制、故障恢复策略等...

    hadoop 二次排序 原理

    本文将深入解析Hadoop的二次排序(Secondary Sort)原理,这是一个允许用户自定义排序规则以满足特定需求的功能。 首先,二次排序是在MapReduce框架内进行的一种特殊排序方式,它遵循两个主要步骤:第一字段排序和...

    Hadoop权威指南(中文版-带目录索引)

    1. **Hadoop架构**:介绍Hadoop的整体设计,包括NameNode、DataNode、Secondary NameNode等节点的角色和功能,以及它们如何协同工作以提供数据存储和访问。 2. **HDFS原理**:详细解析HDFS的数据存储机制,如数据块...

    Hadoop权威指南(中文版)(带书签)

    在《Hadoop权威指南》中,读者可以深入了解到Hadoop的架构原理,包括NameNode和DataNode的角色,以及Secondary NameNode的功能。书中详细解释了HDFS的写入、读取过程,如何处理数据块的复制和故障恢复,以及如何扩展...

    hadoop学习总结(面试必备)

    2. Shuffle与Sort:Map阶段产生的中间结果依据键进行排序和分区,为Reduce阶段做准备。 3. Reduce阶段:Reduce函数将相同键的值组合,进行聚合计算,生成最终结果。 4. 并行处理:多个Map任务和Reduce任务可以并行...

    hadoop-3.1.1-src.tar.gz

    - **Secondary NameNode**:辅助NameNode,帮助合并编辑日志,减轻NameNode的压力。 - **HDFS副本策略**:通过在不同的节点上复制数据块,确保数据的可靠性和容错性。 3. **MapReduce**: - **Map阶段**:将输入...

    Hadoop和hive大数据面试题

    1. Hadoop的架构:理解Hadoop的主节点(NameNode)和从节点(DataNode)的角色,以及Secondary NameNode的作用。 2. HDFS的工作原理:深入理解数据块的概念,以及副本策略如何确保数据冗余和容错性。 3. MapReduce的...

    hadoop权威指南4书上项目源码等

    理解Hadoop的分布式环境,包括NameNode、DataNode、Secondary NameNode等节点的角色,以及它们如何协同工作以确保数据的可靠存储和访问。 2. **HDFS详解**:HDFS的文件块、副本策略、故障恢复机制是学习的重点。书...

    Data Algorithms: Recipes for Scaling Up with Hadoop and Spark pdf

    书中还讨论了Secondary Sort(二级排序)问题,提供了Hadoop和Spark解决方案的详细案例分析,包括输入、预期输出、map()和reduce()函数的介绍,以及实际代码示例的运行结果。 书中对于Secondary Sort问题进行了深入...

    hadoop 2.7.2 源码

    源码中,你可以看到NameNode、DataNode和Secondary NameNode等节点的角色定义,以及文件的块级存储、复制策略和故障恢复机制。 2. **MapReduce**:MapReduce是Hadoop的计算模型,用于并行处理大量数据。它将复杂...

    Hadoop面试100题

    - **Shuffle & Sort**:中间结果的排序和分区,为Reducer输入做准备。 4. **Hadoop与Java的关系** - **编程接口**:Hadoop主要使用Java API开发,如`org.apache.hadoop.mapreduce`包下的类。 - **序列化**:...

Global site tag (gtag.js) - Google Analytics