火花卡桑德拉连接器基础简单程序得到火花日志记录错误



我正在为java+spark+cassandra尝试一个非常基本的hello world程序。

最初,我有一些混合版本的库,这导致了NoSuchMethodError 。当我得到正确的版本时,我得到了 noclassdefounds 火花日志记录 的错误。这是来自Cassandra连接器代码。我从 github 的 b2.3 分支构建了它,它只在主节点后面的几个提交(使用 sbt(。

火花日志记录问题的所有解决方案都指向迁移到旧版本。这对我们来说不是一个实用的解决方案,因为我们需要为未来的发展解决这个问题。 想知道为什么Cassandra连接器的最新稳定版本指的是现在不再可用的火花日志记录??. 任何帮助,不胜感激。

火花版本:2.3.0 卡桑德拉:3.9.0

相关代码片段粘贴在下面。

#1 SparkConf sparkConf = new SparkConf().setAppName("appname")
.setMaster("local");
#2 sparkConf.set("spark.cassandra.connection.host", "127.0.0.1"); 
#3 JavaSparkContext ctx = new JavaSparkContext(sparkConf);
#4 CassandraConnector connector = CassandraConnector.apply(ctx.getConf()); <<<< org/apache/spark/logging noclassdeffound error
#5 try (Session session = connector.openSession()) { <<< nosuchmethoderror: scala.runtime.objectref.zero()lscala/runtime/objectref

聚甲酸如下

http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0 com.mygroup 阿帕奇火花 1.0-快照 .jar 阿帕奇火花 http://maven.apache.org

<dependencies>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId> 
<version>2.2.1</version>
</dependency> 
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.3.1</version>
</dependency>

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.11</artifactId>
<version>1.6.0-M1</version>
</dependency>  
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.11.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.apache.spark.spark-core.version>2.2.1</org.apache.spark.spark-core.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

首先要修复的是

<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector-java_2.11</artifactId>
<version>1.6.0-M1</version>
</dependency>  

这与您的任何其他构建版本都不匹配。Java 模块被合并到主工件中。您也不应该单独包含 java 驱动程序模块,因为这很可能会与番石榴包含物有关。

看看

例如 https://github.com/datastax/SparkBuildExamples/blob/master/scala/maven/oss/pom.xml pom 文件。

最新更新