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模式比较常见。