Flink与Kylin深度实践
上QQ阅读APP看书,第一时间看更新

1.7 部署运行模式

类似于Spark,Flink也有各种运行模式,其中主要支持三种:local模式、standalone模式以及Flink on YARN模式。每种模式都有特定的使用场景,接下来一起了解一下各种运行模式。

1.local模式

适用于测试调试。Flink可以运行在Linux、macOS和Windows系统上。local模式的安装唯一需要的是Java 1.7.x或更高版本,运行时会启动JVM,主要用于调试代码,一台服务器即可运行。

2.standalone模式

适用于Flink自主管理资源。

Flink自带集群模式standalone,主要是将资源调度管理交给Flink集群自己来处理。standalone是一种集群模式,可以有一个或者多个主节点(JobManager,HA模式,用于资源管理调度、任务管理、任务划分等工作),多个从节点(TaskManager,主要用于执行JobManager分解出来的任务)。

3.Flink on YARN模式

适用于使用YARN来统一调度和管理资源,其任务提交过程如图1-4所示。

图1-4 Flink on YARN任务提交

Flink on YARN工作流程如下。

1)提交Job给YARN就需要有一个Flink YARN Client。

2)Client将Flink的jar包和配置文件上传到HDFS。

3)Client向ResourceManager注册资源和请求APP Master Container(容器)。

4)ResourceManager给某一个从节点分配一个Container来启动APP Master,JobManager会在APPMaster中启动。

5)APPMaster为Flink的TaskManager分配Container并启动TaskManager,TaskManager内部会划分为很多Slot,它们会自动从HDFS下载jar文件和修改后的配置,然后运行相应的Task。TaskManager也会与APPMaster中的JobManager进行交互,维持Heartbeat等。

一般在学习研究环节或资源不充足的情况下,采用local模式部署即可,生产环境中Flink on YARN模式比较常见。