如果在豬的大量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腳本?