Flink实战(十)Flink on Yarn模式

本文详细介绍了Flink在Yarn上的两种运行模式:Yarn Per Job和Yarn On Session。Per Job模式中,任务完成后资源会被释放,适合长时间运行的任务;Session模式则可复用资源,适合短时间运行的批处理任务。文中还涵盖了两种模式的实践操作和配置参数详解。
摘要由CSDN通过智能技术生成

概述

img

FLink 如何执行在Yarn上面的呢?

首先我们需要了解到Flink的底层执行流程,然后看哪一步与Yarn进行适配,执行。

Flink底层执行流程:

  1. 用户通过 DataStream API、DataSet API、SQL 和 Table API 编写 Flink 任务,它会生成一个JobGraph。

  2. JobGraph 是由 source、map()、keyBy()/window()/apply() 和 Sink 等算子组成的。

  3. 当 JobGraph 提交给 Flink 集群后,能够以 Local、Standalone、Yarn 和 Kubernetes 四种模式运行。

那么我们下面主要看一下运行在Yarn的两种模式:

模式1 Yarn Per Job

img

Flink on Yarn 中的 Per Job 模式是指每次提交一个任务,然后任务运行完成之后资源就会被释放

  • 首先 Client 提交 Yarn App,比如 JobGraph 或者 JARs。
  • 接下来 Yarn 的 ResourceManager 会申请第一个 Container。这个 Container 通过 Application Master 启动进程,Application Master 里面运行的是 Flink 程序,即 Flink-Yarn ResourceManager 和 JobManager。
  • 最后 Flink-Yarn ResourceManager 向 Yarn ResourceManager 申请资源。当分配到资源后,启动 TaskManager。TaskManager 启动后向 Flink-Yarn ResourceManager 进行注册,注册成功后 JobManager 就会分配具体的任务给 TaskManager 开始执行。
实践
# 默认:{masterMemoryMB=1024, taskManagerMemoryMB=1024,numberTaskManagers=1, slotsPerTaskManager=1}

./bin/yarn-session.sh

## 启动一个有2个Taskmanager,jobmanager内存1GB,taskManager1GB内存的集群
./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024

## 后台模式
./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -d 

然后在看输出日志里面

Flink JobManager is now running on flinkhadoop:43434 with leader id 00000000-0000-0000-0000-000000000000.
JobManager Web Interface: http://flinkhadoop:43434

本地调试的时候,直接把对应的执行信息改变即可!

   final Stream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值