Flink 源码-作业启动

This commit is contained in:
LingZhaoHui 2023-04-02 17:14:40 +08:00
parent c43435b19d
commit 3f9a8afbe4
Signed by: zeekling
GPG Key ID: D96E4E75267CA2CC
5 changed files with 54 additions and 2 deletions

View File

@ -1,3 +1,7 @@
- [作业提交](./作业提交源码分析.md) - [作业提交脚本分析](./作业提交源码分析.md)
- [per-job模式启动分析](./per-job启动.md)
- [application启动分析](./application启动.md)
- [yarn-session启动分析](./yarn-session启动.md)

View File

View File

@ -0,0 +1,49 @@
# 简介
该模式下集群管理框架例如YARN或Kubernetes会为每个提交的作业启动一个单独Flink集群该集群仅对该作业可用。
作业运行完成,集群将被关闭,所有用到的资源(例如文件)也将被清理。此模式提供更好的资源隔离。一个作业故障不会
影响其他作业的运行。此外由于每个作业都有自己的JobManager负载被分散到多个实体上。考虑到Session模式的资源隔
离问题对于需要长时间运行的作业通常选择Per-Job模式这些作业愿意承受增加启动延迟以提升作业的恢复能力。
Per-Job模式为每个提交的作业启动一个集群以提供更好的资源隔离保证。在这种情况下集群的生命周期与作业的生命周期绑定。
# 启动分析
启动类:`YarnJobClusterEntrypoint.java`
## 加载配置文件以及命令行参数解析
在per-job启动的时候需要先加载配置文件。
从`ApplicationConstants.Environment.PWD`中加载`flink-conf.yml`中的配置项。
### `_KEYTAB_PRINCIPAL`
从系统变量里面获取当前参数用于kerberos认证的keytab文件。
### `NM_HOST`
从系统变量里面获取当前参数为ApplicationMaster的主机名。当前参数不能为空。将当前参数的值设置到参数
`jobmanager.rpc.address`、`rest.address`、`rest.bind-address`里面。
### `web.port`
## 启动YarnJobClusterEntrypoint
jobMaster里面启动TaskManager
```java
private void startJobExecution() throws Exception {
}
```

View File

View File

@ -76,4 +76,3 @@
- `-h`、`--help`: 帮助信息。 - `-h`、`--help`: 帮助信息。
- `-v`、`--version` 显示版本信息。 - `-v`、`--version` 显示版本信息。