Spark 定制版:005~贯通Spark Streaming流计算框架的运行源码
本讲内容:
a. 在线动态计算分类最热门商品案例回顾与演示
b. 基于案例贯通Spark Streaming的运行源码
注:本讲内容基于Spark 1.6.1版本(在2016年5月来说是Spark最新版本)讲解。
上节回顾
上节课主要从事务视角为大家探索Spark Streaming架构机制;Spark Streaming程序分成而部分,一部分是Driver,另外一部分是Executor。通过对Driver和Executor解析,洞察怎么才能完成完整的语义、事务一致性,并保证数据的零丢失,Exactly Once的事务处理。
而直接通过kafka direct api直接消费数据,所有的Executors通过kafka api直接消费数据,直接管理offset,所以不会重复消费数据;从而实现事务!!!
设置spark.task.maxFailures次数为1、spark.speculation为关闭状态、auto.offset.reset为“largest”的方式来解决Spark Streaming数据输出多次重写的问题
最后可以通过transform和foreachRDD基于业务逻辑代码进行逻辑控制来实现数据不重复消费和输出不重复!这二个方法类似于spark的后门,可以做任意想象的控制操作!
开讲
事例源码
下图来自(上海-丁立清)
备注:
1、DT大数据梦工厂微信公众号DT_Spark
2、Spark大神级专家:王家林
3、新浪微博: http://www.weibo.com/ilovepains