【问题标题】:failing to connect to spark driver when submitting job to spark in yarn mode在纱线模式下提交作业到火花时无法连接到火花驱动程序
【发布时间】:2018-06-07 23:09:43
【问题描述】:

当我向集群提交 spark 作业时,它在 shell 中出现以下异常:

> Exception in thread "main" org.apache.spark.SparkException:
> Application application_1497125798633_0065 finished with failed status
>         at org.apache.spark.deploy.yarn.Client.run(Client.scala:1244)
>         at org.apache.spark.deploy.yarn.Client$.main(Client.scala:1290)
>         at org.apache.spark.deploy.yarn.Client.main(Client.scala)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:498)
>         at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:750)
>         at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187)
>         at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212)
>         at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
>         at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 17/06/29 10:25:36 INFO ShutdownHookManager: Shutdown hook called

这是它在 Yarn 日志中给出的内容:

> Caused by: java.io.IOException: Failed to connect to /0.0.0.0:35994 at
> org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:232)
> at
> org.apache.spark.network.client.TransportClientFactory.createClient(TransportClientFactory.java:182)
> at
> org.apache.spark.rpc.netty.NettyRpcEnv.createClient(NettyRpcEnv.scala:197)
> at org.apache.spark.rpc.netty.Outbox$anon$1.call(Outbox.scala:194) at
> org.apache.spark.rpc.netty.Outbox$anon$1.call(Outbox.scala:190) 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)

我猜这意味着它无法连接到驱动程序。我试图增加“spark.yarn.executor.memoryOverhead”参数,但没有奏效。

这是我使用的提交命令:

/bin/spark-submit \
  --class example.Hello \
  --jars ... \
  --master yarn \
  --deploy-mode cluster \
  --supervise \
  --conf spark.yarn.driver.memoryOverhead=1024 ...(jar file path)

我正在使用 HDP-2.6.1.0 和 spark 2.1.1

【问题讨论】:

  • 您可以删除--supervise 并重新开始吗?你能粘贴spark-shell 的全部输出吗?你能粘贴来自 YARN 的日志吗?使用yarn logs -applicationId
  • 我从命令中删除了它,但没有任何改变。我更新了我的问题以在纱线日志中出现 shell 错误以及异常
  • 你能粘贴异常上面的其他行吗?我想我已经看到了类似的异常,它在关机时。显示更多日志。谢谢。
  • 感谢您回复@JacekLaskowski,但我发现了问题

标签: apache-spark hadoop-yarn


【解决方案1】:

在 Yarn 模式下运行 Spark(我正在做的)是在 HDP 中使用 spark 的权利,如下所述:https://community.hortonworks.com/questions/52591/standalone-spark-using-ambari.html

这意味着我不应该指定一个 master 或使用 start-master / start-slave 命令。

问题是由于某种原因,驱动程序 IP 被视为 0.0.0.0,并且所有集群节点都试图使用本地接口联系驱动程序,因此失败。 我通过在 conf/spark-defaults.conf 中设置以下配置来解决此问题:

spark.driver.port=20002

spark.driver.host=HOST_NAME

并将部署模式更改为客户端以使其在本地部署驱动程序。

【讨论】:

  • 我在 Spark 2.3.1 上遇到了同样的问题 这个解决方案适用于我的情况,即在 conf/spark-defaults.conf 中添加 spark.driver.host 属性
【解决方案2】:

看这个:

Caused by: java.io.IOException: Failed to connect to /0.0.0.0:35994

尝试spark-submit --master <master-ip>:<spark-port> 提交作业。

【讨论】:

  • 我试过了,我得到了这个异常:` 17/06/29 23:35:30 错误 TransportResponseHandler: 当来自 /127.0.0.1:6 066 的连接关闭时仍有 1 个请求未完成 17/ 06/29 23:35:30 WARN StandaloneAppClient$ClientEndpoint:无法连接到主服务器 127.0.0.1:6066 org.apache.spark.SparkException:在 awaitResult 中引发异常原因:java.io.IOException:来自 /127.0.0.1 的连接:6066 关闭`这是我从主日志中得到的:WARN HttpParser: Illegal character 0x0 in state=START for buffer
猜你喜欢
  • 2019-11-13
  • 2018-11-24
  • 2017-03-21
  • 1970-01-01
  • 2023-03-09
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多