繁体   English   中英

为什么使用主纱线和部署模式群集的`spark.yarn.stagingDir`导致火花提交失败

[英]Why spark-submit fails with `spark.yarn.stagingDir` with master yarn and deploy-mode cluster

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

在此处查看相关问题以获取更多详细信息

失败的命令:

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

异常stacktrace:

应用程序application_1506717704791_145448的状态为org.apache.spark.deploy.yarn.Client $ .main(Client.scala:1213)的org.apache.spark.deploy.yarn.Client.run(Client.scala:1167)处于失败状态org.apache.spark.deploy.yarn.Client.main(Client.scala)位于sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect。位于org.apache.spark.deploy.SparkSubmit $ .org $ apache $ spark $ deploy $ SparkSubmit $$的java.lang.reflect.Method.invoke(Method.java:498)的DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) runMain(SparkSubmit.scala:738)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM