一、常见部署模式分类
1. 按是否依赖外部资源调度
1.1 Standalone 模式
独立模式 (Standalone) 是独立运行的,不依赖任何外部的资源管理平台,只需要运行所有 Flink 组件服务
1.2 Yarn 模式
Yarn 模式是指客户端把 Flink 应用提交给 Yarn 的 ResourceManager, Yarn 的 ResourceManager 会在 Yarn 的 NodeManager 上创建容器。在这些容器上,Flink 会部署 JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作业所需要的 Slot 数量动态分配 TaskManager 资源
2. 按集群的生命周期和执行位置
2.1 会话模式
- 会话模式 (Session Mode) 是指先启动一个集群,保持一个会话并且确定所有的资源,然后向集群提交作业,所有提交的作业会竞争集群中的资源,从而会出现资源不足作业执行失败的情况
- 会话模式比较适合于单个规模小、执行时间短的大量作业
2.2 单作业模式
- 单作业模式 (Per-Job Mode) 是指为每一个提交的作业启动一个集群,由客户端运行应用程序,然后启动集群,作业被提交给 JobManager,进而分发给 TaskManager 执行。作业作业完成后,集群就会关闭,所有资源也会释放。
- 单作业模式在生产环境运行更加稳定,所以是实际应用的首选模式
- 单作业模式一般需要借助一些资源管理框架来启动集群,比如 YARN、Kubernetes
2.3 应用模式
- 应用模式 (Application Mode) 是指为每一个提交的应用单独启动一个 JobManager,也就是创建一个集群。这个 JobManager 只为执行这一个应用而存在,执行结束之后 JobManager 也就关闭了。这一模式下没有客户端的存在
- 应用模式与单作业模式,都是提交作业之后才创建集群;单作业模式是通过客户端来提交作业的,客户端解析出的每一个作业对应一个集群;而应用模式下,是直接由 JobManager 执行应用程序的,并且即使应用包含了多个作业,也只创建一个集群
二、常见部署模式组合
- Standalone + 会话模式
- Standalone + 应用模式
- Yarn + 会话模式
- Yarn + 单作业模式
- Yarn + 应用模式
三、独立模式安装
1. 单节点安装
-
flink 下载地址:https://flink.apache.org/downloads/
-
下载 flink 安装包:
flink-1.10.1-bin-scala_2.12.tgz
-
将安装包上传到虚拟机节点并解压缩
tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C /opt/module cd /opt/module mv flink-1.10.1 flink
-
进入 flink 安装目录,执行启动命令,并查看进程
cd /opt/module/flink bin/start-cluster.sh jps
-
访问 http://hadoop102:8081 进入 flink 集群和任务监控管理 Web 页面
-
关闭 flink:
bin/stop-cluster.sh
2. 集群安装
2.1 集群规划
节点服务器 | hadoop102 | hadoop103 | hadoop104 |
---|---|---|---|
角色 | JobManager | TaskManager | TaskManager |
2.2 步骤
-
下载 flink 安装包:
flink-1.10.1-bin-scala_2.12.tgz
-
将安装包上传到 hadoop102 并解压缩
tar -zxvf flink-1.10.1-bin-scala_2.12.tgz -C /opt/module cd /opt/module mv flink-1.10.1 flink
-
进入 flink 安装目录下的 conf 目录,修改配置文件
flink-conf.yaml
cd /opt/module/flink/conf vim flink-conf.yaml
#修改 jobmanager 内部通信主机名 jobmanager.rpc.address: hadoop102 jobmanager.rpc.port: 6123
-
修改 conf 目录下的 slaves 文件,配置 taskmanager 节点
vim slaves #1.13版本为 workers 文件 #添加内容 hadoop103 hadoop104
-
flink-conf.