2017-02-15 58 views
1

我試圖在Spark 2.1.0上運行飛艇和python3(3.5)中的pyspark。我已經得到了pyspark外殼並與python3運行,但在翻過到齊柏林連接到同一本地集羣提供了:在Spark 2.1.0上使用python3在齊柏林飛艇上使用pyspark

Exception: Python in worker has different version 3.5 than that in driver 2.7, PySpark cannot run with different minor versions 

我修改了默認spark-env.sh如下:(略去了未修改線)

SPARK_LOCAL_IP=127.0.0.1 
SPARK_MASTER_HOST="localhost" 
SPARK_MASTER_WEBUI_PORT=8080 
SPARK_MASTER_PORT=7077 
SPARK_DAEMON_JAVA_OPTS="-Djava.net.preferIPv4Stack=true" 
export PYSPARK_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 
export PYSPARK_DRIVER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/ipython 

盯着事情./bin/pyspark和所有的在外殼。

齊柏林配置已飛艇-site.xml中被修改僅移動UI端口遠離8080到8666`zeppelin-env.sh」已被修改如下:(僅示出MODS /添加)

export MASTER=spark://127.0.0.1:7077 
export SPARK_APP_NAME=my_zeppelin-mf 
export PYSPARK_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 
export PYSPARK_DRIVER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/ipython 
export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 

我試過使用蟒蛇,但蟒蛇3.6目前正在創造Spark的問題。另外,我已經使用了一組上述配置設置的w/o成功組合。

配置中引用的設置zeppelin.pyspark.python默認爲python,但從文檔中不清楚如何/在哪裏將其調整爲python3。爲了幫助消除OSX細節,我也能夠在LinuxMint 18.1上覆制這個故障。

  • OSX上運行本地10.11.6
  • Spark是2.1.0彬hadoop2.7
  • 齊柏林0.7.0彬所有

所以我一直膛線通過Zeppelin文檔和互聯網試圖找到適當的配置設置讓Zeppelin以3.5驅動程序運行。希望我失去了一些明顯的東西,但我似乎無法跟蹤這一個。希望有人成功地做到了這一點,並可以幫助識別我的錯誤。

謝謝。

回答

3

當然,在東西張貼./conf/interpreter.json這之後的工作......

在齊柏林配置,我的筆記本電腦之一,我發現了配置:

"properties": { 
    ... 
    "zeppelin.pyspark.python": "python", 
    ... 
} 

更改這:

"properties": { 
    ... 
    "zeppelin.pyspark.python": "python3", 
    ... 
} 

(Combined with the same settings as above)

已失使用python 3.5獲得筆記本電腦的預期效果。然而,這看起來有點笨重/笨拙,我懷疑有一種更優雅的方式來做到這一點。所以我不會稱之爲解決方案/答案,而更多的是解決方案。

2

設置%pyspark解釋器通過Zeppelin UI使用python 3的正確方法如下(在apache/zeppelin docker容器上測試)。

  1. 單擊您的用戶菜單上
  2. 點擊Interpreter菜單項
  3. 搜索spark解釋
  4. 頂部設置zeppelin.pyspark.python配置屬性python3
  5. 點擊Save
  6. 點擊Restart右上角重啓翻譯器

現在,您可以檢查的Python版本打開筆記本電腦並運行下面的代碼:

%pyspark 
import sys 
sys.version_info 

你應該看到像這樣的輸出

sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0) 

您還必須設置PYSPARK_PYTHON和PYSPARK_PYTHON_DRIVER到python3像這樣(例如使用apache/zeppelin docker容器假設zeppelin作爲容器名稱):

docker exec -it zeppelin bash 
cd /zeppelin/conf 
cp zeppelin-env.sh.template zeppelin-env.sh 
cat <<EOF >> zeppelin-env.sh 
export PYSPARK_PYTHON=python3 
export PYSPARK_DRIVER_PYTHON=python3 
EOF 
# Now, press Ctrl+d to exit the container 
docker restart zeppelin 

現在一切都已設置爲與python3運行pyspark

相關問題