美文网首页
Flink的编程模型与其他框架比较

Flink的编程模型与其他框架比较

作者: 一生逍遥一生 | 来源:发表于2021-09-06 11:47 被阅读0次

    Flink核心概念

    • Streams:分为有界流与无界流.有界流指的是有固定大小,不随时间增加而增长的数据;无界流指的是数据随着时间增加而增长,计算状态持续进行.
    • State:状态指的是在进行流式计算过程中的消息。一般用作容错恢复和持久化,流式计算在本质上是增量计算,也就是需要不断地查询过去的状态。
    • Time:时间是在进行Flink程序开发时判断业务状态是否滞后和延迟的重要依据。
    • API:Flink支持开发流式或者批量处理程序。

    Flink集群模型和角色

    • JobManager:扮演的是集群管理者的角色,负责调度任务、协调checkpoints、协调故障恢复、收集Job的状态信息,并管理Flink集群中的从节点TaskManager。
    • TaskManager:负责执行计算的Worker,在其上执行Flink Job的一组Task,TaskManager还是所在节点的管理员,负责把该节点上的服务器信息上报给JobManager。
    • Client:用户提交编写的Flink工程时,会先创建一个客户端再进行提交,Client会根据用户的参数使用yarn per job模式、stand-alone模式还是yarn-session模式
      将Flink程序提交到集群。

    Flink资源和资源组

    在Flink集群中,一个TaskManager就是一个JVM进程,用独立的线程执行task,使用Task slot来控制Task slot接收task个数。

    Flink与其他框架的区别

    框架名称 架构 容错 反压
    Storm 主从模式,强依赖Zookeeper 支持Record级别的ACK-FAIL,发出去的消息,都可以确定是被成功或者失败处理 消费者处理速度跟不上生产者的速度,通知生产者停止生产数据,不能实现逐级反压,会产生OOM。
    Spark 微批处理,每个batch都依赖Driver,时间纬度上的Spark DAG 不能做到只处理一次语义 速率控制器,在速率控制器用到了PID算法
    Flink 主从模式,Graph->Stream Graph->JobGraph->ExecutionGraph 基于两阶段提交实现了精确的的一次处理语义 传输中分布式阻塞队列

    相关文章

      网友评论

          本文标题:Flink的编程模型与其他框架比较

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