如何构建一个flink sql平台

1、spark Streaming是一个微批处理的框架

2、批处理时间间隔 batchInterval 

     >> 表示在batchInterval时间内Spark 所接收的数据被当做一个批次做处理

3、批处理时间间隔(batchInterval)、窗口长度(windowLen)、窗口滑动时间(windowSlide)之间的关系

   >> 3.1 spark提交作业最小的单位是batchInterval即在batchInterval时间内的数据作为数据处理最小的单位

   >> 3.2 windowLen 表示处理的”数据量”即处理的数据量是batchInterval的N倍,N具体是几就要看windowLen是batchInterval的几倍

   >> 3.3 windowSlide 表示提交作业的时长,也是batchInterval的整数倍

   >> 3.4 eg:如果 batchInterval=t,  windowLen=10t,  windowSlide=3t 

        >> 此时,spark每次会处理最近10t时间内的数据,即每3t时间处理一次,处理的数据时最近10t内的数据

>> 在现实中比如天猫双11的销售额,每10秒钟处理一下最近24小时的销售额,这个10秒钟就是windowSlide,24小时就是windowLen

>> 由此可见,windowLen和windowSlide都必须是batchInterval的整数倍

4、DStream的原理以及与RDD的关系

>> 4.1 DStream是针对RDD的抽象,表示一系列在时间上连续的RDD

>> 4.2 Dstream中包含3大部分(1)、DStream之间的依赖关系,即操作链依赖 (2)、一系列时间上连续的RDD,使用HashMap<Time,RDD>持有,新的RDD不断的添加到这个hash表中,

>>而旧的不需要的则会从这个hash表中删除,(3)、用于对RDD进行计算的compute()函数,当对Dstream进行计算时,通过这个函数作用于RDD上

5、spark的容错处理

>> 5.1 Worker节点失效 

>>5.1.1 如果数据的输入源在HDFS上,那么在任务恢复时可以再次计算出来

>>5.1.2 如果数据源是网络或者kafka则有可能丢失一部分数据

>>5.1.3 如果是转换操作可以实现精处理一次,如果是写出操作则能保证至少处理一次

>> 5.2 Driver节点失效

>> 可以通过设置checkPoint来预防Driver失效,设置checkPoint,sparkStreaming会周期性的将Dstream的元数据写入到HDFS中,如果Driver节点失效,则可以通过其记录点将StreamingContext回复

>> 如果使用checkPoint则通过 JavaStreamingContext.getOrCreate方法获取 JavaStreamingContext的对象,还需要注意的是当spark应用重新编译后就不能通过checkPoint恢复到原来的状态了

>> 所以在每次编译代码后要显示的把checkPoint路径下的文件删除

>> 5.3 这些情况在standalone模式下会自动回复,其他模式下则需要借助其他机制辅助

6、spark Streaming作业

>> 6.1 类似于spark作业,spark Streaming作业通过输出操作触发

>> 6.2 spark Streaming作业最终会转换为spark作业而被spark集群执行

大家喜欢多多关注,你的关注是我最大的动力。

可以关注我的微信公众号:首席数据师  里面有很多关于大数据的干货

    原文作者:大数据首席数据师
    原文地址: https://www.jianshu.com/p/f4826bdaeac3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞