Discretized Streams, 离散化的流数据处理
Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters
当前的流处理方案, Yahoo!’s S4, Twitter’s Storm, 都是采用传统的"record at-a-time”处理模式, 当收到一条record, 或者更新状态, 或者产生新的record
问题是, 在使用这些方案的时候, 用户需要考虑的东西很多, 比如
Fault tolerance
传统解决Fault tolerance的方案有两种,
a, 处理节点replication, 需要多倍的硬件资源, 而且也有可能碰到所有节点down的可能性
b, 源节点backup和replay, storm的方案, recovery的时间比较长, 因为基于超时, 需要等
Consistency
Depending on the system, it can be hard to reason about the global state, because different nodes may be processing data that arrived at different times. For example, suppose that a system
counts page views from male users on one node and from females on another. If one of these nodes is backlogged (积压), the ratio of their counters will be wrong.
Unification with batch processing
现有stream处理模型需要编写额外的code, 而无法重用batch的逻辑
Discretized streams (D-Streams), that overcomes these challenges.
The key idea behind D-Streams is to treat a streaming computation as a series of deterministic batch computations on small time intervals.
实现中的两个问题,
Low latency
这个借助spark和RDD可以达到1s以内
快速的Fault tolerance
采用"parallel recovery”
The system periodically checkpoints some of the state RDDs, by asynchronously replicating them to other nodes.
其实比较简单, 会定期的checkpoints一些状态RDDS, 并在其他节点上建立replicas
当出现故障的时候, 就读出最近的checkpoints, 并继续linear replay出最新state
这篇文章后面主要在谈如果fault tolerance,但是也不够细节
One reason why parallel recovery was hard to perform in previous streaming systems is that they process data on a per-record basis, which requires complex and costly bookkeeping protocols (e.g., Flux [20]) even for basic replication. In contrast, D-Streams apply deterministic transformations at the much coarser granularity of RDD partitions, which leads to far lighter bookkeeping and simple recovery similar to batch data flow systems [6].
Discretized Streams, 离散化的流数据处理的更多相关文章
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)
来自 Confluent 的 Confluent Platform 3.0 消息系统支持使用 Kafka Streams 实现实时的数据处理,这家公司也是在背后支撑 Apache Kafka 消息框架 ...
- [翻译]Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- Kafka Streams简介: 让流处理变得更简单
Introducing Kafka Streams: Stream Processing Made Simple 这是Jay Kreps在三月写的一篇文章,用来介绍Kafka Streams.当时Ka ...
- Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-259.pdf Discretized Streams: A Fault-Tol ...
- Apache Spark源码走读之4 -- DStream实时流数据处理
欢迎转载,转载请注明出处,徽沪一郎. Spark Streaming能够对流数据进行近乎实时的速度进行数据处理.采用了不同于一般的流式数据处理模型,该模型使得Spark Streaming有非常高的处 ...
- IO Streams:对象流
简介 正如数据流支持原始数据类型的I / O一样,对象流支持对象的I / O.标准类中的大多数但不是全部都支持对象的序列化.那些实现标记接口Serializable的那些. 对象流类是ObjectIn ...
- IO Streams:缓冲流
我们迄今为止看到的大多数示例都使用无缓冲的I / O.这意味着每个读或写请求都由底层操作系统直接处理.这使程序效率变得很低,因为每个这样的请求经常触发磁盘访问,网络活动或一些相对昂贵的其他操作. 为了 ...
- IO Streams:字符流
简介 Java平台使用Unicode约定存储字符值.字符流I / O自动将此内部格式转换为本地字符集.在西方,本地字符集通常是ASCII的8位超集. 对于大多数应用,具有字符流的I / O并不比具有字 ...
- Spark 快速理解
转自:http://blog.csdn.net/colorant/article/details/8255958 ==是什么 == 目标Scope(解决什么问题) 在大规模的特定数据集上的迭代运算或重 ...
随机推荐
- selenium 问题:OSError: [WinError 6] 句柄无效
问题: 执行多个用例的时候,会抛出异常: File "xxxxxx.py", line 16, in get_driver driver = webdriver.Chrome(ex ...
- UVALive 4857 Halloween Costumes
区间dp.对于最左边的点: 1.在该点穿的衣服只有该点用的到,即穿上就脱下.所以dp[ l ][ r ] = min(dp[ l + 1][ r ] + 1, dp[ l ][ r ]). 2.衣服仍 ...
- JUnit 3.8 通过反射测试私有方法
测试私有(private)的方法有两种: 1)把目标类的私有方法(修饰符:private)修改为(public),不推荐,因为修改了源程序不佳 2)通过反射 (推荐) 代码演示: 目标程序 Priva ...
- jQuery中.html(“xxx”)和.append("xxx")的区别和不同
append是追加,html是完全替换比如<p id="1"><p>123</p></p>$("#1").htm ...
- UVA1492 - Adding New Machine(扫描线)
UVA1492 - Adding New Machine(扫描线) option=com_onlinejudge&Itemid=8&page=show_problem&cate ...
- 【Linux】用户权限设置,配合FTP访问
转载自: http://blog.csdn.net/fengeh/article/details/16819563 领导需求,需要创建用户,并允许其增删改,却又要求其只能在自己的访问目录内,不能去别的 ...
- 快速激活JetBrains系列产品
本篇文章由:http://xinpure.com/quickly-activate-the-jetbrains-products/ lanyus.com 域名已被全面封杀,大家可以到 http://i ...
- 乱码字符引起的JSON转换失败
这种问题有两个解决办法,使用后不管你是什么特殊字符还是什么西欧字体还是什么稀奇古怪的内容都可以完美解决! 1.要把即将转换为json的内容先转换为unicode编码,json转换无误后,使 ...
- 变动性算法源代码分析与使用示例(copy_backward、 transform、 replace_copy_if 等)
首先回顾前面的文章,我们把for_each 归类为非变动性算法,实际上它也可以算是变动性算法,取决于传入的第三个参数,即函数 指针.如果在函数内对容器元素做了修改,那么就属于变动性算法. 变动性算法源 ...
- 用C语言实现循环左移和循环右移
有天重建一段代码时,遇到了循环右移指令,不知道用C语言怎么实现,后来得到小伟指点,感谢.. me 15:56:38004BD2C9 8B55 F8 MOV EDX,DWORD PTR SS:[EBP- ...