Flink基本认识

Flink基本架构 详见图

Flink系统架构中包含了两个角色,分别是JobManager和TaskManager,是一个典型的Master-Slave架构。JobManager相当于是Master,TaskManager相当于是Slave
Flink基本认识_第1张图片

官方
Flink基本认识_第2张图片

JobManager(JVM进程) 详见图

JobManager负责整个集群的资源管理与任务管理,在一个集群中只能由一个正在工作(active)的 JobManager,如果HA集群,那么其他JobManager一定是standby状态

TaskManager(JVM进程)

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

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基本认识_第3张图片

Flink on Yarn两种运行模式

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

  • 适用于大量的小作业
  • 需要手动申请yarn资源
  • yarn资源不能够自动关闭,需要手动关闭
  • 一次性申请好yarn资源

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

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

提交作业:
flink run ../examples/batch/WordCount.jar

关闭资源:
yarn application -kill ID

查看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集群就不会正常运转

你可能感兴趣的:(大数据,yarn,flink,框架)