聊聊Flink:Docker搭建Flink

一、准备工作

查看下Docker和Docker Compose版本,确保你安装了这些软件。

在 Flink 官网上下载 Flink 的 Docker 镜像。您可以使用以下命令从 Docker Hub 中下载:

docker pull flink:1.18.0-scala_2.12

此命令将下载 Flink 1.18.0 版本的 Docker 镜像,并且使用 Scala 2.12 进行编译。

二、编写Docker Compose文件

Docker Compose可以通过一个YAML文件来定义和管理多个容器的服务。我们将使用Docker Compose来定义Flink集群的容器服务。

创建一个 docker-compose.yml 文件,该文件描述了您要启动的容器及其配置。下面是一个基本的示例文件:

bash 复制代码
version: '3'

services:
  jobmanager:
    image: flink:1.18.0-scala_2.12
    command: jobmanager
    ports:
      - "8081:8081"
    volumes:
      - ./settings/:/settings
      - ./data/:/data
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
    restart: always
  taskmanager:
    image: flink:1.18.0-scala_2.12
    command: taskmanager
    depends_on:
      - jobmanager
    scale: 1
    environment:
      - |
        FLINK_PROPERTIES=
        jobmanager.rpc.address: jobmanager
        taskmanager.numberOfTaskSlots: 20
    volumes:
      - ./settings/:/settings
      - ./data/:/data
    restart: always

上述代码定义了两个服务:jobmanager和taskmanager。jobmanager用于管理Flink作业,taskmanager用于执行Flink作业的任务。

三、构建和启动容器

在终端中,切换到包含docker-compose.yml文件的目录,然后执行以下命令构建和启动容器:

docker-compose up -d

以上命令将会以后台模式启动Flink容器集群

一旦容器启动完成,可以通过浏览器访问Flink Web界面。在浏览器中输入http://localhost:8081,即可访问Flink的Web界面。在该界面中,可以查看作业列表、监控任务状态等信息。

五、提交Flink作业

现在,可以通过Flink Web界面提交和管理Flink作业。首先,将一个Flink作业的JAR文件上传到Flink Web界面。然后,通过界面上的操作,选择相应的作业并点击Submit按钮来提交作业。

另外,也可以通过命令行方式提交Flink作业。在终端中,执行以下命令来提交Flink作业:

docker exec -it <jobmanager_container_id> flink run -m taskmanager:8081 /path/to/job.jar

其中,<jobmanager_container_id>是Flink集群中jobmanager容器的ID,/path/to/job.jar是Flink作业的JAR文件路径。

注意:上面的提交是旧的方式,笔者这里用的Flink 1.18版本,上面的命令行已经舍弃了。
//先把你本地的jar包文件

docker cp /你的文件目录/flink-release-1.18.0/flink-reimann-test/target/flink-reimann-test-1.18.0.jar <jobmanager_container_id>:/opt/flink/test

docker exec -it <jobmanager_container_id> /bin/bash

bin/flink run -c org.apache.flink.PartitionerTest test/flink-reimann-test-1.18.0.jar

Web界面会展示刚才跑的任务

还有一种界面上提交任务的方式,我这里就不说了,留给你自己去探索。

六、关闭容器

当不再需要使用Flink集群时,可以通过以下命令关闭并删除容器:

docker-compose down
相关推荐
Yz98765 分钟前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
青云交6 分钟前
大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
武子康9 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康11 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
时差95325 分钟前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
锵锵锵锵~蒋27 分钟前
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
大数据·数据仓库·flink·实时数据开发
二进制_博客28 分钟前
Flink学习连载文章4-flink中的各种转换操作
大数据·学习·flink
大数据编程之光31 分钟前
Flink入门介绍
大数据·flink
长风清留扬40 分钟前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
Mephisto.java40 分钟前
【大数据学习 | Spark】Spark的改变分区的算子
大数据·elasticsearch·oracle·spark·kafka·memcache