大数据架构之Kappa架构

大数据架构lambda架构在实际中有所有应用,在架构层面流计算架构逐渐成熟,通过了解
架构以及架构对应的技术。进一步增加对技术的感知,以便更好的在技术应用层面的使用。
主要了解两方面:
    1.流计算中涉及的概念和过程
    2.Kappa架构中的一些技术要点
最终在实际大数据系统的选型和开发中有些判断

Kappa架构

流处理架构
  消息传输层:
      理想的功能:高性能和持久性 2.将生产者和消费者解耦
                    高性能:
                    持久性:消息可以重播
  流处理层:
       低延迟和高吞吐
       良好的容错以及保证Exactly-once

消息传输层

技术选型-Kafka
     MapR
    流处理架构把数据存储到可扩展的消息或者日志队列,即将默认的方法“存储和处理”切换为“流和处理”
     即把Kafka 作为存储系统-存储引擎之一,承担部分的持久化的工作,同时提供了流的方式
     目前是顺序读写机制

流处理层

技术选型: Flink
  Flink 支持流计算以及基于流来模拟批处理,同时兼顾了流处理和批处理。基于内存计算
  技术发展--提供金融级的数据处理能力。高吞吐、低延迟:毫秒级的延迟、每秒钟处理上亿次的消息或者事件
         通过调整缓存块的超时阈值,用户可根据自己的需要灵活的权衡Flink的延迟和吞吐量。
  支持状态管理:Flink提供了内置的状态管理,提供了一个Exactly-once的一致性语义,支持强一致性
  故障恢复:Checkpoint恢复-- Chandy-Lamport算法 --保证了强一致性的语义。解决乱序问题:Event Time和WaterMark的技术
  Flink架构
 一些基本概念:
        时间: Time  事件时间Event Time、处理时间Processing Time 、进入时间Ingestion time 
                时间偏差--事件时间顺序和处理时间顺序不一致,事件以乱序到达流处理器
        窗口:Window  Windows can be time driven  or data driven 
           时间窗口:
           计数窗口
           会话窗口
          stateful
         触发器--触发器(Trigger)-每个窗口分配器都带有一个默认的 Trigger
                决定了窗口什么时候准备好被窗口函数处理--触发器接口有五个方法来对不同的事件做出响应
        Evictor
        Checkpoints for Fault Tolerance
        Savepoints: 状态版本控制
        水印:Flink提供了处理迟到元素的机制,实现事件时钟

其余:

    Apache Beam是大数据的编程模型,
      定义了数据处理的编程范式和接口,它并不涉及具体的执行引擎的实现
      目前支持Java和Python两种SDK。
    Apache Calcite:Apache Calcite 是独立于存储与执行的SQL解析、优化引擎
            Flink 解析流 SQL 处理

参考:

https://ci.apache.org/projects/flink/flink-docs-release-1.6/concepts/programming-model.html

blogroll

social