簡體   English   中英

如何從eclipse調試用mrjob編寫的python MapReduce程序

[英]How to debug python MapReduce programs written in mrjob from eclipse

我正在嘗試使用Ubuntu下的eclipse調試在python的mrjob庫中編寫的mapreduce作業。 有誰知道如何做到這一點?

調試MrJobs有時候會是一個很大的挑戰。 我的學習曲線開始於使用try ...除了mappers和reducers中的子句,產生了(使用traceback模塊)生成的異常,而不是打破了作業流程。 但是第一種方法耗費時間很多次,你需要等待幾分鍾才能完成工作,最后,大多數錯誤都會導致未定義的變量或語法錯誤。 因此,我嘗試使用小型測試日志來提供作業,這大大減少了運行作業所花費的時間,以查看問題所在。 另一種方法是測試hadoop之外的映射器和縮減器,這可以非常方便,因為你可以使用pdb來實現這個目的,並快速找出問題。

最后,您還可以嘗試使用MrJob的文檔,然后您將找到如何在本地運行該作業非常方便: http//packages.python.org/mrjob/runners-inline.html

關鍵是要盡可能多地進行測試。 即使您在本地運行作業,反復重新運行作業也會很快耗盡您的一天。 對我來說最重要的是分解地圖並將步驟縮減為一系列較小的函數,並為每個小步驟編寫單元測試。

另外,請注意本地Python版本與Hadoop實例上安裝的版本之間的差異(最新的EMR實例使用Python 2.6)。 在這里列出了一些調試技巧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM