2016-09-16 182 views
5

在本地運行,我試圖用jupyter-notebook (v4.2.2)遠程對spark cluster (v2.0),但是當我運行下面的命令,它不火花運行,但只能在本地運行:Jupyter筆記本只在星火

PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook --no-browser --port=7777" pyspark --master spark://**spark_master_hostname**:7077 

當我運行pyspark單獨使用相同的--master argument,該過程顯示在"Running Applications"火花簇就好了。

pyspark --master spark://**spark_master_hostname**:7077 

這幾乎就好像pyspark沒有在前者運行。第一個命令阻止jupyter在火花集羣上運行或更好地在火花集羣上運行筆記本電腦有什麼問題嗎?

回答

1

它看起來要加載IPython shell,而不是IPython notebook,並通過命令行使用PySpark?

國際海事組織木星UI是更方便的方式來使用筆記本電腦。

您可以運行jupyter服務器:

jupyter notebook 

然後(使用jupyter UI)開始新Python2內核。在打開筆記本創建SparkContext與配置指向你的火花集羣:

from pyspark import SparkContext, SparkConf 
conf = SparkConf() 
conf.setMaster('spark://**spark_master_hostname**:7077') 
conf.setAppName('some-app-name') 
sc = SparkContext(conf=conf) 

現在你已經pyspark應用程序啓動火花羣集上,你可以通過創建SparkContext與它進行交互。即:

def mod(x): 
    import numpy as np 
    return (x, np.mod(x, 2)) 
rdd = sc.parallelize(range(1000)).map(mod).take(10) 
print rdd 

上面的代碼將被遠程計算。

0

此問題的解決方案可能需要隧道。我爲我的公司設置了以下說明。

你可以做一些環境改變,讓pyspark默認ipython或jupyter筆記本。

將在下面的~/.bashrc

export PYSPARK_PYTHON=python3 ## for python3 
export PYSPARK_DRIVER_PYTHON=ipython 
export PYSPARK_DRIVER_PYTHON_OPTS="notebook --no-browser --port=7000" 

參見:pyspark on GitHub

接下來,運行source ~/.bashrc

然後,當你啓動pyspark --master yarn(火花紗),它會打開一個服務器你連接到。

在具有SSH功能的本地終端,運行

ssh -N -f -L localhost:8000:localhost:7000 <username>@<host> 

如果您使用的是Windows,我建議MobaXtermCygwin

打開一個網頁瀏覽器,並與星火輸入地址localhost:8000隧道到您的筆記本

一些預防措施,我從來沒有與Python 3嘗試這樣做,所以如果你正在使用Python 3作爲默認,它可能需要額外的設置。