如果在猪的大量TB数据中通过脚本运行一个简单的组时,脚本会停留在70%的比例,那么可以如何诊断问题?如何调试猪脚本
Q
如何调试猪脚本
5
A
回答
9
有几种调试猪脚本的方法。简单的方法是逐步执行关系,然后验证结果。这些命令对调试猪脚本很有用。
DUMP - 使用DUMP运算符运行(执行)Pig拉丁语句并将结果显示在屏幕上。
ILLUSTRATE - 使用ILLUSTRATE运算符来查看数据如何通过Pig拉丁语句序列进行转换。 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'
这将允许运行脚本进入调试模式上面写下面的代码。关于SET
命令的模式详细信息可在此link
0
当您说脚本停留在70%时,我假设您的意思是MR作业已完成70%。
这时最好查看MR和YARN日志(如果需要的话,HDFS日志)以获取有关MR/YARN正在执行的更多信息。通常可以在Cloudera Manager受管群集中的/var/log/hadoop-mapreduce和/var/log/hadoop-hdfs中找到日志。您可能需要检查群集中运行YARN NodeManagers的多个节点中的日志。
如果你的脚本被套牢一个猪的问题(即猪代码,而不是MR/HDFS代码问题),它是有用提高了养猪的log4j的日志记录级别: 猪-d DEBUG就是命令例如,将日志记录级别设置为DEBUG。
相关问题
- 1. 如何测试猪脚本
- 2. 如何在另一个猪脚本中调用猪脚本
- 3. 如何猪脚本
- 4. 从其他猪脚本调用猪拉丁文脚本
- 5. 猪脚本从
- 6. 在猪脚本
- 7. 猪脚本STRSPLIT
- 8. 优化猪脚本
- 9. 格局猪脚本
- 10. 使用猪脚本
- 11. 猪脚本错误
- 12. 运行猪脚本
- 13. 使用猪脚本
- 14. 如何在猪脚本中运行Mapreduce
- 15. 如何从HDFS运行猪脚本?
- 16. 猪:如何给文件输入猪脚本
- 17. 如何从另一个测试脚本调用测试脚本?
- 18. 调试脚本
- 19. 如何使用MS脚本调试程序调试asp服务器端脚本
- 20. 阿帕奇猪脚本
- 21. 猪内脚本总数
- 22. 使用php的猪脚本
- 23. 猪脚本功能问题
- 24. 错误加载猪脚本
- 25. 猪存储脚本失败
- 26. 如何调试Perl CGI脚本?
- 27. 如何正确调试bash脚本
- 28. 如何安装调试器脚本
- 29. 如何在Firebug中调试脚本?
- 30. 如何调试LONG RUNNING php脚本?