卡夫卡Spark Scala Cassandra兼容版本
我正在尝试使用ApacheKafka、Saprk、Scala和Cassandra创建一个应用程序。 但是,在获得这些工具的合适版本方面,我面临着很多问题 有人能告诉我应该使用哪个版本吗卡夫卡Spark Scala Cassandra兼容版本,scala,apache-spark,cassandra,apache-kafka,Scala,Apache Spark,Cassandra,Apache Kafka,我正在尝试使用ApacheKafka、Saprk、Scala和Cassandra创建一个应用程序。 但是,在获得这些工具的合适版本方面,我面临着很多问题 有人能告诉我应该使用哪个版本吗 提前感谢。以下是我们使用过的库的版本列表: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId
提前感谢。以下是我们使用过的库的版本列表:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.10.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.10.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.cassandra</groupId>
<artifactId>apache-cassandra</artifactId>
<version>3.10</version>
</dependency>
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.2</version>
</dependency>
org.apache.spark
spark-core_2.11
2.1.1
org.apache.spark
spark-streaming-kafka-0-10_2.11
2.1.1
org.apache.kafka
卡夫卡客户
0.10.2.0
org.apache.kafka
卡夫卡2.11
0.10.2.1
org.apache.cassandra
阿帕奇·卡桑德拉
3.10
com.datasax.spark
spark-cassandra-connector_2.11
2.0.2
在兼容性方面,您将面临的主要问题是不同的scala版本(2.10.*或2.11.*)。您必须注意这一点,并确保所有依赖项都使用相同的scala版本。我认为你可以毫无疑问地将所有版本更新到最新版本,只要你注意到所有地方都有相同的scala版本
下面是代码示例,它将帮助您开始:
public static void main(String[] args) throws InterruptedException {
JavaStreamingContext jssc = new JavaStreamingContext(getSparkConfiguration(), Durations.seconds(5));
JavaInputDStream<ConsumerRecord<String, LoggingEvent>> messages =
KafkaUtils.createDirectStream(
jssc,
LocationStrategies.PreferConsistent(),
ConsumerStrategies.<String, LoggingEvent>Subscribe(Arrays.asList("some_topic"), getKafkaParams("localhost:9092", "some_logging_group))
);
JavaDStream<LoggingEvent> loggingRecords = messages.map(
(Function<ConsumerRecord<String, LoggingEvent>, LoggingEvent>) message -> message.value()
);
CassandraStreamingJavaUtil.javaFunctions(loggingRecords).writerBuilder("some_space", "some_table",
CassandraJavaUtil.mapToRow(LoggingEvent.class)).saveToCassandra();
jssc.start();
jssc.awaitTermination();
}
publicstaticvoidmain(String[]args)抛出InterruptedException{
JavaStreamingContext jssc=新的JavaStreamingContext(getSparkConfiguration(),Durations.seconds(5));
JavaInputDStream消息=
KafkaUtils.createDirectStream(
jssc,
LocationStrategies.PreferConsistent(),
Subscribe(Arrays.asList(“一些主题”)、getKafkaParams(“localhost:9092”、“一些日志记录组))
);
JavaDStream loggingRecords=messages.map(
(函数)message->message.value()
);
javaFunctions(loggingRecords).writerBuilder(“一些\u空间”,“一些\u表”,
CassandraJavaUtil.mapToRow(LoggingEvent.class)).saveToCassandra();
jssc.start();
jssc.aittimination();
}
连接器中的映射是通过将类中的字段映射为表列来完成的
在安装过程中,我们使用的存档文件的ansible和分发版本与库依赖项列表中的版本相同。如果您对sbt版本感兴趣
libraryDependencies ++= {
val sparkV = "2.1.0"
val cassandraV = "2.0.0-M3"
Seq(
"org.apache.spark" %% "spark-core" % sparkV,
"org.apache.spark" %% "spark-streaming" % sparkV,
"org.apache.spark" %% "spark-streaming-kafka-0-10" % sparkV,
"org.apache.spark" %% "spark-sql-kafka-0-10" % sparkV,
"org.apache.spark" %% "spark-sql" % sparkV,
"org.apache.spark" %% "spark-hive" % sparkV,
"com.datastax.spark" %% "spark-cassandra-connector" % cassandraV,
"com.datastax.cassandra" % "cassandra-driver-core" % "3.2.0",
"org.rogach" %% "scallop" % "2.1.2"
)
}
请添加您正在使用的版本以及您的
pom.xml
的外观。我使用的是Spark 2.2、Kafka 0.11、scala 2.11,但在创建API时遇到了很多问题。这就是为什么我要问现在应该从哪个版本开始?scala:-)。对于上述依赖项,scala版本是2.11.8。