spark读取kafka两种方式的区别
来源:互联网 发布:淘宝银饰品店铺介绍 编辑:程序博客网 时间:2024/05/17 19:15
参考:http://spark.apache.org/docs/1.4.1/streaming-kafka-integration.html
Receiver与Direct方法相比,后者具有以下优点。
简化并行性
无需创建多个输入Kafka流和联合它们。使用directStream,Spark Streaming将创建与要消费的Kafka分区一样多的RDD分区,这将从Kafka并行读取数据。因此,Kafka和RDD分区之间存在一对一映射,这更容易理解和调整。
效率
在第一种方法中实现零数据丢失需要将数据存储在预写日志中,该日志进一步复制数据。这实际上是低效的,因为数据有效地被复制两次 - 一次是Kafka,另一次是写入提前日志。第二种方法消除了问题,因为没有接收器,因此不需要预写日志。只要您有足够的Kafka保留,消息可以从Kafka恢复。
Exactly-once语义
第一种方法使用Kafka的高级API在Zookeeper中存储消耗的偏移量。这是传统上消费Kafka数据的方式。虽然这种方法(与预写日志结合)可以确保零数据丢失(即至少一次语义),但是一些记录在一些故障下可能被消耗两次的机会很小。这是因为Spark Streaming可靠接收的数据与Zookeeper跟踪的偏移之间存在不一致。因此,在第二种方法中,我们使用不使用Zookeeper的简单的Kafka API。偏移由Spark Streaming在其检查点内跟踪。这消除了Spark Streaming和Zookeeper / Kafka之间的不一致,所以每个记录被Spark Streaming有效地接收一次,尽管失败了。为了实现输出结果的一次性语义,将数据保存到外部数据存储的输出操作必须是幂等的,或者是保存结果和偏移量的原子事务(请参阅主程序中的输出操作的语义)指南获取更多信息)。
- spark读取kafka两种方式的区别
- spark读取kafka两种方式的区别
- sparkstreaming读取kafka的两种方式
- spark-kafka direct方式读取和receiver方式读取的区别
- Spark获取Kafka数据的两种方式(源码)
- Spark-Streaming 和Kafka连接的两种方式
- Spark-Streaming 和Kafka连接的两种方式
- Spark Streaming获取kafka数据的两种方式
- spark-streaming 读取kafka的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
- Spark Streaming结合 Kafka 两种不同的数据接收方式比较
- Spark Streaming结合 Kafka 两种不同的数据接收方式比较
- (链表进阶)谈一谈各类算法和数据结构的c++实现以及相关操作的复杂度(三)
- KHL 005 11-计算机-本职-前台 CSS3 动画
- 一个给 Java 程序员用的 Api 文档生成工具
- JAVA流程控制习题
- vim
- spark读取kafka两种方式的区别
- 模拟退火算法的 C++ 实现
- unison+inotify实现web数据双向同步
- 算法导论习题自做2.1-3
- 安卓-setContentView(R.layout.main)意义和作用
- 数据结构 找树根和孩子(树)
- 二叉树路径和调试
- ubuntu使用-软件篇:matlab
- Hudson持续集成服务器的安装配置与使用