Эта проблема является продолжением моего предыдущего вопроса here, который, казалось бы, был разрешен, но приводит к этому как к другому вопрос.«KeyError:« SPARK_HOME »,« не может загрузить основной класс из JAR »при запуске PySpark в качестве рабочего процесса Oozie
Я использую Spark 1.4.0 на Cloudera QuickstartVM CHD-5.4.0. Когда я запускаю мой PySpark сценарий как SparkAction в Oozie, я встречаю эту ошибку в журналах работы/контейнера Oozie:
KeyError: 'SPARK_HOME'
Потом я наткнулся this solution и this, которые на самом деле являются для Спарк 1.3.0, хотя я все еще попытался. Документация, похоже, говорит, что эта проблема уже исправлена для Spark версии 1.3.2 и 1.4.0 (но здесь я, столкнувшись с той же проблемой).
Предлагаемое решение в связи было то, что мне нужно установить spark.yarn.appMasterEnv.SPARK_HOME
и spark.executorEnv.SPARK_HOME
к чему-либо, даже если это просто любой путь, который не указывает на фактическое SPARK_HOME
(т.е. /bogus
, хотя я установить их фактическому SPARK_HOME).
Вот мой рабочий процесс после того, как:
<spark xmlns="uri:oozie:spark-action:0.1">
<job-tracker>${resourceManager}</job-tracker>
<name-node>${nameNode}</name-node>
<master>local[2]</master>
<mode>client</mode>
<name>${name}</name>
<jar>${workflowRootLocal}/lib/my_pyspark_job.py</jar>
<spark-opts>--conf spark.yarn.appMasterEnv.SPARK_HOME=/usr/lib/spark spark.executorEnv.SPARK_HOME=/usr/lib/spark</spark-opts>
</spark>
который, кажется, решить исходную задачу выше. Однако, это приводит к другой ошибке при попытке осмотреть STDERR лога контейнера Oozie:
Error: Cannot load main class from JAR file:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/cloudera/appcache/application_1437103727449_0011/container_1437103727449_0011_01_000001/spark.executorEnv.SPARK_HOME=/usr/lib/spark
Если я использую Python, он не должен рассчитывать на main class
право? Пожалуйста, обратите внимание на предыдущую статью о том, что пример работы с Oozie, поставляемый с Cloudera QuickstartVM CDH-5.4.0, который содержит SparkAction, написанный на Java, работал в моих тестах. Кажется, что проблема только в Python.
Цените всех, кто может помочь.
я получаю сообщение об ошибке, как это «Err или: SPARK_HOME не существует для приложения python в режиме пряжи. " любая идея это? – karthik