如果我使用Spark 1.6.2,Scala 2.10和spark-streaming-kafka_2.10
,我可以从Scala代码中使用来自Kafka 0.10.1.0的消息吗? (有一个使用Kafka 0.10.1.0的远程机器,代理间协议版本:0.10.1.0和Scala 2.11)。或者它是否意味着我应该使用Spark 2. *?
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka_2.10</artifactId>
<version>1.6.2</version>
</dependency>
我在一些论坛上看过这篇文章,这让我很困惑:
Kafka 0.10 support is only coming with Spark 2.0 on Scala and Java workloads
例如,要消费消息,Scala不处理Kafka队列参数(代理列表,zookeeper ip等),但它只是将它们直接发送给Kafka,后者解释它们。这是对的吗?在这种情况下,为什么Kafka 0.10不支持Spark 1.6.2?
更新:
从this thread我明白,我可以使用我在POM中指定的Kafka(见上文)来使用来自Kafka 0.10.1.0的消息,但不确定。 Kafka client
是什么意思?这是指Kafka安装在远程服务器上(即Kafka 0.10.1.0)还是指我在POM中指定的Kafka?
答案 0 :(得分:0)
0.10.1.0 这取决于您安装的kafka版本。官方为每个版本提供两个二进制文件。如果您安装了scala 2.10,则应安装Scala 2.10 - kafka_2.10-0.10.1.0.tgz,否则安装Scala 2.11 - kafka_2.11-0.10。 1.0.tgz the official documents