我見過一種技術(在stackoverflow上),用於使用zip文件執行hadoop streaming作業來存儲引用的python模塊。hadoop streaming with python modules
我在作業執行的映射階段出現了一些錯誤。我相當確定它與拉鍊模塊加載有關。
要調試腳本,我已經運行我的數據通過sys.stdin設置/ sys.stdout的使用命令行管到我的映射器和減速機等等這樣的事情:
頭inputdatafile.txt | ./mapper.py | sort -k1,1 | ./reducer.py
結果看起來不錯。
當我通過hadoop運行時,我開始遇到一些問題。即:映射器和簡化器失敗,整個hadoop作業完全失敗。
我的zip'd模塊文件包含* .pyc文件 - 是否會影響這件事?
另外我可以在哪裏找到在使用hadoop流式傳輸的地圖/縮減過程中產生的錯誤?
我已經使用-file命令行參數告訴hadoop zip'd模塊的位置以及映射器和reducer腳本的位置。
我沒有做任何瘋狂的配置選項來增加工作中使用的mappers和reducer的數量。
任何幫助將不勝感激!謝謝!
...爲什麼你確定它是拉鍊模塊? –
這是我第一次嘗試用zip'd模塊做這件事 - 作爲一個測試,我寫了一個非常簡單的映射器和簡化器,它除了讀取sys.stdin並寫入sys.stdout之外什麼都不做,而且工作得很好。在我使用zip'd模塊的腳本中添加的那一分鐘,映射器失敗了。我想通過命令行測試是否正在工作,並且hadoop正在使用我的簡約測試進行流式處理,然後它必須是我如何使用zip'd模塊。 –
證明問題在於nltk.tokenize模塊。在hadoop-streaming上下文中使用該組件的任何幫助將不勝感激! –