Kafka 数据源、Receiver 和 Direct 方式接收数据_2|学习笔记

简介: 快速学习 Kafka 数据源、Receiver 和 Direct 方式接收数据_2

开发者学堂课程【大数据实时计算框架 Spark 快速入门:Kafka 数据源、Receiver 和 Direct 方式接收数据_2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/100/detail/1730


Kafka 数据源、Receiver 和 Direct 方式接收数据_2


Apache Kafka 将发布-订阅消息传递重新考虑为分布式、分区、复制的提交日志服务。

在这里,我们解释了如何配置 Spark Streaming 来接收来自 Kafka 的数据。

有两种方法可以解决这个问题——旧的方法是使用 Receivers 和 Katka 的高级 API,而新的实验方法(在 Spark 1.3 中引入)则不使用 Receivers。

他们有不同的编程模型,特征,保证和语义。

这种方法使用一个 Receiver 来接收数据。

与所有接收器一样,通过接收器从 Kafka 接收到的数据存储在 Spark 执行器中,然后由 Spark Streaming 启动的作业对数据进行处理。

然而,在默认连续下,这种方法可能会在故障下丢失数据(参见 receiver reliability,为了确保零数据丢失,你必须在 Spark Streaming 中启用 Write Ahead Logs (在 Spark 1.2 中引入)。这将同步保存所有收到的 Katka 数据到提前写入日志分布式文件系统。以便在故障时可以恢复所有数据。


需要记住:

Kafka 中的主题分区与 Spark Streaming 中生成的 RDD 的分区不相关。因此,在kafkautils.createStream() 中增加主题特定分区的数量只会增加单个接收器中使用的主题的线程数。不会增加 Spark 处理数据的并行度。

多个 Kafka 输入 DStreams 可以创建不同的组和主题,以使用多个接收器并行接收数据。

如果你已经在 HDFS 这样的复制文件系统上启用了 Write Ahead Loas。接收到的数据已经复制到日志中。因此,存储级别在存储级别为输入流到StorageLevel.MENORY_AND_DISK SER(即使用Kafkautils。

createStream (....StorageLevel, MEMORY-AND-DISK-SER))。

相关文章
|
1月前
|
消息中间件 存储 Kafka
【Kafka】Kafka 消息封装
【4月更文挑战第10天】【Kafka】Kafka 消息封装
【Kafka】Kafka 消息封装
|
1月前
|
消息中间件 存储 算法
【Kafka】 Kafka中的消息封装
【4月更文挑战第5天】【Kafka】Kafka中的消息封装
|
9月前
|
消息中间件 SQL Kafka
在 PyFlink 1.13.3 中接收 Kafka 消息
在 PyFlink 1.13.3 中接收 Kafka 消息
247 1
|
5月前
|
消息中间件 Kafka Windows
使用Kafka Connect 导入导出数据
使用Kafka Connect 导入导出数据
83 0
|
7月前
|
消息中间件 存储 Kafka
Apache Kafka - 构建数据管道 Kafka Connect
Apache Kafka - 构建数据管道 Kafka Connect
106 0
|
7月前
|
消息中间件 Java Kafka
Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现
Apache Kafka - 灵活控制Kafka消费_动态开启/关闭监听实现
294 1
|
12月前
|
消息中间件 缓存 容灾
Apache Kafka-通过设置Consumer Group实现广播模式
Apache Kafka-通过设置Consumer Group实现广播模式
1585 0
|
12月前
|
消息中间件 Kafka 测试技术
Apache Kafka-生产者_批量发送消息的核心参数及功能实现
Apache Kafka-生产者_批量发送消息的核心参数及功能实现
503 0
|
消息中间件 Kafka
Kafka Tool模拟数据发送
Kafka Tool模拟数据发送
158 0
|
消息中间件 Kafka 流计算
如何快速优雅的用Know Streaming创建Topic
如何快速优雅的用Know Streaming创建Topic
如何快速优雅的用Know Streaming创建Topic