我该如何调试猪脚本

时间:2015-05-12 18:14:46

标签: hadoop apache-pig bigdata

如果在猪中使用脚本运行一个简单的组来获取大数TB的数据,那么脚本就会停留在70%,那么可以采取哪些措施来诊断问题呢?

2 个答案:

答案 0 :(得分:10)

调试pig脚本有几种方法。简单的方法是逐步执行关系,然后验证结果。这些命令对调试猪脚本非常有用。

DUMP - 使用DUMP运算符运行(执行)Pig Latin语句并将结果显示在屏幕上。

ILLUSTRATE - 使用ILLUSTRATE运算符来查看如何通过一系列Pig Latin语句转换数据。 ILLUSTRATE允许您在小型数据集上测试程序并缩短周转时间。

EXPLAIN - 使用EXPLAIN运算符查看用于计算指定关系的逻辑,物理和地图缩减执行计划。

DESCRIBE - 使用DESCRIBE运算符查看关系的架构。您可以查看外部关系以及嵌套FOREACH语句中定义的关系。

有关这些命令的更多详细信息,请参见link。 另请参阅developing and testing a pig script.以了解更多详情。

如果要在执行期间调试整个脚本,则需要在脚本顶部编写下面的代码

-- set the debug mode on 
SET debug 'on'
-- set a job name of your job.
SET job.name 'my job'

这将允许您的脚本运行到调试模式。 link

上提供了关于SET命令的模式详细信息

答案 1 :(得分:0)

当你说脚本停留在70%时,我认为你的意思是MR工作完成了70%。

最好在此时查看MR和YARN日志(如果需要,还有HDFS日志),以获取有关MR / YARN正在做什么的更多信息。日志通常位于Cloudera Manager托管集群中的 / var / log / hadoop-mapreduce / var / log / hadoop-hdfs 下。您可能需要检查运行YARN NodeManagers的群集中多个节点的日志。

如果您的脚本遇到Pig问题(即Pig代码中的问题,而不是MR / HDFS代码),那么增加Pig中的log4j日志记录级别会很有用: pig -d DEBUG 是用于将日志记录级别设置为DEBUG的命令行选项。