"坏替代"提交火花作业纱线集群时 [英] "Bad substitution" when submitting spark job to yarn-cluster

查看:1532
本文介绍了"坏替代"提交火花作业纱线集群时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在用做冒烟测试对纱线集群纱线集群作为与 SparkPi 例如主程序。下面是命令行:

  $ SPARK_HOME /斌/火花提交--master纱线集群
 --executor-8G内存--executor-240核心--class org.apache.spark.examples.SparkPi

例子/目标/斯卡拉2.11 /火花例子-1.4.1-hadoop2.7.1.jar

纱线接受了工作,但随后抱怨一个坏替代。也许这是对 hdp.version ??

  15/09/01 21点54分05秒INFO yarn.Client:为application_1441066518301_0013申请报告(状态:已接受)
15/09/01 21点54分05秒INFO yarn.Client:
     客户端令牌:N / A
     诊断:N / A
     ApplicationMaster主持人:N / A
     ApplicationMaster RPC端口:-1
     队列:默认
     开始时间:1441144443866
     最终状态:未定义
     跟踪网址:http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/proxy/application_1441066518301_0013/
     用户:堆栈
15/09/01 21点54分06秒INFO yarn.Client:为application_1441066518301_0013申请报告(状态:已接受)
15/09/01 21点54分10秒INFO yarn.Client:为application_1441066518301_0013申请报告(状态:失败)
15/09/01 21点54分10秒INFO yarn.Client:
     客户端令牌:N / A
     诊断:应用application_1441066518301_0013失败,原因是2倍到AM的容器appattempt_1441066518301_0013_000002,退出code退出:1
有关更详细的输出结果,检查应用程序跟踪page:http://yarnmaster-8245.lvs01.dev.ebayc3.com:8088/cluster/app/application_1441066518301_0013Then,点击链接,每次尝试的日志。
诊断:从容器发射例外。
容器ID:container_e03_1441066518301_0013_02_000001
退出code:1
异常消息:到/ mnt /纱/纳米/本地/ usercache /堆栈/应用程序缓存/
application_1441066518301_0013 / container_e03_1441066518301_0013_02_000001 /
launch_container.sh:第24行:$ PWD:$ PWD / __ __ hadoop_conf:$ PWD / __ __火花罐子:$ HADOOP_CONF_DIR:
在/ usr / HDP /电流/ Hadoop的客户端/ * :: $ PWD / MR-框架/ Hadoop的/股/ Hadoop的/ tools / lib目录/ *:
/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-.6.0.${hdp.version}.jar:
在/ etc / Hadoop的/ conf目录/安全:替代不好堆栈跟踪:退出$ C $退出了CException code = 1: /mnt/yarn/nm/local/usercache/stack/appcache/application_1441066518301_0013/container_e03_1441066518301_0013_02_000001/launch_container.sh:第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/ma$p$pduce/*:$PWD/mr-framework/hadoop/share/hadoop/ma$p$pduce/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:坏替代    在org.apache.hadoop.util.Shell.runCommand(Shell.java:545)
    在org.apache.hadoop.util.Shell.run(Shell.java:456)
    在org.apache.hadoop.util.Shell $ ShellCommandExecutor.execute(Shell.java:722)
    在org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:211)
    在org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:302)
    在org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:82)
    在java.util.concurrent.FutureTask.run(FutureTask.java:266)
    在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)
    在java.lang.Thread.run(Thread.java:745)

请注意这里是:

 的/ usr / HDP / $ {} hdp.version $ /hadoop/lib/hadoop-lzo-.6.0 {} hdp.version的.jar:
在/ etc / Hadoop的/ conf目录/安全:替代不好

在sh的链接到bash的:

  $ LL / bin / sh的
lrwxrwxrwx 1根根9月4日1 05:48 / bin / sh的 - >庆典


解决方案

这是由 hdp.version 引起了不正确得到取代。你必须设置 hdp.version 文件 Java的OPTS $ SPARK_HOME / conf目录中

和你必须设置

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

火花defaults.conf $ SPARK_HOME / conf目录其中XXX是HDP的版本。

I am doing a smoke test against a yarn cluster using yarn-cluster as the master with the SparkPi example program. Here is the command line:

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

examples/target/scala-2.11/spark-examples-1.4.1-hadoop2.7.1.jar

The yarn accepts the job but then complains about a "bad substitution". Maybe it is on the 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)

Of note here is:

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

The "sh" is linked to bash:

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

解决方案

It is caused by hdp.version not getting substituted correctly. You have to set hdp.version in the file java-opts under $SPARK_HOME/conf.

And you have to set

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

in spark-defaults.conf under $SPARK_HOME/conf where XXX is the version of hdp.

这篇关于"坏替代"提交火花作业纱线集群时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆