我有一个pig脚本,它记录不同应用程序的处理,并计算一些度量。当它运行时,我观察到与其他Map器相比,一些Map器单独需要更多的时间/分割来处理。例如,如果有25个绘图员,21个将在2或3分钟内完成,其余4个需要30分钟。我想知道是什么原因导致这种偏斜,以及如何修复它?
我的任务的简单版本如下。这个pig脚本遍历来自不同应用程序的大量日志文件。对于每个日志,它使用regex解析数据,并报告各种维度每小时的流量计数、平均响应时间等指标
这段代码非常长,每个都有多个过滤器,一个join&一个大groupby,有多个维度,如下所示。c3=group c2 by(appname、timestamp、consumerid、resourcename、methodname、apiname、manifestid、version、siteid、status);
似乎我正在处理的输入文件格式控制着分割的大小,每个分割的大小都不一样。所以我不能控制分裂。我试着不将pig.nosplitcombination作为true来组合拆分,但结果仍然是一样的。
更新:无法继续执行许多解决方案。这也不是数据倾斜的问题。不管怎样,删除联接中使用的一些空值有一定的帮助。但问题仍然存在。保持问题的开放性
暂无答案!
目前还没有任何答案,快来回答吧!