我尝试在独立模式下启动火花流(MacOSX)并获得以下错误:
线程中的异常" main" java.lang.ExceptionInInitializerError 在org.apache.spark.storage.DiskBlockManager.addShutdownHook(DiskBlockManager.scala:147) 在org.apache.spark.storage.DiskBlockManager。(DiskBlockManager.scala:54) 在org.apache.spark.storage.BlockManager。(BlockManager.scala:75) 在org.apache.spark.storage.BlockManager。(BlockManager.scala:173) 在org.apache.spark.SparkEnv $ .create(SparkEnv.scala:347) 在org.apache.spark.SparkEnv $ .createDriverEnv(SparkEnv.scala:194) 在org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:277) 在org.apache.spark.SparkContext。(SparkContext.scala:450) 在org.apache.spark.streaming.StreamingContext $ .createNewSparkContext(StreamingContext.scala:566) 在org.apache.spark.streaming.StreamingContext $ .createNewSparkContext(StreamingContext.scala:578) 在org.apache.spark.streaming.StreamingContext。(StreamingContext.scala:90) 在org.apache.spark.streaming.api.java.JavaStreamingContext。(JavaStreamingContext.scala:78) at io.ascolta.pcap.PcapOfflineReceiver.main(PcapOfflineReceiver.java:103) 引起:java.lang.NoSuchFieldException:SHUTDOWN_HOOK_PRIORITY 在java.lang.Class.getField(Class.java:1584) 在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) 在org.apache.spark.util.ShutdownHookManager $ .addShutdownHook(ShutdownHookManager.scala:189) 在org.apache.spark.util.ShutdownHookManager $。(ShutdownHookManager.scala:58) at org.apache.spark.util.ShutdownHookManager $。(ShutdownHookManager.scala) ......还有13个
此问题在https://forums.databricks.com/questions/2227/shutdown-hook-priority-javalangnosuchfieldexceptio.html处与EC2相关,作为Hadoop2依赖关系进行了讨论。但是我在本地运行(现在),并且正在使用来自https://spark.apache.org/downloads.html的spark-1.5.2-bin-hadoop2.6.tgz二进制文件,我希望这会消除这种可能性。< / p>
我已将我的代码修改为基本上没有;像这样:
SparkConf conf = new SparkConf() .setAppName(appName) .setMaster(master); JavaStreamingContext ssc = new JavaStreamingContext(conf, new Duration(1000));
我已经改变了maven依赖关系,以确保1.5.2版本的所有火花内容都是一致的。然而,上面的ssc初始化失败了。所以我觉得是时候寻求帮助了。
使用shade插件构建环境是eclipse和maven。启动/运行是从eclipse调试器,而不是spark-submit,现在。
答案 0 :(得分:0)
我今天遇到这个问题,因为我有两个罐子:我的pom中有hadoop-common-2.7.2.jar和hadoop-core-1.6.1.jar,他们都依赖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。