如何基于Docker搭建Flink on yarn的集群?

现在手里有一台服务器,如何在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-1-用docker-compose安装Flink
  • 除此之外, 这篇博客: Flink 怎么部署安装?中的 4、flink on yarn模式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

    flink的任务也可以运行在yarn上面,将flnk的任务提交到yarn平台,通过yarn平台来实现我们的任务统一的资源调度管理,方便我们管理集群当中的CPU和内存等资源
    依赖环境说明:
    至少hadoop2.2版本及以上
    hdfs以及yarn服务正常启动
    flink on yarn又分为两种模式: