2017-02-15 57 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

相关问题