【问题标题】:Spark shell cannot connect to YARNSpark shell 无法连接到 YARN
【发布时间】:2015-04-24 14:56:20
【问题描述】:

我尝试使用以下命令开始 spark-shell

spark-shell --master yarn-client

然后我进入外壳。但几秒钟后,我在 shell 中得到了这个:

 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkYarnAM@10.0.2.15:38171] has failed, address is now gated for [5000] ms. Reason is: [Disassociated].

我在 yarn 日志文件中重复了很多次这个错误。

15/02/23 20:37:26 INFO yarn.YarnAllocationHandler: 完成的容器 container_1424684000430_0001_02_000002(状态:COMPLETE,退出状态: 1) 15/02/23 20:37:26 INFO yarn.YarnAllocationHandler: 容器标记 失败:container_1424684000430_0001_02_000002。退出状态:1。 诊断:容器启动异常。容器编号: container_1424684000430_0001_02_000002 退出代码:1 堆栈跟踪: ExitCodeException exitCode=1: 在 org.apache.hadoop.util.Shell.runCommand(Shell.java:538) 在 org.apache.hadoop.util.Shell.run(Shell.java:455) 在 org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715) 在 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:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745)

容器以非零退出代码 1 退出

我也注意到了这一行:

15/02/23 21:00:20 INFO yarn.ExecutorRunnable: Setting up executor with commands: List($JAVA_HOME/bin/java, -server, -XX:OnOutOfMemoryError='kill %p', -Xms1024m -Xmx1024m , -Djava.io.tmpdir=$PWD/tmp, '-Dspark.driver.port=33837', -Dspark.yarn.app.container.log.dir=<LOG_DIR>, org.apache.spark.executor.CoarseGrainedExecutorBackend, akka.tcp://sparkDriver@10.0.2.15:33837/user/CoarseGrainedScheduler, 4, vbox-lubuntu, 1, application_1424684000430_0003, 1>, <LOG_DIR>/stdout, 2>, <LOG_DIR>/stderr)

奇怪的是-Dspark.yarn.app.container.log.dir=。看起来变量没有得到扩展。但我想我已经定义了它。

P.S. spark-submit 似乎正在工作:

spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster /path/to/lib/spark-examples-1.2.1-hadoop2.4.0.jar

【问题讨论】:

    标签: hadoop apache-spark hadoop-yarn


    【解决方案1】:

    根据this线程中的讨论,问题是由容器中的OOM引起的。唯一的办法就是提高系统内存...

    错误信息真的是missleading。

    【讨论】:

    • 你确定是内存不足造成的吗?我也遇到了这个问题,每个节点至少有 6GB 未使用内存。升级可用物理内存是否解决了问题?
    • @toobee,你使用--executor-memory 就像提到的here 一样吗? Spark 不会检查系统的可用内存。默认值非常小。
    • 好的。它现在似乎可以在集群模式下工作 - 到目前为止谢谢。仍然不起作用的是纱线客户端。我仍然收到此错误消息。您是否知道在客户端模式下可能导致此问题的原因是什么?在这里设置 ram 似乎没有帮助。
    • 也添加--driver-memory 怎么样?以及如何在集群模式下启动spark-shell?也许你所做的与我所做的不同,在这种情况下,最好打开一个新线程,详细说明你的问题。
    • 我解决了这个问题。我现在使用 Java7 而不是 Java8。这种情况被报告为错误,但被拒绝issues.apache.org/jira/browse/SPARK-6388 然而,更改Java版本确实有效。感谢您的帮助/时间!
    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2016-01-18
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多