Spark学习笔记(20)Spark Streaming中动态Batch Size实现初探
2017-08-31 10:54
253 查看
本期内容:
1. Batch Duration与Process Time
2. 动态Batch Size
不要低估Batch Duration与Process Time匹配的问题。两者关系不是线性规律。不是数据量大,就简单加大Batch Duration来解决问题。前面推荐的论文很重要。参加定制班,不是简单学编程,要懂得设计思想。
我们看论文是怎么实现动态Batch Size。
现代数据处理的应用中,流进来的数据越来越大,所以采取分布式的流处理技术。要判断各个算子、各种负载是否是预期中的。某单位时间内,往往数据很大到,不便于存储,单台机器不能及时处理完。大数据公司往往要对当下的新数据进行分析判断以获得最新的信息。一切媒体都不能抗拒媒体完全实时性的潮流趋势,否则会被淘汰。
传统的单台机器处理方式不能适应需求,分布式流处理绝对是一个有前途的技术方向之一。
目前的大数据处理框架主要是一系列在接收数据上的MapReduce风格的批处理。其中一种处理方式是动态的调整资源(内存、CPU等)。也有丢弃数据的方式,但在一些情况下不允许。如何应对现实中突发场景的变化?资源不会是随数据增大而同倍增大。其实如果足够快,就什么问题都没有。比如处理足够快,就不会丢数据,就不需要临时保存。
这个论文的一个观点是要尽量把batch变小。越小,则越快,也就越安全。任何事物只要足够快,就可以屏蔽掉所有问题。
Heron推出的原因是应对波峰的处理方式需要从设计上去改变。Storm虽然已不错,但在架构上不能满足越来越大的业务需求。
谈到了什么因素导致延迟。接收数据并放入队列、等待时间、处理时间...都是delay。
坐标图中,虚线隔离出安全、非安全区域。例如Join的处理,单位时间批处理量大的处理,随着时间的推移,会先变得不安全:处理延迟会陡增。
静态模型的办法,处理能力确实会很有限。很难预测行为。要设计一个算法,调整batch的大小。
要对信息进行统计,下一次处理之前要看上一次的统计信息,已决定如何调整。其实不那么简单。
实现动态的Batch Size的方案是固定点迭代(Fixed-point Iteration)。算法实现再拿一节课深入分析。
高手应该是搞思想和理论研究的。不要停留在工程级别。多有想法。
1. Batch Duration与Process Time
2. 动态Batch Size
不要低估Batch Duration与Process Time匹配的问题。两者关系不是线性规律。不是数据量大,就简单加大Batch Duration来解决问题。前面推荐的论文很重要。参加定制班,不是简单学编程,要懂得设计思想。
我们看论文是怎么实现动态Batch Size。
现代数据处理的应用中,流进来的数据越来越大,所以采取分布式的流处理技术。要判断各个算子、各种负载是否是预期中的。某单位时间内,往往数据很大到,不便于存储,单台机器不能及时处理完。大数据公司往往要对当下的新数据进行分析判断以获得最新的信息。一切媒体都不能抗拒媒体完全实时性的潮流趋势,否则会被淘汰。
传统的单台机器处理方式不能适应需求,分布式流处理绝对是一个有前途的技术方向之一。
目前的大数据处理框架主要是一系列在接收数据上的MapReduce风格的批处理。其中一种处理方式是动态的调整资源(内存、CPU等)。也有丢弃数据的方式,但在一些情况下不允许。如何应对现实中突发场景的变化?资源不会是随数据增大而同倍增大。其实如果足够快,就什么问题都没有。比如处理足够快,就不会丢数据,就不需要临时保存。
这个论文的一个观点是要尽量把batch变小。越小,则越快,也就越安全。任何事物只要足够快,就可以屏蔽掉所有问题。
Heron推出的原因是应对波峰的处理方式需要从设计上去改变。Storm虽然已不错,但在架构上不能满足越来越大的业务需求。
谈到了什么因素导致延迟。接收数据并放入队列、等待时间、处理时间...都是delay。
坐标图中,虚线隔离出安全、非安全区域。例如Join的处理,单位时间批处理量大的处理,随着时间的推移,会先变得不安全:处理延迟会陡增。
静态模型的办法,处理能力确实会很有限。很难预测行为。要设计一个算法,调整batch的大小。
要对信息进行统计,下一次处理之前要看上一次的统计信息,已决定如何调整。其实不那么简单。
实现动态的Batch Size的方案是固定点迭代(Fixed-point Iteration)。算法实现再拿一节课深入分析。
高手应该是搞思想和理论研究的。不要停留在工程级别。多有想法。
相关文章推荐
- Spark Streaming揭秘 Day20 动态Batch size实现初探(上)
- Spark定制班第20课:Spark Streaming中动态Batch Size实现初探
- 第20课:Spark Streaming中动态Batch Size实现初探
- 第20课:Spark Streaming中动态Batch Size实现初探
- 第20课:Spark Streaming中动态Batch Size实现初探
- Spark学习笔记 --- SparkStreaming 实现对 TCP 数据源处理
- Spark学习笔记(17)Spark Streaming资源动态申请剖析
- Spark学习笔记(21)动态Batch Size深入
- 初探swift语言的学习笔记八(保留了许多OC的实现)
- Spark学习笔记-Streaming-1
- 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用学习笔记
- Spark学习笔记之-Spark-Streaming
- Spark学习笔记-Streaming-1<转>
- Javascript学习笔记2.3 Javascript与DOM实现动态表格效果
- Spark学习笔记8-搭建spark的HA(用zookeeper实现spark的高可用)
- Spark学习笔记之-Spark on yarn(动态资源调度)
- 算法(第四版)学习笔记之java实现能够动态调整数组大小的栈
- JqGrid 学习笔记---实现在jqGrid表格上动态的加行、删行,最后点击“保存”按钮,与后台交互,保存数据
- 学习笔记_用hibernateQBC动态查询+jsp的jstl标签库实现的动态查询以及分页特效
- Spark学习笔记-Streaming-Flume