spark spark streaming + kafka direct方式消费消息

kafka + spark streaming direct方式消费消息

 

前提:

spark 安装成功,spark 1.6.0

zookeeper 安装成功

kafka 安装成功

集群环境见:《0423_SparkStreaming数据源kafka解析和安装配置及测试实战预习》,请在IMF群中查看。

 

步骤:

worker1中启动kafka 生产者:

root@worker1:/usr/local/kafka_2.10-0.9.0.1# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

 

spark spark streaming + kafka direct方式消费消息_第1张图片

worker2中启动消费者:

root@worker2:/usr/local/kafka_2.10-0.9.0.1# bin/kafka-console-consumer.sh --zookeeper master:2181 --topic test

生产者生产的消息,消费者可以消费到。说明kafka集群没问题。进入下一步。

 

master中启动spark-shell

./spark-shell --master local[2] --packages org.apache.spark:spark-streaming-kafka_2.10:1.6.0,org.apache.kafka:kafka_2.10:0.8.2.1

笔者用的spark 1.6.0 ,读者根据自己版本调整。

 

shell中的逻辑代码(wordcount:

 

val ssc = new StreamingContext(sc, Durations.seconds(5))
KafkaUtils.createDirectStream[
String, String, StringDecoder, StringDecoder](ssc
 
, Map("bootstrap.servers" -> "master:2181,worker1:2181,worker2:2181", "metadata.broker.list" -> "master:9092,worker1:9092,worker2:9092", "group.id" -> "StreamingWordCountSelfKafkaDirectStreamScala")
 
, Set("test")).map(t => t._2).flatMap(_.toString.split(" ")).map((_, 1)).reduceByKey(_ + _).print()
ssc.start()

 

 

生产者再生产消息:

spark spark streaming + kafka direct方式消费消息_第2张图片

 

spark streaming的反应:

spark spark streaming + kafka direct方式消费消息_第3张图片

 

返回worker2查看消费者

spark spark streaming + kafka direct方式消费消息_第4张图片

可见,groupId不一样,相互之间没有互斥。

 

上述是使用 createDirectStream 方式链接kafka

 

参考:

http://spark.apache.org/docs/latest/streaming-kafka-integration.html

 


你可能感兴趣的:(spark spark streaming + kafka direct方式消费消息)