美文网首页
Flink on yarn

Flink on yarn

作者: Eqo | 来源:发表于2022-08-14 22:48 被阅读0次

使用Yarn统一管理资源的好处

  • 1)、Yarn的资源可以按需使用,提高集群的资源利用率

  • 2)、Yarn的任务有优先级,根据优先级运行作业

  • 3)、基于Yarn调度系统,能够自动化地处理各个角色的 Failover(容错)
    yarn当中 jobManger 宕机挂掉了之后, appmaster会重新跟RM申请资源 去运行,间接的实现了高可用

Flink on yarn(重要)

Flink on yarn 主要是两步:

  • Flink cluster中的集群角色 运行在yarn的容器内
    JM TM 运行在yarn -container容器中

  • 客户端提交job 给 jobManager去运行
    JobManager分配资源给 TaskManger去运行task任务

    image.png
  • JobManager 进程和 TaskManager 进程都由 Yarn NodeManager 监控
    特点am 和 jm 运行在同一个 container容器内 是一个进程

  • 如果 JobManager 进程异常退出,则 Yarn ResourceManager 会重新调度 JobManager到其他机器;

  • 如果 TaskManager 进程异常退出,JobManager 会收到消息并重新向 Yarn ResourceManager 申请资源,重新启动 TaskManager;

Flink on yarn 流程

image.png
image.png

1.客户端上传jar 包和conf配置文件到HDFS上(当资源满足时,才会上传)
2.客户端提交应用给RM.RM收到请求后,到对应NM上分配一个container容器,启动AppMaster
3.Appmaster到HDFS上读取对应的jar包和配置文件,在当前容器内构建JobManager运行环境,启动JobManager
4.启动后AM/JM不会立即向RM申请资源,当需要资源时 AM/JM向RM申请资源,
当申请到资源后,分配容器到HDFS上下载jar包和配置文件构建TaskManager运行环境,运行TM进程

-- 客户端提交job给 JobManager

Flin on yarn 运行job作业 的三种部署模式

[flink-1.11版本之前:2种,flink-1.11版本开始:3种]

  • seesion 会话共享
    在yarn集群上启动一个flink cluster ,运行多个job
    所有作业Job共享1个集群资源,隔离性差,JM 负载瓶颈,每个Job中main 方法在客户端执行
  • per - job独享模式
    在yarn 集群启动多个 Flink cluster,每个Flink cluster 只运行一个job
    每个作业单独启动1个集群,隔离性好,JM 负载均衡,Job作业main 方法在客户端执行。
  • application 应用模式
    相当于per-job的升级版 ,启动一个flink clsuter,只运行1个job作业
    但是main函数运行在Job Manager内

不同点:
seesion和per-job main方法都是在客户端上执行的,

  • 会导致服务器压力大,提交的操作都会在实时平台所在的机器上执行
  • 会导致大量的网络io开销,在执行时 会把本地flink的jar包上传到hdfs临时文件中

1_seesion 会话共享

image.png

所有作业Job共享1个集群资源,隔离性差,JM 负载瓶颈,每个Job中main 方法在客户端执行。

2_per - job独享模式

image.png

每个作业单独启动1个集群,隔离性好,JM 负载均衡,Job作业main 方法在客户端执行。

3_application 应用模式

image.png

main方法运行在rm中

相关文章

网友评论

      本文标题:Flink on yarn

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