2016-08-29 35 views
0

我正在使用spark「Spark 1.6.1-mapr-1604」版本。
我在本地模式下的作業成功執行,但是當我在紗線簇模式下啓動相同作業時,它會拋出ExceptionInInitializerError在YARN集羣模式下提交Spark應用程序時爲什麼會出現ExceptionInInitializerError?

本地模式命令:

spark-submit --class com.ts.clustering.TrainModel \ 
ts-0.0.1-SNAPSHOT.jar \ 
-model /user/hive/warehouse/ts/clustering_model 
-ip /user/hive/warehouse/ts/aidata_seq/* 
-k 10 -ite 10 > app_2.log & 

紗羣集模式:

spark-submit --queue dev --master yarn \ 
--deploy-mode cluster \ 
--class com.ts.clustering.TrainModel ts-0.0.1-SNAPSHOT.jar \ 
-model /user/hive/warehouse/ts/clustering_model \ 
-ip /user/hive/warehouse/ts/aidata_seq/* -k 10 -ite 10 > app_2.log & 

-model參數是要保存模型中的輸出位置。

在集羣模式下的例外:

2016-08-29 17:18:46,312 WARN [task-result-getter-0] scheduler.TaskSetManager: 
    Lost task 0.0 in stage 0.0 (TID 0, ******************): java.lang.ExceptionInInitializerError 
     at com.ts.clustering.TrainModel$2.call(TrainModel.java:71) 
     at com.ts.clustering.TrainModel$2.call(TrainModel.java:67) 
     at org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1.apply(JavaPairRDD.scala:1015) 
     at scala.collection.Iterator$$anon$11.next(Iterator.scala:328) 
     at scala.collection.Iterator$$anon$14.hasNext(Iterator.scala:389) 
     at org.apache.spark.storage.MemoryStore.unrollSafely(MemoryStore.scala:284) 
Caused by: org.apache.spark.SparkException: A master URL must be set in your configuration 
     at org.apache.spark.SparkContext.<init>(SparkContext.scala:401) 
     at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59) 
     at com.ts.clustering.TrainModel.<clinit>(TrainModel.java:35) 
     ... 21 more 

我已經經歷了幾個類似的職位的走了,但沒有任何幫助。任何建議都會有很大的幫助。

+0

我投票結束這個問題,因爲缺乏MVCE,並落在偏離主題的規則「爲什麼不是我的代碼工作」 – eliasah

回答

1

望着堆棧跟蹤我可以發現以下幾點:

org.apache.spark.SparkException: A master URL must be set in your configuration 
    at org.apache.spark.SparkContext.(SparkContext.scala:401) 
    at org.apache.spark.api.java.JavaSparkContext.(JavaSparkContext.scala:59) 
    at com.ts.clustering.TrainModel.(TrainModel.java:35) 
    ... 21 more 

這很容易說你沒有指定主網址暫時還你已經開始使用--master yarn --deploy-mode cluster應用。

我是猜測你已經硬編碼主URL爲local或根本沒有指定它。見TrainModel.java:35

+0

我還沒有指定主網址。我的其他spark工作正常工作沒有主url。 –

+0

'TrainModel.java:71'是什麼? –

+1

我在第71行詢問'TrainModel'中的具體行。那裏有什麼?你可以顯示「TrainModel」的第71行和第35行嗎? –

相關問題