Hadoop Pig-优化字数

Hadoop Pig-优化字数,hadoop,mapreduce,apache-pig,Hadoop,Mapreduce,Apache Pig,在规范的pig wordcount示例中,我很好奇人们是如何优化条件的,在这种条件下,按单词分组可能会导致一个包含许多(许多)元素的包 例如: A = load 'input.txt'; B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word; C = group B by word; D = foreach C generate COUNT(B), group; 在C行中,如果有一个单词,比如说“the”,在输入文件中出

在规范的pig wordcount示例中,我很好奇人们是如何优化条件的,在这种条件下,按单词分组可能会导致一个包含许多(许多)元素的包

例如:

A = load 'input.txt';
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = group B by word;
D = foreach C generate COUNT(B), group;

在C行中,如果有一个单词,比如说“the”,在输入文件中出现了10亿次,这可能会导致减速机在处理过程中挂起很长时间。可以采取哪些措施来优化此功能?

在任何情况下,PIG都将评估是否可以使用合路器,如果可以,将使用合路器


在您的示例中,它显然会引入一个组合器,将每个单词的键值对数量减少到几个,或者在最佳情况下仅减少一个。因此,在减速机方面,每个给定单词不会有大量的键/值。

最近版本的Pig会自动组合这些键/值,这是正确的,您将在解释语句中看到。虽然这将减少进入高出现率单词的减缩器的键值对的数量,但在实践中,它似乎没有减少那么多。这些热点可能会导致一个减速器在其他所有工作完成后卡住数小时。还有其他优化吗?