Is the the same order as it has been written out from the mapper. -是的,对于单个Map器是这样的。但是,如果您的作业有多个Map器,您可能看不到使用相同输入的两次运行的相同顺序,因为不同的Map器可能会结束不同的时间。 Can you change the ordering ( eg asc or desc ) of the values in each key -是的,它是使用一种叫做“二次排序”的技术来完成的(你可以在谷歌上搜索更多关于这个的内容)。
2条答案
按热度按时间u5rb5r591#
在mapreduce中,有几个属性会影响贴图输出的发射。这被称为二次排序。也就是说,有两个因素会影响这一点:
partitioner,它将Map输出在减速器之间进行分割。每个分区都由一个reduce任务处理,因此分区数等于作业的reduce任务数。
比较器,用于比较具有相同键的值。
默认的分区器是
org.apache.hadoop.mapred.lib.HashPartitioner
类,它散列记录的键以确定该记录属于哪个分区。比较器因数据类型而异。如果要控制排序顺序,请重写
compare(WritableComparable,WritableComparable)
的WritableComparator()
接口。请参阅此处的文档。qyswt5oh2#
Is the the same order as it has been written out from the mapper.
-是的,对于单个Map器是这样的。但是,如果您的作业有多个Map器,您可能看不到使用相同输入的两次运行的相同顺序,因为不同的Map器可能会结束不同的时间。Can you change the ordering ( eg asc or desc ) of the values in each key
-是的,它是使用一种叫做“二次排序”的技术来完成的(你可以在谷歌上搜索更多关于这个的内容)。