получение "java.lang.RuntimeException: не удалось выполнить` conda info`, выход с 1 "при использовании anaconda на Apache Zeppelin - PullRequest
1 голос
/ 02 мая 2019

Я использую Cloudera VM с Apache Zeppelin Для одного проекта временного ряда мне пришлось установить пакет Anaconda, потому что мне нужно было несколько пакетов Python (Pandas и FBProhet).

Работает нормально, если я использую интерпретатор %spark.pyspark и указываю свой двоичный файл python на /home/oracle/.conda/envs/prophet/bin/python (это среда conda с пандами и пророком)

Но когда я использую интерпретатор python вместо spark, я получаю следующую ошибку: (когда вы используете anaconda, вы должны активировать необходимую среду)

%python.conda info

java.lang.RuntimeException: Failed to execute `conda info` exited with 1
    at org.apache.zeppelin.python.PythonCondaInterpreter.runCommand(PythonCondaInterpreter.java:412)
    [...]
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

zeppelin.python для двоичного файла python для определенной среды, но я должен быть в состоянии заставить его работать со средой python и иметь возможность переключаться на другую среду без изменения переменных среды или настроек Zeppelin.

Если я установлю следующие переменные в zeppelin-env.sh, он будет работать нормально:

export PYSPARK_PYTHON=/home/oracle/.conda/envs/prophet/bin/python
export PYTHONPATH=/home/oracle/.conda/envs/prophet/bin

Но они должны указывать на нейтральный путь:

export PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python
export PYTHONPATH=/opt/cloudera/parcels/Anaconda/bin

Но в этом случае это не работает, потому что интерпретатор не может найти необходимые библиотеки (Pandas, FBProphet и т. Д.)

Согласно официальной документации следующая строка является первой в одном блокноте Zeppelin

%python.conda info

, которая выдает следующую ошибку:

java.lang.RuntimeException: Failed to execute `conda info` exited with 1
    at org.apache.zeppelin.python.PythonCondaInterpreter.runCommand(PythonCondaInterpreter.java:412)
    at org.apache.zeppelin.python.PythonCondaInterpreter.runCondaCommandForTextOutput(PythonCondaInterpreter.java:180)
    at org.apache.zeppelin.python.PythonCondaInterpreter.runCondaInfo(PythonCondaInterpreter.java:263)
    at org.apache.zeppelin.python.PythonCondaInterpreter.interpret(PythonCondaInterpreter.java:108)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:103)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:632)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:188)
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:140)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Я ожидаю, что смогу переключаться между средами anaconda при использовании python в качестве интерпретатора Zeppelin

error when executing %python.conda info

...