我正在尝试使用Apache Kafka,Saprk,Scala和Cassandra创建一个应用程序。 但是我在获得这些工具的正确版本时遇到了很多问题。
有人可以告诉我应该使用哪个版本?
先谢谢..
答案 0 :(得分:1)
以下是我们使用过的库的版本列表:
<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>
兼容性方面遇到的主要问题是不同的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();
}
连接器中的映射是通过使用表列映射类中的字段来完成的。
对于设置,我们使用ansible和分发版本的存档与库依赖项列表中的相同。
答案 1 :(得分:0)
如果您对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"
)
}