美文网首页
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