如何调试pig脚本

5lhxktic  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(270)

如果在pig中运行一个简单的groupby脚本来获取大TB的数据时,脚本被卡住了,比如说70%,那么可以做些什么来诊断问题呢?

l5tcr1uw

l5tcr1uw1#

有几种方法可以调试pig脚本。简单的方法是逐步执行关系,然后验证结果。这些命令对于调试pig脚本非常有用。
dump-使用dump操作符运行(执行)pig拉丁语句并将结果显示到屏幕上。
说明-使用说明运算符查看数据是如何通过一系列语句进行转换的。演示允许您在小数据集上测试程序,并获得更快的周转时间。
explain—使用explain操作符查看用于计算指定关系的逻辑、物理和map reduce执行计划。
descripe-使用descripe操作符查看关系的模式。您可以查看外部关系以及嵌套foreach语句中定义的关系。
有关这些命令的更多详细信息,请访问此链接。也请参考开发和测试Pig脚本。了解更多细节。
如果要在执行期间调试整个脚本,则需要在脚本顶部编写以下代码

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

这将允许将脚本运行到调试模式。关于模式详细信息 SET 命令在此链接上可用

ux6nzvsh

ux6nzvsh2#

当你说剧本停留在70%时,我想你的意思是mr的工作完成了70%。
此时最好查看mr和yarn日志(如果需要,还可以查看hdfs日志),以获取有关mr/yarn正在做什么的更多信息。日志通常可以在cloudera manager管理的集群中的/var/log/hadoop mapreduce和/var/log/hadoop hdfs下找到。您可能需要检查群集中运行yarn节点管理器的多个节点的日志。
如果您的脚本遇到pig问题(即pig代码中的问题,而不是mr/hdfs代码中的问题),增加pig中的log4j日志级别是很有用的:例如,pig-d debug是将日志级别设置为debug的命令行选项。

相关问题