现在手里有一台服务器,如何在docker搭建flink on yarn的集群?flink的版本是1.13.6
以下是搭建Flink on Yarn的集群的步骤:
安装Docker和Docker Compose。
创建一个Docker Compose文件,命名为docker-compose.yml,内容如下:
version: "3"
services:
jobmanager:
image: flink:1.13.6-scala_2.11
command: jobmanager
expose:
- "8081"
ports:
- "8081:8081"
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
networks:
- flink
taskmanager:
image: flink:1.13.6-scala_2.11
command: taskmanager
environment:
- JOB_MANAGER_RPC_ADDRESS=jobmanager
depends_on:
- jobmanager
networks:
- flink
networks:
flink:
该文件定义了两个服务:jobmanager和taskmanager。jobmanager是Flink的主节点,taskmanager是Flink的工作节点。jobmanager暴露了8081端口,用于Web UI。taskmanager依赖于jobmanager服务,并且通过环境变量JOB_MANAGER_RPC_ADDRESS指定了主节点的地址。
在终端中进入到docker-compose.yml文件所在的目录,运行以下命令启动容器:
docker-compose up -d
该命令将在后台启动两个容器:jobmanager和taskmanager。
进入jobmanager容器,运行以下命令提交Flink作业:
docker-compose exec jobmanager /opt/flink/bin/flink run -m yarn-cluster -yn 2 /opt/flink/examples/streaming/TopSpeedWindowing.jar
该命令将在Yarn集群上启动一个Flink作业,并使用两个工作节点。
打开浏览器,访问http://localhost:8081,即可查看Flink Web UI,查看作业的状态和指标。
至此,Flink on Yarn的集群已经搭建完成。
flink的任务也可以运行在yarn上面,将flnk的任务提交到yarn平台,通过yarn平台来实现我们的任务统一的资源调度管理,方便我们管理集群当中的CPU和内存等资源
依赖环境说明:
至少hadoop2.2版本及以上
hdfs以及yarn服务正常启动
flink on yarn又分为两种模式: