2

我是猪的新手。

我在 pig 中编写了一个小脚本,其中我首先从两个不同的表中加载数据并进一步右外连接这两个表,然后我还有下一个表连​​接两个不同的 st 数据。它工作正常。但我想看看执行的步骤,比如我的数据是在哪一步加载的,我可以记下加载数据加入步骤的后续细节所需的时间,比如加入这些记录需要多少时间。

基本上我想知道我的猪脚本的哪一部分需要更长的时间来运行,这样我就可以进一步优化我的猪脚本。

无论如何,我们可以在脚本中 println 并找出执行了哪些步骤已经开始执行。

通过 jobtracker 详细信息链接,我无法获得太多信息,只能看到 mapper 正在运行并且 reducer 正在运行,但理想情况下,脚本的哪一部分正在运行的 mapper 找不到。

例如,对于 hive 作业运行,我们可以在 jobtracker 详细信息链接中查看当前正在执行哪个步骤。

任何信息都会非常有帮助。

提前致谢 。

4

2 回答 2

1

我建议你看看以下内容:

另一方面,执行脚本后,您可以看到有关每个别名执行时间的详细统计信息(请参阅:作业统计(以秒为单位的时间))。

于 2013-03-15T11:16:40.323 回答
1

看看EXPLAIN运营商。这不会在代码执行时为您提供实时统计信息,但它应该为您提供有关脚本生成的 MapReduce 计划的足够信息,以便您能够将 MR 作业与脚本中的步骤相匹配。

此外,当您的脚本运行时,您可以检查 Hadoop 作业的配置。查看变量“pig.alias”和“pig.job.feature”。这些分别告诉您,您的哪些别名(表/关系)涉及该作业以及正在使用哪些 Pig 操作(例如,HASH_JOIN 用于一个JOIN步骤,SAMPLER 或 ORDER BY 用于一个ORDER BY步骤,等等)。完成后输出到控制台的作业统计信息也提供此信息。

于 2013-03-15T13:47:11.453 回答