Mapreduce 猪:为什么我们可以设置平行顺序运算符
我看过的文件,上面说Mapreduce 猪:为什么我们可以设置平行顺序运算符,mapreduce,apache-pig,Mapreduce,Apache Pig,我看过的文件,上面说 PARALLEL only affects the number of reduce tasks. Map parallelism is determined by the input file, one map for each HDFS block. 我不明白ORDER如何设置减缩器的数量,我认为要得到总排序,最终我们只需要使用一个减缩器来获取所有中间结果并合并,参数PARALLEL指的是什么 它可以工作,因为reducer在key上对数据进行分区,这样reduce
PARALLEL only affects the number of reduce tasks. Map parallelism is determined by the input file, one map for each HDFS block.
我不明白
ORDER
如何设置减缩器的数量,我认为要得到总排序,最终我们只需要使用一个减缩器来获取所有中间结果并合并,参数PARALLEL
指的是什么 它可以工作,因为reducer在key上对数据进行分区,这样reducer N处理的key就是>=N-1处理的key
为此,Pig先进行采样,然后进行顺序分区。它对输入的前几条记录进行采样,并查看排序键的分布。基于此示例,它然后构建一个生成平衡的总订单的分区器。
e、 我们在一个值为a、b、c、c、e、e、e、m、n、o、q、r、z的字段上进行排序,如果我们有三个减缩器,分区器将对记录进行分区,字段a-c到减缩器1,e-m到减缩器2,n-z到减缩器3。
然后,每个reducer在本地对数据进行排序,生成全局排序的数据。字符串呢?它是按字典顺序排序的,但您可以使用不同的方法计算其哈希键,因此键的顺序可能与字典的顺序不一致,这种情况下,如果您在本地对其进行排序,则不会自动获得全局排序的数据。这就是键。钥匙的顺序和字典的顺序一样。不,不一样。字典的顺序只有相对意义,因为字符串可以任意长,而散列值是固定长度的整数,即使是64位整数的完美散列也只能对不超过14个字符的字符串进行排序。我想我不明白你的第一条评论。无论如何,关键点是使用整键来决定顺序操作的分区算法。因此,它确保通过还原器发送半有序数据,以便进行本地排序。