"Плохая замена" при отправке искровой работы в пряжу-кластер

Я делаю тест дыма против кластера пряжи, используя yarn-cluster как мастер с SparkPi пример программы. Вот командная строка:

  $SPARK_HOME/bin/spark-submit --master yarn-cluster 
 --executor-memory 8G --executor-cores 240 --class org.apache.spark.examples.SparkPi 

примеры / целевые / 2,11-Scala / искровые примеры-1.4.1-hadoop2.7.1.jar

Пряжа принимает работу, но потом жалуется на "плохую замену". Может быть, это на hdp.version??

15/09/01 21:54:05 INFO yarn.Client: Application report for application_1441066518301_0013 (state: ACCEPTED)
15/09/01 21:54:05 INFO yarn.Client:
     client token: N/A
     diagnostics: N/A
     ApplicationMaster host: N/A
     ApplicationMaster RPC port: -1
     queue: default
     start time: 1441144443866
     final status: UNDEFINED
     tracking URL: http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/proxy/application_1441066518301_0013/
     user: stack
15/09/01 21:54:06 INFO yarn.Client: Application report for application_1441066518301_0013 (state: ACCEPTED)
15/09/01 21:54:10 INFO yarn.Client: Application report for application_1441066518301_0013 (state: FAILED)
15/09/01 21:54:10 INFO yarn.Client:
     client token: N/A
     diagnostics: Application application_1441066518301_0013 failed 2 times due to AM Container for appattempt_1441066518301_0013_000002 exited with  exitCode: 1
For more detailed output, check application tracking page:http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/cluster/app/application_1441066518301_0013Then, click on links to logs of each attempt.
Diagnostics: Exception from container-launch.
Container id: container_e03_1441066518301_0013_02_000001
Exit code: 1
Exception message: /mnt/yarn/nm/local/usercache/stack/appcache/
application_1441066518301_0013/container_e03_1441066518301_0013_02_000001/
launch_container.sh: line 24: $PWD:$PWD/__hadoop_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:
/usr/hdp/current/hadoop-client/*::$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:
/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:
/etc/hadoop/conf/secure: bad substitution

Stack trace: ExitCodeException exitCode=1: /mnt/yarn/nm/local/usercache/stack/appcache/application_1441066518301_0013/container_e03_1441066518301_0013_02_000001/launch_container.sh: line 24: $PWD:$PWD/__hadoop_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:/usr/hdp/current/hadoop-client/*:/usr/hdp/current/hadoop-client/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/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: bad substitution

    at org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
    at org.apache.hadoop.util.Shell.run(Shell.java:456)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:722)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Следует отметить, что здесь:

/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:
/etc/hadoop/conf/secure: bad substitution

"Sh" связан с bash:

$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Sep  1 05:48 /bin/sh -> bash

6 ответов

Решение

Это вызвано hdp.version не подставляется правильно. Вы должны установить hdp.version в файле java-opts под $SPARK_HOME/conf,

И вы должны установить

spark.driver.extraJavaOptions -Dhdp.version=XXX 
spark.yarn.am.extraJavaOptions -Dhdp.version=XXX

в spark-defaults.conf под $SPARK_HOME/conf где XXX - версия hdp.

Если вы используете spark с hdp, то вам нужно сделать следующее:

Добавьте эти записи в $SPARK_HOME/conf/spark-defaults.conf

spark.driver.extraJavaOptions -Dhdp.version=2.2.0.0-2041 (your installed HDP version)

spark.yarn.am.extraJavaOptions -Dhdp.version=2.2.0.0-2041 (your installed HDP version)

Создайте файл с именем java-opts в $SPARK_HOME/conf и добавьте установленную версию HDP в этот файл следующим образом:

-Dhdp.version=2.2.0.0-2041 (your installed HDP version)

Чтобы выяснить, какая версия hdp установлена, выполните эту команду в кластере:

hdp-select status hadoop-client

У меня была такая же проблема:

launch_container.sh: line 24: $PWD:$PWD/__hadoop_conf__:$PWD/__spark__.jar:$HADOOP_CONF_DIR:/usr/hdp/current/hadoop-client/*::$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure: bad substitution

Так как я не смог найти файл /usr/hdp/$ndomhdp.version‹/hadoop/lib/hadoop-lzo*, я просто отредактировал mapred-site.xml и удалил "/usr/hdp/$ndomhdp.version}/hadoop/lib/hadoop-lzo-0.6.0 ${hdp.version}.jar:."

  1. Перейти к амбари-пряжи.

нажмите на Configs->Advanced->Custom yarn-site->Add Property ...

добавьте версию hdp в качестве ключа и значение в качестве версии HDP. Вы получите версию hdp вместе с командой ниже

hdp-выберите версии

например, 2.5.3.0-37

Теперь добавьте вашу собственность как

hdp.version=2.5.3.0-37

  1. В противном случае замените ${hdp.version} в качестве версии hdp (2.5.3.0-37) в yarn-site.xml и yarn-env.sh

У меня также была эта проблема, использующая BigInsights 4.2.0.0 с yarn, spark и mapreduce 2, и причиной этого был iop.version. Чтобы исправить это, вы должны добавить переменную iop.version к mapred-site, и это можно сделать, выполнив следующие шаги:

В Ambari Server перейдите по ссылке:

  • MAPREDUCE2
  • Конфиги (вкладка)
  • Продвинутая вкладка)
  • Нажмите на пользовательский mapred-сайт
  • Добавить недвижимость...
  • Поставь iop.version и свою версию BigInsights.
  • Перезапустите все службы.

Это исправило это.

Это может быть вызвано /bin/sh связан с dash, а не bash, что часто происходит в системах на основе Debian.

Чтобы исправить это, запустите sudo dpkg-reconfigure dash и выберите нет.

Другие вопросы по тегам