2015-12-26 110 views
0

我試圖啓動火花在獨立模式下(MacOSX的),流媒體和得到以下錯誤nomatter什麼:星火流:java.lang.NoSuchFieldException:SHUTDOWN_HOOK_PRIORITY

異常線程「main」的java.lang .ExceptionInInitializerError at org.apache.spark.storage.DiskBlockManager.addShutdownHook(DiskBlockManager.scala:147) at org.apache.spark.storage.DiskBlockManager。(DiskBlockManager.scala:54) at org.apache.spark.storage .BlockManager。(BlockManager.scala:75) at org.apache.spark.storage.BlockManager。(BlockManager.scala:173) at org.apache.spark.Spar kEnv $ .create(SparkEnv.scala:347) at org.apache.spark.SparkEnv $ .createDriverEnv(SparkEnv.scala:194) at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:277) at org.apache.spark.SparkContext。(SparkContext.scala:450) at org.apache.spark.streaming.StreamingContext $ .createNewSparkContext(StreamingContext.scala:566) at org.apache.spark.streaming.StreamingContext $ .createNewSparkContext (StreamingContext.scala:578) at org.apache.spark.streaming.StreamingContext。(StreamingContext.scala:90) at org.apache.spark.streaming.api.java.JavaStreamingContext。(JavaStreamingContext.scala:78) at io.ascolta.pcap.PcapOfflineReceiver.main(PcapOfflineReceiver.java:103) 引起:java.lang.NoSuchFi eldException:SHUTDOWN_HOOK_PRIORITY at java.lang.Class.getField(Class.java:1584) at org.apache.spark.util.SparkShutdownHookManager.install(ShutdownHookManager.scala:220) at org.apache.spark.util.ShutdownHookManager $ .shutdownHooks $ lzycompute(ShutdownHookManager.scala:50) at org.apache.spark.util.ShutdownHookManager $ .shutdownHooks(ShutdownHookManager.scala:48) at org.apache.spark.util.ShutdownHookManager $ .addShutdownHook(ShutdownHookManager。斯卡拉:189) 在org.apache.spark.util.ShutdownHookManager $(ShutdownHookManager.scala:58) 在org.apache.spark.util.ShutdownHookManager $(ShutdownHookManager.scala) ...... 13多個

此症狀與EC2相關,作爲Hadoop2依賴關係在https://forums.databricks.com/questions/2227/shutdown-hook-priority-javalangnosuchfieldexceptio.html中討論。但我在本地運行(現在),並且使用來自https://spark.apache.org/downloads.html的spark-1.5.2-bin-hadoop2.6.tgz二進制文件,我希望這可以消除這種可能性。

我已經把我的代碼修剪到基本上什麼都沒有;像這樣:

SparkConf conf = new SparkConf() 
     .setAppName(appName) 
     .setMaster(master); 
    JavaStreamingContext ssc = new JavaStreamingContext(conf, new Duration(1000)); 

我已經置換Maven依賴關係,以確保所有的火花的東西是在1.5.2版本是一致的。然而,上面的ssc初始化失敗了什麼。所以我認爲是時候尋求幫助了。

構建環境是eclipse和陰影插件的maven。現在,啓動/運行來自eclipse調試器,而不是spark-submit。

+0

你能爲此提交一份Spark JIRA票嗎? https://issues.apache.org/jira/browse/SPARK –

+0

...當你這樣做時,請在這裏發佈問題的URL。謝謝。 –

回答

0

我今天遇到這個問題,這是因爲我有兩個罐子:hadoop-common-2.7.2.jar和hadoop-core-1.6.1.jar在我的pom中,它們都依賴於hadoop.fs.FileSystem 。

但在FileSystem-1.6.1中,FileSystem類中沒有SHUTDOWN_HOOK_PRIORITY屬性。和FileSystem-2.7.2一樣。但似乎我的代碼認爲FileSystem-1.6.1是正確的類。所以這個問題提出。

解決方法也很簡單,在pom中刪除hadoop-core-1.6.1。這意味着我們需要檢查我們項目中的所有FileSystem是否高於2.x.