2017-10-16 68 views
0

我已經編寫了一個非常簡單的python腳本來測試我的火花流的想法,並計劃在我的本地機器上運行它來混亂一點點。下面是一個命令行:Spark-submit無法找到本地文件

spark-submit spark_streaming.py localhost 9999 

但終端丟給我一個錯誤:

Error executing Jupyter command '<the/spark_streaming.py/file/path>': [Errno 2] No such file or directory 

我不知道爲什麼會發生這種事,我敢肯定,.py文件確實存在。

編輯:有與python代替​​

而且也,在.bashrc文件中添加的行運行它沒有問題:

export PATH="/usr/local/spark/bin:$PATH" 
export PYSPARK_DRIVER_PYTHON=jupyter 
export PYSPARK_DRIVER_PYTHON_OPTS='notebook' 
export SPARK_LOCAL_IP=localhost 

回答

0

假如你希望​​紗線位於一個Python腳本在/home/user/scripts/spark_streaming.py,正確的語法如下:

spark-submit --master yarn --deploy-mode client /home/user/scripts/spark_streaming.py 

您可以intercha nge各種標誌的排序,但腳本本身必須在最後;如果您的腳本接受參數,則應遵循腳本名稱(例如,請參閱this example計算帶有10個小數位的pi)。

對於在本地執行2個內核,您應該使用--master local[2] - 對所有可用的本地內核使用--master local[*](在這兩種情況下都不使用deploy-mode標誌)。

查看docs瞭解更多信息(儘管承認它們在pyspark示範中相當差)。

PS的Jupyter提,在您的錯誤信息以及顯示的路徑是非常令人費解...

UPDATE:似乎PYSPARK_DRIVER_PYTHON=jupyter混亂了一切,漏斗通過Jupyter(執行這是不可取這裏,它可能會解釋奇怪的錯誤信息)。嘗試在.bashrc修改環境變量如下:

export SPARK_HOME="/usr/local/spark" # do not include /bin 
export PYSPARK_PYTHON=python 
export PYSPARK_DRIVER_PYTHON=python 
export PYSPARK_DRIVER_PYTHON_OPTS="" 

source .bashrc

+0

不幸的是,無論我如何配置這些標誌和參數,錯誤都保持不變。說到'Jupyter',我想這可能是由於我在.bashrc文件中設置了一些環境變量?順便說一句,我用'python'運行它,而不是'spark-submit',這很奇怪。大聲笑 –

+0

@JamesWong Jupyter在這裏應該沒有什麼可做的。這個'/ spark_streaming.py/file/path'從哪裏來?你配置了'SPARK_HOME'嗎? – desertnaut

+0

我沒有明確地在任何地方設置SPARK_HOME,因爲您可以在上面更新的帖子中看到。 spark_streaming.py文件就是坐在本地磁盤上的文件。 –