火花失败-期货超时

时间:2019-01-26 20:19:56

标签: apache-spark amazon-emr

我正在使用在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(本机方法)
  在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

但这没有帮助。

您对如何处理此超时有任何建议吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过设置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"