pig中的减速机尺寸优化的最佳方法是什么?

xwbd5t1u  于 2021-06-21  发布在  Pig
关注(0)|答案(2)|浏览(313)

我是新来的Pig,工作的脚本,我面临的情况。我的工作运行相当有效的大多数减速机,但最后几个减速机需要几个小时才能完成。我能给出的唯一合理的解释是,很少有缩减器有大量的数据,这是很有可能的,因为作为Map练习,我必须将一个超过1000万行的数据集连接到一个大约500行的数据集。
我发现的两种方法是使用并联设置减速器的数量,另一种是使用 pig.exec.reducers.bytes.per.reducer .
对我来说,哪种方法更好(可能有大量的记录Map到一个键)。
另外,对于 pig.exec.reducers.bytes.per.reducer 正确的实施方法是什么?

uelo1irk

uelo1irk1#

这是一个很好的调整Map减少工作文件:-http://blog.cloudera.com/blog/2015/07/how-to-tune-mapreduce-parallelism-in-apache-pig-jobs/
正如您也猜到的,这似乎是数据偏斜的问题-很少有键比其他键有更多的记录。
如果您的一个文件很小,很容易放入内存,请尝试使用复制连接。这是Map器端连接,通常会处理数据偏斜问题

uttx8gqw

uttx8gqw2#

为了优化连接,应该使用复制连接作为

C = JOIN big BY b1, tiny BY t1, mini BY m1 USING 'replicated';

要并行处理作业或增加所有步骤的减速机数量,只需添加一行

SET default parallel 100;

在pig脚本的开头,或者您可以使用

parallel 100; //on the line of the code

相关问题