【问题标题】:Why spark-submit fails with `spark.yarn.stagingDir` with master yarn and deploy-mode cluster为什么 spark-submit 失败并带有主纱线和部署模式集群的`spark.yarn.stagingDir`
【发布时间】:2018-03-17 11:04:29
【问题描述】:

当我向 spark-submit 提供 spark.yarn.stagingDir 时遇到了一个场景,它开始失败,并且没有提供任何有关根本原因的线索,我花了很长时间才弄清楚这是因为 spark.yarn.stagingDir 参数。为什么提供spark.yarn.stagingDir这个参数时spark-submit失败?

查看相关问题here了解更多详情

失败的命令:

spark-submit \
--conf "spark.yarn.stagingDir=/xyz/warehouse/spark" \
--queue xyz \
--class com.xyz.TestJob \
--master yarn \
--deploy-mode cluster \
--conf "spark.local.dir=/xyz/warehouse/tmp" \
/xyzpath/java-test-1.0-SNAPSHOT.jar

当我删除 spark.yarn.stagingDir 时,它开始工作:

spark-submit \
    --queue xyz \
    --class com.xyz.TestJob \
    --master yarn \
    --deploy-mode cluster \
    --conf "spark.local.dir=/xyz/warehouse/tmp" \
    /xyzpath/java-test-1.0-SNAPSHOT.jar

异常堆栈跟踪:

应用程序 application_1506717704791_145448 完成失败 状态 在 org.apache.spark.deploy.yarn.Client.run(Client.scala:1167) 在 org.apache.spark.deploy.yarn.Client$.main(Client.scala:1213) 在 org.apache.spark.deploy.yarn.Client.main(Client.scala) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738)

【问题讨论】:

    标签: scala apache-spark apache-spark-sql


    【解决方案1】:

    当我将spark.yarn.stagingDir 设置为/tmp 时,我遇到了完全相同的问题(而一旦我删除了这个配置条目,它就可以正常工作了)。

    我的解决方案是指定完整的 HDFS 路径,例如 hdfs://hdfs_server_name/tmp,而不仅仅是 /tmp。希望它对你有用。

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 2022-01-23
      • 2017-08-30
      • 2016-04-18
      • 2018-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      相关资源
      最近更新 更多