Apache spark Spark Streaming升级到2.1.0时抛出java.lang.VerifyError:分支目标152处的堆栈映射帧不一致

Apache spark Spark Streaming升级到2.1.0时抛出java.lang.VerifyError:分支目标152处的堆栈映射帧不一致,apache-spark,guava,spark-streaming,Apache Spark,Guava,Spark Streaming,我将Spark从1.6.1升级到2.1.0,Spark Streaming也是如此。我使用spark rabbitmq库进行流式处理。这已从0.3.0升级到0.5.1 当我在独立的Spark预构建的Hadoop-2.7版本上使用Spark submit运行Spark流媒体作业时,我得到以下错误- 2017-01-09 12:32:17 ERROR Executor:91 - Exception in task 0.0 in stage 0.0 (TID 0) java.lang.VerifyEr

我将Spark从1.6.1升级到2.1.0,Spark Streaming也是如此。我使用spark rabbitmq库进行流式处理。这已从0.3.0升级到0.5.1

当我在独立的Spark预构建的Hadoop-2.7版本上使用Spark submit运行Spark流媒体作业时,我得到以下错误-

2017-01-09 12:32:17 ERROR Executor:91 - Exception in task 0.0 in stage 0.0 (TID 0)
java.lang.VerifyError: Inconsistent stackmap frames at branch target 152
Exception Details:
Location:
akka/dispatch/Mailbox.processAllSystemMessages()V @152: getstatic
Reason:
Type top (current frame, locals[9]) is not assignable to 'akka/dispatch/sysmsg/SystemMessage' (stack map, locals[9])
Current Frame:
bci: @131
flags: { }
locals: { 'akka/dispatch/Mailbox', 'java/lang/InterruptedException', 'akka/dispatch/sysmsg/SystemMessage', top, 'akka/dispatch/Mailbox', 'java/lang/Throwable', 'java/lang/Throwable' }
stack: { integer }
Stackmap Frame:
bci: @152
flags: { }
locals: { 'akka/dispatch/Mailbox', 'java/lang/InterruptedException', 'akka/dispatch/sysmsg/SystemMessage', top, 'akka/dispatch/Mailbox', 'java/lang/Throwable', 'java/lang/Throwable', top, top, 'akka/dispatch/sysmsg/SystemMessage' }
stack: { }
Bytecode:
0x0000000: 014c 2ab2 0132 b601 35b6 0139 4db2 013e
0x0000010: 2cb6 0142 9900 522a b600 c69a 004b 2c4e
0x0000020: b201 3e2c b601 454d 2db9 0148 0100 2ab6
0x0000030: 0052 2db6 014b b801 0999 000e bb00 e759
0x0000040: 1301 4db7 010f 4cb2 013e 2cb6 0150 99ff
0x0000050: bf2a b600 c69a ffb8 2ab2 0132 b601 35b6
0x0000060: 0139 4da7 ffaa 2ab6 0052 b600 56b6 0154
0x0000070: b601 5a3a 04a7 0091 3a05 1905 3a06 1906
0x0000080: c100 e799 0015 1906 c000 e73a 0719 074c
0x0000090: b200 f63a 08a7 0071 b201 5f19 06b6 0163
0x00000a0: 3a0a 190a b601 6899 0006 1905 bf19 0ab6
0x00000b0: 016c c000 df3a 0b2a b600 52b6 0170 b601
0x00000c0: 76bb 000f 5919 0b2a b600 52b6 017a b601
0x00000d0: 80b6 0186 2ab6 018a bb01 8c59 b701 8e13
0x00000e0: 0190 b601 9419 09b6 0194 1301 96b6 0194
0x00000f0: 190b b601 99b6 0194 b601 9ab7 019d b601
0x0000100: a3b2 00f6 3a08 b201 3e2c b601 4299 0026
0x0000110: 2c3a 09b2 013e 2cb6 0145 4d19 09b9 0148
0x0000120: 0100 1904 2ab6 0052 b601 7a19 09b6 01a7
0x0000130: a7ff d62b c600 09b8 0109 572b bfb1
Exception Handler Table:
bci [290, 307] => handler: 120
Stackmap Table:
append_frame(@13,Object[#231],Object[#177])
append_frame(@71,Object[#177])
chop_frame(@102,1)
full_frame(@120,{Object[#2],Object[#231],Object[#177],Top,Object[#2],Object[#177]},{Object[#223]})
full_frame(@152,{Object[#2],Object[#231],Object[#177],Top,Object[#2],Object[#223],Object[#223],Top,Top,Object[#177]},{})
append_frame(@173,Object[#357])
full_frame(@262,{Object[#2],Object[#231],Object[#177],Top,Object[#2]},{})
same_frame(@307)
same_frame(@317)

at akka.dispatch.Mailboxes.<init>(Mailboxes.scala:33)
at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:628)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:142)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:109)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:100)
at org.apache.spark.streaming.rabbitmq.receiver.RabbitMQReceiver.onStart(RabbitMQInputDStream.scala:57)
at org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:149)
at org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:131)
at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:607)
at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:597)
at org.apache.spark.SparkContext$$anonfun$34.apply(SparkContext.scala:2021)
at org.apache.spark.SparkContext$$anonfun$34.apply(SparkContext.scala:2021)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
at org.apache.spark.scheduler.Task.run(Task.scala:99)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:282)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2017-01-09 12:32:17错误执行者:91-任务0.0在0.0阶段出现异常(TID 0)
java.lang.VerifyError:分支目标152处的堆栈映射帧不一致
例外情况详情:
地点:
akka/dispatch/Mailbox.processAllSystemMessages()V@152:getstatic
原因:
类型top(当前帧,局部变量[9])不可分配给“akka/dispatch/sysmsg/SystemMessage”(堆栈映射,局部变量[9])
当前帧:
密件抄送:@131
标志:{}
本地语言:{'akka/dispatch/Mailbox','java/lang/InterruptedException','akka/dispatch/sysmsg/SystemMessage',top','akka/dispatch/Mailbox','java/lang/Throwable','java/lang/Throwable'}
堆栈:{integer}
堆栈映射帧:
密件抄送:@152
标志:{}
本地语言:{'akka/dispatch/Mailbox','java/lang/InterruptedException','akka/dispatch/sysmsg/SystemMessage',top','akka/dispatch/Mailbox','java/lang/Throwable','java/lang/Throwable',top,top',akka/dispatch/sysmsg/SystemMessage'}
堆栈:{}
字节码:
0x0000000:014c 2ab2 0132 b601 35b6 0139 4db2 013e
0x0000010:2cb6 0142 9900 522a b600 c69a 004b 2c4e
0x0000020:b201 3e2c b601 454d 2db9 0148 0100 2ab6
0x0000030:0052 2db6 014b b801 0999 000e bb00 e759
0x0000040:1301 4db7 010f 4cb2 013e 2cb6 0150 99ff
0x0000050:bf2a b600 c69a ffb8 2ab2 0132 b601 35b6
0x0000060:0139 4da7 ffaa 2ab6 0052 b600 56b6 0154
0x0000070:b601 5a3a 04a7 0091 3a05 1905 3a06 1906
0x0000080:c100 e799 0015 1906 c000 e73a 0719 074c
0x0000090:b200 f63a 08a7 0071 b201 5f19 06b6 0163
0x00000a0:3a0a 190a b601 6899 0006 1905 bf19 0ab6
0x00000b0:016c c000 df3a 0b2a b600 52b6 0170 b601
0x0000000:76bb 000f 5919 0b2a b600 52b6 017a b601
0x00000d0:80b6 0186 2ab6 018a bb01 8c59 b701 8e13
0x00000e0:0190 b601 9419 09b6 0194 1301 96b6 0194
0x00000f0:190b b601 99b6 0194 b601 9ab7 019d b601
0x00000100:a3b2 00f6 3a08 b201 3e2c b601 4299 0026
0x0000110:2c3a 09b2 013e 2cb6 0145 4d19 09b9 0148
0x0000120:01001904 2ab6 0052 b601 7a19 09b6 01a7
0x0000130:a7ff d62b c600 09b8 0109 572b bfb1
异常处理程序表:
bci[290307]=>处理程序:120
堆栈映射表:
追加帧(@13,对象[#231],对象[#177])
追加帧(@71,对象[#177])
切碎帧(@102,1)
全帧(@120,{Object[#2],Object[#231],Object[#177],Top,Object[#2],Object[#177]},{Object[#223]})
全帧(@152,{Object[#2],Object[#231],Object[#177],Top,Object[#2],Object[#223],Object[#223],Top,Top,Object[#177]},{})
追加帧(@173,对象[#357])
全帧(@262,{Object[#2],Object[#231],Object[#177],Top,Object[#2]},{})
同一帧(@307)
同一帧(@317)
在akka.dispatch.Mailboxes.(邮箱.scala:33)
在akka.actor.ActorSystemImpl.(ActorSystem.scala:628)
在akka.actor.ActorSystem$.apply上(ActorSystem.scala:142)
在akka.actor.ActorSystem$.apply(ActorSystem.scala:109)
在akka.actor.ActorSystem$.apply上(ActorSystem.scala:100)
位于org.apache.spark.streaming.rabbitmq.receiver.RabbitMQReceiver.onStart(RabbitMQInputDStream.scala:57)
位于org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:149)
位于org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:131)
在org.apache.spark.streaming.scheduler.ReceiverTracker$receivertrackerdpoint$$anonfun$9.apply(ReceiverTracker.scala:607)
在org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:597)上
位于org.apache.spark.SparkContext$$anonfun$34.apply(SparkContext.scala:2021)
位于org.apache.spark.SparkContext$$anonfun$34.apply(SparkContext.scala:2021)
位于org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
位于org.apache.spark.scheduler.Task.run(Task.scala:99)
位于org.apache.spark.executor.executor$TaskRunner.run(executor.scala:282)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
我的pom.xml文件如下


1.7.7
1.2.17
5.0.0-mapr
19
....
番石榴
番石榴
${guava.version}
org.apache.spark
spark-core_2.11
2.1.0
假如
org.apache.spark
spark-U 2.11
2.1.0
假如
接收站
火花兔
0.5.1
.....
.....
org.apache.maven.plugins
maven阴影插件
2.4.3
包裹
阴凉处
谷歌
沙代奥
com.google**
如果我删除了番石榴的着色插件,那么代码就可以运行了。但如果我加上它,它就会抛出上面的错误。我需要一个新版本的Guava-19.0用于我的一个流媒体工作,因此需要对这个插件进行着色


任何解决此问题的建议。

您应该从依赖项中排除那些具有不同、冲突的番石榴版本的依赖项

具有此类排除的依赖性示例(本例中为卡夫卡):

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <exclusions>
            <exclusion>
                <artifactId>google-collections</artifactId>
                <groupId>google-collections</groupId>
            </exclusion>
            <exclusion>
                <artifactId>guava</artifactId>
                <groupId>com.google.guava</groupId>
            </exclusion>
        </exclusions>
        <version>${kafka.version}</version>
    </dependency>

org.apache.kafka
卡夫卡客户
谷歌收藏
谷歌收藏
番石榴
番石榴
${kafka.version}
此外,我建议您对某些Akka配置文件使用transformers,这些文件可能会给您带来阴影问题:

    <transformers>
        <transformer
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
            <resource>reference.conf</resource>
        </transformer>
    </transformers>

reference.conf

我最近遇到了完全相同的问题(但与Flink projec有关)
    <transformers>
        <transformer
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
            <resource>reference.conf</resource>
        </transformer>
    </transformers>