问题描述:
在使用sparkStreaming在idea中进行实时word Count的启动过程中出现下面的错误
Exception in thread "main" java.lang.AbstractMethodError at org.apache.spark.util.ListenerBus$class.$init$(ListenerBus.scala:34) at org.apache.spark.streaming.scheduler.StreamingListenerBus.<init>(StreamingListenerBus.scala:30) at org.apache.spark.streaming.scheduler.JobScheduler.<init>(JobScheduler.scala:57)
问题解决:
spark的版本不一致所造成的
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId><!--2.1.1表示的是scala的版本-->
<version>2.3.4</version>
<!-- <scope>provided</scope>-->
</dependency>
</dependencies>
在我使用的spark core使用的是2.1.1,而spark streaming使用的是2.3.4。修改spark core的版本为2.3.4即可
总结:
在spark中,底层为spark core,而其他的组件如spark sql,spark streaming,spark mllib,spark GraphX等属于spark的扩展组件,版本需要和spark core保持一致