大数据学习之路96-SparkStreaming整合Kafka

本文介绍了如何在SparkStreaming中使用KafkaUtils创建DStream,对比了createDirectStream和createStream两种方法,强调createStream的简单性但可能的数据丢失问题。通过设置StreamingContext、Zookeeper连接地址、消费者组ID、主题和存储级别来从Kafka获取数据。最后,创建了一个名为'wordcount'的Kafka主题并启动生产者以观察程序效果。
摘要由CSDN通过智能技术生成

我们前面SparkStreaming获取数据的来源是TCP,但是平常是不会这么用的,我们通常用的是Kafka。

SparkStreamingContext是不直接提供对Kafka的访问的。

这个时候就有KafkaUtils

这里有两个方法

1.createDirectStream,是一种直连方式,他很重要,因为他用的是Kafka的底层API,他在消费的时候,会直接连到Kafka的分区上。

2.createStream,是有接收者的方式,而刚才我们讲的createDirectStream是没有接收者的方式。这是一种简单的方式,这种简单的方式在很早之前就出现了,但是他有一个问题,就是容易丢失数据,并且它的效率也比较低。

我们这里先使用这种简单的方式,这种简单方式其实他会自动帮我们维护偏移量,如果我们想要使用又高效,又不丢失数据的方式,我们就要手动维护偏移量。

使用这种傻瓜式的方式,我们首先要传进去StreamingContext,

第二个参数是zkQuorm,这个参数是zookeeper的连接地址

第三个参数是组id,我们知道消费者有一个消费者组,而我们SparkStreaming程序提交到集群中是分布式运行的。他相当于有很多的消费者。很多的消费者要消费同一份数据。他们不能重复消费,有了消费者组之后,就不会产生交叉消费的情况。

第四个参数是topic,他是一个Map&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来@音律

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值