我是Pig的新手。
我在pig中编写了一个小脚本,在这个脚本中,我首先从两个不同的表中加载数据,然后右外连接两个表,然后还有下一个连接两个不同st数据的表。它工作得很好。但是我想看看执行的步骤,就像在哪个步骤中加载数据那样,我可以记下加载数据连接步骤的后续细节所需的时间,比如连接这些记录所需的时间。
基本上,我想知道我的pig脚本的哪个部分需要更长的时间来运行,这样我就可以进一步优化我的pig脚本。
不管怎样,我们可以在脚本中println,找出哪些步骤已经执行,哪些步骤已经开始执行。
通过jobtracker详细信息链接,我无法获得太多信息,只能看到mapper正在运行&reducer正在运行,但理想的mapper脚本的哪一部分正在运行却找不到。
例如,对于配置单元作业运行,我们可以在jobtracker详细信息链接中看到当前正在执行的步骤。
任何信息都会非常有用。
提前谢谢。
2条答案
按热度按时间xjreopfe1#
我建议你看一下以下内容:
Pig的进度通知侦听器
彭妮:这是一个监控工具,但我担心它最近没有更新过(例如:除非你修改一些代码,否则它不会为pig0.12.0编译)
twitter的安布罗斯项目。https://github.com/twitter/ambrose
另一方面,在执行脚本之后,您可以看到关于每个别名的执行时间的详细统计信息(请参阅:job stats(time in seconds))。
pgpifvop2#
看一看这个
EXPLAIN
接线员。这不会在代码执行时提供实时统计信息,但它应该为您提供有关脚本生成的mapreduce计划的足够信息,以便您能够将mr作业与脚本中的步骤相匹配。另外,在脚本运行时,可以检查hadoop作业的配置。查看变量“pig.alias”和“pig.job.feature”。它们分别告诉您该作业中涉及哪些别名(表/关系)以及正在使用哪些pig操作(例如,hash\u join for a)
JOIN
步骤、取样器或订单ORDER BY
步骤,依此类推)。完成后输出到控制台的作业统计信息中也提供了此信息。