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

kafka + spark streaming 集群

 

前提:

spark 安装成功,spark 1.6.0

zookeeper 安装成功

kafka 安装成功

 

步骤:

在worker1中启动kafka 生产者:

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

054727_Bhuc_120395.png

 

在worker2中启动消费者:

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

054727_cOH2_120395.png

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

 

在master中启动spark-shell

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

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

shell中的逻辑代码(wordcount):

 

import org.apache.spark.SparkConf
import org.apache.spark.streaming._
import org.apache.spark.streaming.kafka._
import org.apache.spark.streaming.kafka.KafkaUtils
import org.apache.spark.streaming.{Durations, StreamingContext}
 
val ssc = new StreamingContext(sc, Durations.seconds(5))
// 第二个参数是zk的client host:port
// 第三个参数是groupID
KafkaUtils.createStream(ssc, "master:2181,worker1:2181,worker2:2181", "StreamingWordCountSelfKafkaScala", Map("test" -> 1)).map(_._2).flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).print()
ssc.start

 

生产者再生产消息:

054727_7867_120395.png

 

spark streaming的反应:

054727_T1rX_120395.png

 

返回worker2查看消费者

054727_1MbI_120395.png

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

 

上述是使用 createStream 方式链接kafka

 

还有更高效的方式,请使用createDirectStream

 

参考:

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

 

转载于:https://my.oschina.net/corleone/blog/665531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值