Flink架构

Flinks所需组件

JobManager
  1. 接受需要执行的应用,此应用包含一个JobGraph(逻辑Dataflow图),以及打包了全部所需类、库以及其他资源的JAR文件。JobManager将JobGraph转化为ExecutionGraph(物理Dataflow图),此图包含了那些可以并行的任务。
  2. JobManager向ResourceManager申请执行任务所需资源(TaskManager的slot槽)。
  3. 将ExecutionGraph中的任务分发给TaskManager来执行。
  4. 负责所有需要集中协调的操作,如创建检查点等。
ResourceManager
  1. 分配TaskManager给JobManager。
  2. 负责终止空闲的TaskManager以释放资源。
TaskManager
  1. 向ResourceManager注册它的slot槽。
  2. 接受ResourceManager的指示,向JobManager提供一个或多个槽。
  3. 接受并执行JobManager提供的任务。
Dispatcher
  1. 提供一个REST接口来让我们提交需要执行的应用。
  2. 转交提交的应用给JobManager。
  3. 启动WebUI,用来提供有关作业执行的信息。

Flink任务提交流程

  • 通用提交流程(ResourceManager未指定)在这里插入图片描述
  • 运行在yarn上的提交流程在这里插入图片描述

应用提交

参考文章。1
Flink 应用的执行包含两个阶段:

  • pre-flight: 在main()方法调用之后开始。
  • runtime: 一旦用户代码调用 execute() 就会触发该阶段。

main()方法使用Flink的API(DataStream API,Table API,DataSet API)之一构造用户程序。当main()方法调用env.execute()时,用户定义的pipeline将转换为Flink运行时可以理解的形式,称为job graph,并将其传送到集群中。

尽管有一些不同,但是 对于 Session 模式 和 Per-Job模式 , pre-flight 阶段都是在客户端完成的。

对于那些在自己本地计算机上提交任务的场景(本地计算机包含了所有运行Job所需的依赖),这通常不是问题。但是,对于通过诸如部署服务之类的远程进行提交的场景,此过程包括:

  • 下载应用所需的依赖
  • 执行main()方法提取 job graph
  • 将依赖和 job graph 传输到集群
  • 有可能需要等待结果

Flink任务提交方式

  • standalone
  • yarn
    1)application模式(1.11版本之后)
    特点:一个集群运行一个作业,但是main()方法是在JobManager中运行。
    2)session模式
    特点:一个集群运行多个作业,适合短期作业。
    优点:启动的延迟小。
    缺点:JobManager或TaskManager挂掉后,影响多个job。不同job之间有资源竞争。
    ①开辟资源
    命令:./yarn-session.sh -n 2 -jm 1024 -tm 1024 -d
    -n 2 表示分配两个container容器,也就是taskmanager的数量
    -jm 1024 表示jobmanager 1024M内存
    -tm 1024 表示taskmanager 1024M内存
    -d 任务后台运行
    ②提交任务
    ./flink run jar包路径/jar包名.jar
    3)job模式
    特点:一个集群运行一个作业,作业执行完毕则集群销毁,适合长期作业。
    优点:不同job之间资源相互隔离。
    缺点:启动的延迟大。
    命令:./flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 jar包路径/jar包名.jar
    -m yarn-cluster 指定需要连接的jobmanager(主节点)地址
    -yn 2 表示分配两个container容器,也就是taskmanager的数量
    -yjm 1024 表示jobmanager 1024M内存
    -ytm 1024 表示taskmanager 1024M内存

  1. 链接: https://blog.csdn.net/CarloPan/article/details/117740819. ↩︎

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值