hadoop - Hadoop 中的二次排序如何工作?

标签 hadoop mapreduce

我知道在次要排序中我们可以将用户定义的类作为键。这个类可以有两个属性,例如,可以根据第一个(自然键)属性对这些对进行分组,然后根据第二个属性(辅助键)进行排序。我的问题是,键对象的第二个属性(辅助键)具有不同的值。所以reducer不能接收单个key。也就是说,reducer 应该收到一个键列表,因为每个键的第二个属性(辅助键)都有不同的值。那正确吗?

这里是关键类

public class KeyClass extends Configured implements WritableComparable<KeyClass >{

   public boolean secondary;
   public String primary;
    ...

最佳答案

reduce 获取一个键和一个值列表(一个 Iterable)。您获得的 key 与列表中的值之一相关联。如果您想访问辅助键(在值列表中发生变化的复合键值的那部分),那么您也应该将该辅助键放入值中。

关于hadoop - Hadoop 中的二次排序如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20807086/

相关文章:

hadoop - Hive 中 Cluster By 和 CLUSTERED BY 的区别?

java - hadoop wordcount示例java.lang.NoClassDefFoundError:hdfs错误

hadoop - Hadoop任务副作用文件示例

mapreduce - 使用 map-reduce (Couchbase) 编写一个简单的组

java - 实例化 IdentityMapper 得到 ClassException。如何使用IdentityMapper?

java - 使用 MapReduce 查找靠近特定记录的所有记录

azure - Hive 作业失败,来自 org.apache.hadoop.hive.ql.exec.tez.TezTask 的返回代码 1 和查询性能

scala - Spark Scala - 读取具有多种键类型的序列文件?

hadoop - 如何为Hadoop MapReduce2 History Server启用GC日志记录,同时防止日志文件覆盖和限制磁盘空间使用

Hadoop Terasort 基准测试结果不稳定