2016-01-04 23 views
-1

我在機器A上使用MRJob在機器上啓動MapReduce作業B_0B_10。該作業具有相關性,要求它不以缺省值/bin/python(即機器A上的which python的輸出)運行,但具有/path/to/weird/python,其存在於B的上,但不存在於A上。MRJob使用本地與hadoop不同的Python解釋器

我如何告訴mrjob使用/bin/python本地啓動工作,但/path/to/weird/python一旦它的Hadoop集羣中的B的運行呢?

--interpreter說法似乎確定本地和Hadoop的解釋。是否有另外的選擇單獨指定它們?

還是有一些原因,解釋器使用必須在兩臺機器上相同的路徑?

+0

嗨,downvoter,我怎麼能改善這個問題? –

回答

0

在你的Python文件的頂部添加一個shebang行來告訴系統使用哪個Python環境。

通過env標籤同時允許本地計算機和Hadoop集羣訪問正確的解釋,沒有你需要明確說明的位置,例如:

在/ usr /斌/包膜蟒蛇

!在/ usr/bin中/ env的python3

+0

感謝您的迴應!但我不認爲這解決了我的問題。我想用本地的'/ bin/python'和集羣上的'/ path/to/weird/python'運行它。你是否建議在我的作業文件中放入'!/ path/to/weird/python'會導致我的集羣運行它們?我認爲它運行它們是'python job.py'而不是'。/ job.py'。 –

+0

Hi Eli,is/path/to/weird/python Hadoop集羣上的默認Python環境?如果是這樣,在.py文件中使用!/ usr/bin/env python將在您的Hadoop集羣上從/ path /到/ weird/python運行,並在本地啓動時從/ bin/python運行。 –

+0

不幸的是, –

相關問題