Maven Spark Twitter流异常:(org.apache.Spark.Logging)classnotfound
我正在使用Maven使用Scala尝试Spark Twitter流媒体示例,但运行该示例时出现以下错误: 原因:java.lang.ClassNotFoundException:org.apache.spark.Logging 以下是我的依赖项:Maven Spark Twitter流异常:(org.apache.Spark.Logging)classnotfound,maven,twitter,apache-spark,Maven,Twitter,Apache Spark,我正在使用Maven使用Scala尝试Spark Twitter流媒体示例,但运行该示例时出现以下错误: 原因:java.lang.ClassNotFoundException:org.apache.spark.Logging 以下是我的依赖项: <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-twitter_2.11</artifactId>
<version>1.6.2</version>
</dependency>
org.apache.spark
spark-core_2.10
2.0.0
org.apache.spark
spark-2.10
2.0.0
org.apache.spark
spark-streaming-twitter_2.11
1.6.2
我知道
日志记录
已被移动到org.apache.spark.internal.Logging
,但我不知道这是否是原因,我已经尝试将依赖项的版本更改为最新版本,但没有成功。TLDR强>
Classorg.apache.spark.Logging
在spark版本或更低版本中可用(尽管我没有在所有更低版本上进行测试),但在高于相同版本的版本中不可用。
这一切都归结为使用不兼容版本的: 1.让我们尝试导入org.apache.spark.Logging
on:
对它可用并已成功导入
正如您所看到的,org.apache.spark.Logging
是spark所需的,它有spark版本或更低版本,因此我建议您使用1.5.2
或更低版本的spark
因此,您应该用以下内容替换maven依赖项:
(假设您使用的是Scala 2.11.x
)
org.apache.spark
spark-core_2.11
1.5.2
org.apache.spark
spark-U 2.11
1.5.2
org.apache.spark
spark-streaming-twitter_2.11
1.6.2
请注意,artifactId
:2.11
指的是scala
版本,version
:1.5.2
或1.6.2
指的是库(spark core或spark streaming twitter)版本。好消息!有一个解决这个问题的方法,它与Spark 2.x兼容
对于SBT,使用此依赖项:
"org.apache.bahir" %% "spark-streaming-twitter" % "2.0.0"
不改变版本,我们就能解决问题
从下载spark-core_2.11-1.5.2.logging.jar并将其粘贴到spark\jars文件夹中。在spark submit命令中包含此jar路径。它解决了我的问题。我使用spark-streaming-kafka_2.11-1.6.3.jar
遇到了这个异常,并使用spark-streaming-kafka-0-8_2.11-2.1.0.jar
解决了这个问题,而不是像@ypriverol建议的那样,将依赖项更改为org.apache.bahir
。提供对许多Apache分析平台(包括Spark)的扩展
<dependency>
<groupId>org.apache.bahir</groupId>
<artifactId>spark-streaming-twitter_2.11</artifactId>
<version>2.2.0</version>
</dependency>
org.apache.bahir
spark-streaming-twitter_2.11
2.2.0
尝试添加依赖项并再次构建jar。问题解决了吗?如果不降级Apache Spark版本,就无法做到这一点。我改为org.Apache.bahir,它可以正常工作。我不认为降低spark级别是前进的方向。@ypriverol是的。你所做的是正确的。欢迎您编辑我的答案,否则我很快就会这么做。我使用下面的依赖项,但结果是一样的。libraryDependencies+=“org.apache.spark”%%“spark-core_2.11”%%“2.2.0”////libraryDependencies+=“org.apache.spark”%%“spark-streaming-twitter_2.11”%%“1.6.3%”提供了“libraryDependencies+=“org.apache.bahir”%%“spark-streaming-twitter”%%“2.0.0”//-包”org.apache.spark:spark-streaming-twitter_2.11:1.6.3“libraryDependencies+=“org.apache.spark”%”spark-streaming_2.11“%”2.2.0“谢谢你的提示。第一次工作对我有用!
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-twitter_2.11</artifactId>
<version>1.6.2</version>
</dependency>
"org.apache.bahir" %% "spark-streaming-twitter" % "2.0.0"
<dependency>
<groupId>org.apache.bahir</groupId>
<artifactId>spark-streaming-twitter_2.11</artifactId>
<version>2.2.0</version>
</dependency>