Hadoop 减速器输出各键值列表的排序

Hadoop 减速器输出各键值列表的排序,hadoop,Hadoop,我是hadoop新手,对hadoop有点困惑 在mapreduce作业中,reducer获取每个键的值列表。我想知道,每个键的默认值顺序是什么。与从映射器中写入的顺序相同。可以更改每个键中值的顺序(例如asc或desc)。在MapReduce中,有几个属性会影响贴图输出的发射。这称为二次排序。也就是说,有两个因素会影响这一点: Partitioner,它将贴图输出划分到还原器中。每个分区由一个reduce任务处理,因此分区的数量等于作业的reduce任务的数量 比较器,用于比较具有相同键的值 默

我是hadoop新手,对hadoop有点困惑


在mapreduce作业中,reducer获取每个键的值列表。我想知道,每个键的默认值顺序是什么。与从映射器中写入的顺序相同。可以更改每个键中值的顺序(例如asc或desc)。

在MapReduce中,有几个属性会影响贴图输出的发射。这称为二次排序。也就是说,有两个因素会影响这一点:

  • Partitioner,它将贴图输出划分到还原器中。每个分区由一个reduce任务处理,因此分区的数量等于作业的reduce任务的数量
  • 比较器,用于比较具有相同键的值 默认的分区器是类,它散列记录的键以确定记录属于哪个分区

    比较器因数据类型而异。如果要控制排序顺序,请覆盖
    writeablecomparator()
    接口的
    compare(writeablecomparable,writeablecomparable)


    的顺序与从映射器中写入的顺序相同。
    - 这对于单个映射器是正确的。但是,如果您的作业有多个映射器,您可能不会看到使用相同输入的两次运行的相同顺序,因为不同的映射器可能会在不同的时间结束

    能否更改每个键中值的顺序(如asc或desc)
    - 它是使用一种叫做“二次排序”的技术来完成的(你可以通过谷歌来获取更多关于这方面的信息)