齐柏林飞艇%python.conda和%python.sql解释器如果不向%PATH添加Anaconda库,将无法工作

齐柏林飞艇%python.conda和%python.sql解释器如果不向%PATH添加Anaconda库,将无法工作,python,apache-spark,pyspark,apache-zeppelin,Python,Apache Spark,Pyspark,Apache Zeppelin,我有以下情况:我想使用有齐柏林飞艇和Spark的Anaconda3 我已安装以下组件: HDP2.5 Spark 2.0.0.x(HDP2.5附带的版本) 齐柏林飞艇0.7.3 使用Python 3.5.4的Anaconda3(Spark 2.0.0和Python 3.6中的PySpark不是朋友) Python2.7附带了HDP2.5,在/usr/bin中提供,该路径被添加到$path中 基本上,我将Python解释器配置为指向我的anaconda版本,在我的例子中是/opt/anacon

我有以下情况:我想使用有齐柏林飞艇和Spark的Anaconda3

我已安装以下组件:

  • HDP2.5
  • Spark 2.0.0.x(HDP2.5附带的版本)
  • 齐柏林飞艇0.7.3
  • 使用Python 3.5.4的Anaconda3(Spark 2.0.0和Python 3.6中的PySpark不是朋友)
  • Python2.7附带了HDP2.5,在/usr/bin中提供,该路径被添加到$path中
基本上,我将Python解释器配置为指向我的anaconda版本,在我的例子中是/opt/anaconda3/bin/Python,这是有效的。我还编辑了zeppelin.sh脚本,包括:

export PYTHONPATH="${SPARK_HOME}/python:${SPARK_HOME}/python/lib/py4j-0.8.2.1-src.zip"
export SPARK_YARN_USER_ENV="PYTHONPATH=${PYTHONPATH}"
export PYSPARK_DRIVER_PYTHON="/var/opt/teradata/anaconda3/envs/py35/bin/ipython"
export PYSPARK_PYTHON="/var/opt/teradata/anaconda3/envs/py35/bin/python"
export PYLIB="/var/opt/teradata/anaconda3/envs/py35/lib"
直到这里一切都好

当我尝试%python.conda%python.sql解释器时,它们失败了,因为找不到conda命令,也找不到panda。 我将库位置添加到$PATH环境变量中,齐柏林飞艇能够找到这些命令,但副作用是,整个环境的默认Python版本变成3.5而不是2.7,我开始得到另一个类似这样的错误:

apache.zeppelin.interpreter.InterpreterException:   File "/usr/bin/hdp-select", line 205
    print "ERROR: Invalid package - " + name
                                    ^
SyntaxError: Missing parentheses in call to 'print'
ls: cannot access /usr/hdp//hadoop/lib: No such file or directory
Exception in thread "main" java.lang.IllegalStateException: hdp.version is not set while running Spark under HDP, please set through HDP_VERSION in spark-env.sh or add a java-opts file in conf with -Dhdp.version=xxx
当我切换回来并从$PATH中删除Python3库时,它会再次工作

是否有任何优化的方法来配置我的环境,以使一切工作正常,并使其易于管理和维护

我想在/var/lib中为需要查找的文件创建符号链接,但我不知道需要多少,我不想为除了python3之外的所有人创建链接

如有任何评论,将不胜感激


亲爱的保罗,我也遇到了同样的错误。经过调查,我找到了错误的根源。看起来齐柏林飞艇默认使用“/bin/conda”作为conda的默认路径

我可以通过执行以下操作来修复它:

  • 创建指向/bin/conda:
    ln-s/opt/anaconda3/bin/conda/bin/conda的符号链接
  • 创建指向/bin/python的符号链接:
    ln-s/opt/anaconda3/bin/python/bin/python
  • 在Python解释器的设置中,将zeppelin.Python设置为
    /opt/anaconda3/bin/python3
  • 将/usr/lib/zeppelin/conf/zeppelin-env.sh中的PYTHONPATH设置为
    export PYTHONPATH=/opt/anaconda3/bin
看起来这种行为也存在JIRA问题