簡體   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