4

我正在使用 PIG latin 进行日志处理,因为它在数据不足以担心设置整个 hadoop 集群的问题中的表现力。我在本地模式下运行 PIG,但我认为它没有使用所有可用的内核(目前为 16 个),监控 CPU 显示最多 200% 的 CPU 使用率。

是否有任何关于微调 PIG 以进行本地执行的教程或建议?我确信所有映射器都可以通过一些简单的调整来使用所有可用的内核。(在我的脚本中,我已经将 default_parallel 参数设置为 20)

最好的祝福。

4

1 回答 1

5

Pig 的文档清楚地表明,本地操作旨在单线程运行,为某些函数采用不同的代码路径,否则这些函数将使用分布式排序。因此,针对 Pig 的本地模式进行优化似乎是对所提出问题的错误解决方案。

您是否考虑过运行本地“伪分布式”集群,而不是投资于完整的集群设置?您可以按照Hadoop 的说明进行伪分布式操作,然后将 Pig 指向localhost. 这将获得预期的结果,但代价是两步启动和拆卸。

您需要增加默认映射器和减速器的数量以消耗您机器上所有可用的内核。幸运的是,这是相当有据可查的(诚然,在集群设置文档中);只需在本地副本中定义mapred.tasktracker.map.tasks.maximum和.mapred.tasktracker.reduce.tasks.maximum$HADOOP_HOME/conf/mapred-site.xml

于 2010-12-16T20:56:50.600 回答