Flink部署模式的调研(看完你就知道你公司适合哪种)

一、调研的三种模式:

1、Flink On Yarn

(1)PerJob模式

一个任务一个集群

(2)Session模式

多个任务一个Session,可以启多个Session

2、Standlone模式

多个任务一个集群,可以启动多个集群,还可以在每个节点另起多个taskmanager

二、不同模式的对比

perjob_yarn session_yarn standlone_cluster 占优
集群 一个任务一个集群 多个任务一个集群,可以有多个集群 一个集群 perjob_yarn > session_yarn > standlone_cluster****session_yarn相比于perjob更加美观,相比于standlone启多个集群更优雅
分配tm/jm内存,slot 随意配置 启动session时被限定 启动集群时被限定 perjob_yarn > session_yarn = standlone_cluster
启动任务 单独启动 提交任务到指定session 提交任务到集群 持平
任务恢复 单独启动 单个任务出问题单独启动;session挂掉全部任务重启 单个任务出问题单独启动;集群挂掉需要全部任务重启 perjob_yarn > session_yarn = standlone_cluster
恢复时长 单独恢复、速度快 1、单个任务失败单独恢复;2、session挂掉或因一个任务影响到session挂掉则恢复时长依赖脚本,一旦脚本异常,手动单个恢复耗时长;3、目前稳定性不高,目前我们配置了高可用,好像不适合于session 1、单个任务失败单独恢复;2、集群挂掉任务全部启动3、高可用 perjob_yarn > session_yarn = standlone_cluster
恢复粒度 一 / 多 一 / 多 perjob_yarn > session_yarn = standlone_cluster
日志 单独日志 所有在session启动的任务都在一个jobmanager的日志中查看。yarn会帮你收集jobmanager和taskmanager的日志 所有在集群中启动的任务都在master节点中的flink-root-standalonesession-.log日志中查看。想看task的日志需要到对应的woker节点去看,不方便 perjob_yarn > session_yarn > standlone_cluster
监控 yarn + flink rest api sessionId + flink rest api jobid **On yarn **优于 standlone_cluster

注意:

  • session模式根据我在jira提了一个区分不同任务的日志的bug,根据回复者做了一些尝试都失败,目前暂时也没有其他的有效办法。
    详情见jira的FLINK-19768 传送链接

  • perjob和session模式需要依赖于Yarn,所以还需要多了其他的组件的监控,除了这一个弊端更建议On Yarn。

猜你喜欢

转载自blog.csdn.net/weixin_44500374/article/details/112612031