Как я могу запустить Spark в безголовом режиме в моей пользовательской версии на HDP?

Как запустить Spark в безголовом режиме? В настоящее время я запускаю Spark на HDP 2.6.4 (т.е. 2.2 установлен по умолчанию) в кластере. Я загрузил выпуск Spark 2.4.1 Scala 2.11 в безголовом режиме (т.е. без встроенных контейнеров hadoop) из https://spark.apache.org/downloads.html. Точное название: предварительно созданный на scala 2.11 и предоставленный пользователем hadoop.

Теперь при попытке запустить я следую: https://spark.apache.org/docs/latest/hadoop-provided.html

export SPARK_DIST_CLASSPATH=$(hadoop classpath)
export HADOOP_CONF_DIR=/etc/hadoop/conf
export SPARK_HOME=/home/<<my_user>>/development/software/spark_no_provided_hadoop
./bin/spark-shell --master yarn --deploy-mode client --queue <<my_yarn_queue>>

К сожалению, не запускается:

19/05/01 07:12:23 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME.
19/05/01 07:12:38 ERROR cluster.YarnClientSchedulerBackend: The YARN application has already ended! It might have been killed or the Application Master may have failed to start. Check the YARN application logs for more details.
19/05/01 07:12:38 ERROR spark.SparkContext: Error initializing SparkContext.
org.apache.spark.SparkException: Application application_1555489055691_64276 failed 2 times due to AM Container for appattempt_1555489055691_64276_000002 exited with  exitCode: 1

When looking at the logs for details I see:
Log Type: prelaunch.err

launch_container.sh: line 30: $PWD:$PWD/__spark_conf__:$PWD/__spark_libs__/*:/etc/hadoop/conf:/usr/hdp/2.6.4.0-91/hadoop/*:/usr/hdp/2.6.4.0-91/hadoop/lib/*:/usr/hdp/current/hadoop-hdfs-client/*:/usr/hdp/current/hadoop-hdfs-client/lib/*:/usr/hdp/current/hadoop-yarn-client/*:/usr/hdp/current/hadoop-yarn-client/lib/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.6.4.0-91/hadoop/conf:/usr/hdp/2.6.4.0-91/hadoop/lib/*:/usr/hdp/2.6.4.0-91/hadoop/.//*:/usr/hdp/2.6.4.0-91/hadoop-hdfs/./:/usr/hdp/2.6.4.0-91/hadoop-hdfs/lib/*:/usr/hdp/2.6.4.0-91/hadoop-hdfs/.//*:/usr/hdp/2.6.4.0-91/hadoop-yarn/lib/*:/usr/hdp/2.6.4.0-91/hadoop-yarn/.//*:/usr/hdp/2.6.4.0-91/hadoop-mapreduce/lib/*:/usr/hdp/2.6.4.0-91/hadoop-mapreduce/.//*:/usr/hdp/2.6.4.0-91/tez/*:/usr/hdp/2.6.4.0-91/tez/lib/*:/usr/hdp/2.6.4.0-91/tez/conf:$PWD/__spark_conf__/__hadoop_conf__: bad substitution

So:

/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar: bad substitution

является причиной (и аналогично https://community.hortonworks.com/questions/23699/bad-substitution-error-running-spark-on-yarn.html), но это полностью находится в домене управления Ambari. Как я могу обойти это, чтобы запустить более свежую версию Spark (2.4.x) на существующей платформе 2.6.x HDP?

редактировать

Предполагая, что я передал неверный каталог конфигурации для HADOOP_CONF_DIR, он не установлен. Но потом:

When running with master 'yarn' either HADOOP_CONF_DIR or YARN_CONF_DIR must be set in the environment.

так что это нужно пройти. Может быть, я передаю неправильное значение? Согласно Исключение: java.lang. Исключение: при работе с основной пряжей в окружении должно быть установлено значение HADOOP_CONF_DIR или YARN_CONF_DIR. в искре может быть правильным. Для меня HADOOP_HOME по умолчанию не установлен.

Даже при установке на: export HADOOP_CONF_DIR=/usr/hdp/current/spark2-client/conf остается та же самая ошибка неправильной замены.

ПРИМЕЧАНИЕ: несколько интересных шагов:


person Georg Heiler    schedule 01.05.2019    source источник


Ответы (1)


Действительно, https://community.hortonworks.com/questions/23699/bad-substitution-error-running-spark-on-yarn.html - это решение:

cd /usr/hdp                                                                                                                                  
ls
2.6.xxx  current  share

Так что для меня:

./bin/spark-shell --master yarn --deploy-mode client --queue <<my_queue>>--conf spark.driver.extraJavaOptions='-Dhdp.version=2.6.xxx' --conf spark.yarn.am.extraJavaOptions='-Dhdp.version=2.6.xxx'

работает

person Georg Heiler    schedule 01.05.2019