我正在运行一个看起来像
的猪脚本<something>
<something>
B = GROUP A by bucketid PARALLEL 200;
C = FOREACH B {
sorted = SORT A by field1, field2 ...;
GENERATE FLATTEN(sorted);
}
STORE C INTO 'output' USING MultiStorage(output, '8', 'gz');
字段bucketid
需要200个不同的值,因此我将PARALLEL设置为200,期望每个reducer将处理一个组。然而,一些减速器什么都不做,而其他减速器则照顾不止一组。这背后的想法是什么?
我面临的真正问题是,一个reducer R
落后于其他reducer,任务日志显示merging 13GB of data
(并且reducer处于reduce阶段)。但是,根据我的输入数据,我不希望R
处理大量数据。 R
完成后,由它生成的输出部分文件仅为350 MB
(gzip格式),如果我解压缩,则只有6 GB
。所以我想知道为什么当reducer运行时日志显示merging 13 GB of data
。这背后的任何推理?我错过了什么吗?