卡夫卡Spark 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

我正在尝试使用ApacheKafka、Saprk、Scala和Cassandra创建一个应用程序。 但是,在获得这些工具的合适版本方面,我面临着很多问题

有人能告诉我应该使用哪个版本吗


提前感谢。

以下是我们使用过的库的版本列表:

    <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。