如何构建一个flink sql平台

作者: 大数据首席数据师 | 来源:发表于2018-10-29 17:50 被阅读12次

    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集群执行

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

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

    相关文章

      网友评论

      本文标题:如何构建一个flink sql平台

      本文链接:https://www.haomeiwen.com/subject/uaqitqtx.html