【问题标题】:Spark Failed- Futures timed outSpark 失败 - 期货超时
【发布时间】:2019-01-26 20:19:55
【问题描述】:

我使用的是在 Amazon EMR 集群上运行的 apache spark 2.2.1。有时作业会因“期货超时”而失败:

java.util.concurrent.TimeoutException:期货在 [100000 毫秒] 后超时
在 scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
在 scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
在 org.apache.spark.util.ThreadUtils$.awaitResult(ThreadUtils.scala:201)
在 org.apache.spark.deploy.yarn.ApplicationMaster.runDriver(ApplicationMaster.scala:401)
在 org.apache.spark.deploy.yarn.ApplicationMaster.run(ApplicationMaster.scala:254)
在 org.apache.spark.deploy.yarn.ApplicationMaster$$anonfun$main$1.apply$mcV$sp(ApplicationMaster.scala:764)
在 org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:67)
在 org.apache.spark.deploy.SparkHadoopUtil$$anon$2.run(SparkHadoopUtil.scala:66)
在 java.security.AccessController.doPrivileged(Native Method)
在 javax.security.auth.Subject.doAs(Subject.java:422)
在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1836)
在 org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:66)
在 org.apache.spark.deploy.yarn.ApplicationMaster$.main(ApplicationMaster.scala:762)
在 org.apache.spark.deploy.yarn.ApplicationMaster.main(ApplicationMaster.scala)

我在 spark-defaults.conf 中更改了 2 个参数:

spark.sql.broadcastTimeout 1000
spark.network.timeout 10000000

但它没有帮助。

你对如何处理这个超时有什么建议吗?

【问题讨论】:

  • 通过查看跟踪,这似乎与broadcast 无关,因此spark.sql.broadcastTimeout 1000 可能无济于事。

标签: apache-spark amazon-emr


【解决方案1】:

你试过设置spark.yarn.am.waitTime吗?

仅用于集群模式。 YARN Application Master 的时间 等待 SparkContext 初始化。

以上引用来自here

关于我的情况的更多背景信息:

我正在使用 spark-submit 来执行 java-spark 作业。我将客户端部署到集群,客户端正在执行一个非常长时间运行的操作,导致超时。

我解决了这个问题:

spark-submit --master yarn --deploy-mode cluster --conf "spark.yarn.am.waitTime=600000" 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多