使用KAFKA PRODUCER命令:
<body><a href="index.php\"><img src="/wp-content/uploads/2017/07/10" onmouseover="this.src='/wp-content/uploads/2017/07/20';" onmouseout="this.src='/wp-content/uploads/2017/07/10';">asdf</a></body>
消费者火花流使用的代码片段并打包为jar-
#-> kafka-console-producer --broker-list brokerhost:9093 --topic testtopic --producer.config client.properties
Hello
How are you
Bye
Where is my message?
用于运行打包的jar-
的命令 val sparkConf = new SparkConf().setAppName("kk-KafkaSparktest")
val ssc = new StreamingContext(sparkConf, Seconds(2))
val lines = KafkaUtils.createStream(ssc, "brokerhost:9093",
"spark-streaming-consumer-group", Map("testtopic" -> 5))
lines.print()
ssc.start()
ssc.awaitTermination()
日志上显示的输出
spark-submit --conf 'spark.executor.extraJavaOptions=-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/home/KK/kafka/jaas.conf' --conf 'spark.driver.extraJavaOptions=-Djava.security.krb5.conf=/etc/krb5.conf -Djava.security.auth.login.config=/home/KK/kafka/jaas.conf' --class main.scala.sparkkafka --master yarn --deploy-mode cluster kafkaproj2_2.10-1.0.jar
我在这里缺少什么?我需要对代码进行任何更改吗?我认为期望是KEY:VALUE对中的消息,但我们在这里看不到任何内容。
答案 0 :(得分:0)
可能是因为您尝试推入端口9093
并阅读9092
?
首先检查你的信息是否适用于kafka:
kafka-console-consumer --bootstrap-server brokerhost:9093 --topic testtopic
然后我认为您可以对名为&#39;结构流媒体&#39;的新API感兴趣。添加到火花2.2:https://spark.apache.org/docs/2.1.0/structured-streaming-kafka-integration.html
答案 1 :(得分:0)
这里有一些步骤:
首先,检查Kafka话题是否有消息
kafka-console-consumer.sh --zookeeper --topic --from-beginning --property print.key = true --property key.separator =, --property print.key = true \ --property key.separator =,
如果它正在打印消息,那么你在kafka中有消息,如果不是,那么你的生产者不能正常工作
如果在Kafka中有消息,请尝试以下代码
lines.foreachRDD { rdd =>
// Get the offset ranges in the RDD
val offsetRanges = rdd.asInstanceOf[HasOffsetRanges].offsetRanges
for (o <- offsetRanges) {
rdd.map(x=>x.value().mkString(",")).foreach(println)
println(s"${o.topic} ${o.partition} offsets: ${o.fromOffset} to
${o.untilOffset}")
}
}
lines.map(record => record.value().mkString(",")).count()
下面的是生产者
的简单命令echo '00157,{"name":"xyz", "title":"dev"}' |
kafka-console-producer.sh \
--broker-list <brokeer list> \
--topic <topic name> \
--property parse.key=true \
--property key.separator=, \
--new-producer