我已阅读Pig Cookbook的文档,它说
PARALLEL only affects the number of reduce tasks. Map parallelism is determined by the input file, one map for each HDFS block.
我不明白ORDER
如何设置减速器的数量,我认为要获得总排序,最终我们只需要使用1个减速器来获取所有中间结果并合并,是什么参数PARALLEL
是指?
答案 0 :(得分:0)
它可以正常工作,因为reducer以一种方式对密钥进行分区,使得由reducer N处理的密钥是> =由N-1处理的密钥。
为此,Pig进行采样,然后对ORDER进行分区。它对输入的前几条记录进行采样,并查看订购密钥的分布。基于此示例,它然后构建一个生成平衡总订单的分区程序。 例如我们在一个字段上排序的值是a,b,c,c,c,c,e,e,e,m,n,o,q,r,z,如果我们有三个reducer,分区器会分区字段ac转到reducer 1的记录,e-m转到reducer 2,nz转到reducer3。 然后,每个reducer在本地对数据进行排序,从而产生全局排序的数据。