Flink基本认识

Flink基本架构 详见图

Flink系统架构中包含了两个角色,分别是JobManager和TaskManager,是一个典型的Master-Slave架构。JobManager至关因而Master,TaskManager至关因而Slave
flink-角色架构.pngweb

官方
flink基本框架.pngsession

JobManager(JVM进程) 详见图

JobManager负责整个集群的资源管理与任务管理,在一个集群中只能由一个正在工做(active)的 JobManager,若是HA集群,那么其余JobManager必定是standby状态架构

TaskManager(JVM进程)

负责当前节点上的任务运行及当前节点上的资源管理,TaskManager资源经过TaskSlot进行了划 分,每一个TaskSlot表明的是一份固定资源。例如,具备三个 slots 的 TaskManager 会将其管理的 内存资源分红三等份给每一个 slot。 划分资源意味着 subtask 之间不会竞争内存资源,可是也意味 着它们只拥有固定的资源。注意这里并无 CPU 隔离,当前 slots 之间只是划分任务的内存资源
负责TaskManager之间的数据交换app

Flink任务调度规则

  1. 不一样Task下的subtask分到同一个TaskSlot,提升数据传输效率
  2. 相同Task下的subtask不会分到同一个TaskSlot,充分利用集群资源

client客户端

负责将当前的任务提交给JobManager,提交任务的经常使用方式:命令提交、web页面提交。获取任务的 执行信息框架

Flink on Yarn 详见图

Flink on Yarn是依托Yarn资源管理器,如今不少分布式任务均可以支持基于Yarn运行,这是在企业中使 用最多的方式。Why?
(1)基于Yarn的运行模式能够充分使用集群资源,Spark on Yarn、MapReduce on Yarn、Flink on Yarn等 多套计算框架均可以基于Yarn运行,充分利用集群资源
(2)基于Yarn的运行模式下降维护成本分布式

flink-on-yarn.png

Flink on Yarn两种运行模式

1.yarn-session模式(用得多)

  • 适用于大量的小做业
  • 须要手动申请yarn资源
  • yarn资源不可以自动关闭,须要手动关闭
  • 一次性申请好yarn资源

申请yarn资源
yarn-session.sh -n 2 -tm 1024 -jm 1024 -s 2 -dspa

-n : taskmanager的容器的数量
-tm : taskmanager的申请内存
-jm: jobmanager的申请内存
-s : taskmanager的cpu核数
-d:分离模式,申请好yarn资源,会自动跳出会话窗口

提交做业:
flink run ../examples/batch/WordCount.jarserver

关闭资源:
yarn application -kill IDblog

查看yarn session列表: yarn application -list

-help命令:
yarn-session.sh -help进程

2.yarn-cluster模式

  • 适用于大做业
  • 适用于一次性做业
  • 任务执行完毕以后,可以自动关闭资源
  • 申请资源和关闭资源,一条命令就能够

flink run -m yarn-cluster -yn 1 -ytm 1024 -yjm 1024 -ys 1 /export/servers/flink-1.7.0/examples/batch/WordCount.jar

-m : 指定模式
-yn: taskmanager的容器的数量
-yjm: jobmanager的申请内存
-ytm: taskmanager的申请内存
-ys: taskmanager的cpu核数

-help命令:
flink run -m yarn-cluster -help

Flink on YARN HA集群

不管以什么样的模式提交Application到Yarn中运行,都会启动一个yarn-session(Flink 集群),依然是由 JobManager和TaskManager组成,那么JobManager节点若是宕机,那么整个Flink集群就不会正常运转

相关文章
相关标签/搜索