当前位置: 首页 > news >正文

spark Streaming的Receiver和Direct的优化对比

 Direct

1、简化并行读取:如果要读取多个partition,不需要创建多个输入DStream然后对它们进行union操作。Spark会创建跟Kafka partition一样多的RDD partition,并且会并行从Kafka中读取数据。所以在Kafka partition和RDD partition之间,有一个一对一的映射关系。

2、高性能:如果要保证零数据丢失,在基于receiver的方式中,需要开启WAL机制。这种方式其实效率低下,因为数据实际上被复制了两份,Kafka自己本身就有高可靠的机制,会对数据复制一份,而这里又会复制一份到WAL中。而基于direct的方式,不依赖Receiver,不需要开启WAL机制,只要Kafka中作了数据的复制,那么就可以通过Kafka的副本进行恢复。

一次且仅一次的事务机制:
基于receiver的方式,是使用Kafka的高阶API来在ZooKeeper中保存消费过的offset的。这是消费Kafka数据的传统方式。这种方式配合着WAL机制可以保证数据零丢失的高可靠性,但是却无法保证数据被处理一次且仅一次,可能会处理两次。因为Spark和ZooKeeper之间可能是不同步的。
基于direct的方式,使用kafka的简单api,Spark Streaming自己就负责追踪消费的offset,并保存在checkpoint中。Spark自己一定是同步的,因此可以保证数据是消费一次且仅消费一次。

 

Receiver方式

转载于:https://www.cnblogs.com/yaohaitao/p/5710345.html

相关文章:

  • 浅说通字母配符[A-Z][a-z]的匹配问题
  • window server 2003于四信路由器的***组网方案
  • Linux CentOS 文件通配符介绍
  • shell exec 作用
  • UVA455 Periodic Strings
  • HTTP消息结构
  • php 经典分页(推荐和laypage配合)
  • spring获取webapplicationcontext,applicationcontext几种方法详解(转载)
  • ChakraCore现在可以在Linux和Mac OS上运行了
  • 如何让两个div并排显示
  • golang时间
  • git取消跟踪文件
  • window.location.href的用法
  • Linux 安装NFS服务
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 2017年终总结、随想
  • exif信息对照
  • Travix是如何部署应用程序到Kubernetes上的
  • uva 10370 Above Average
  • 翻译:Hystrix - How To Use
  • 聊聊flink的TableFactory
  • 盘点那些不知名却常用的 Git 操作
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 消息队列系列二(IOT中消息队列的应用)
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (10)STL算法之搜索(二) 二分查找
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (论文阅读30/100)Convolutional Pose Machines
  • (南京观海微电子)——I3C协议介绍
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (四)JPA - JQPL 实现增删改查
  • (算法)求1到1亿间的质数或素数
  • (转)视频码率,帧率和分辨率的联系与区别
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET CLR Hosting 简介
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net流程开发平台的一些难点(1)
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • []新浪博客如何插入代码(其他博客应该也可以)
  • [20150321]索引空块的问题.txt
  • [android] 练习PopupWindow实现对话框
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [C语言]——分支和循环(4)
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [na]wireshark抓包排错-tcp.flags.reset