当前位置: 首页 > news >正文

docker安装flink

在 Docker 中安装和配置 Flink

本教程将分享如何在 Docker 环境中安装和配置 Flink,这是一个流行的开源流处理框架。

1. 拉取 Flink 镜像

首先,从 Docker Hub 拉取所需的 Flink 版本。这里我们使用 flink:1.13.6-scala_2.12-java8 版本:

docker pull flink:1.13.6-scala_2.12-java8

曾续缘

2. 创建 Docker 网络

为了方便 JobManager 和 TaskManager 容器之间的通信,我们创建一个 Docker 网络:

docker network create flink-network

曾续缘

3. 启动 JobManager 容器

接下来,启动 JobManager 容器,这是 Flink 集群的主节点:

docker run \
  -itd \
  --name=jobmanager \
  --publish 8081:8081 \
  --network flink-network \
  --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
  flink:1.13.6-scala_2.12-java8 jobmanager

曾续缘

这条命令创建了一个名为 jobmanager 的容器,并将容器的 8081 端口映射到宿主机的 8081 端口,以便访问 Flink Web UI。

曾续缘

4. 启动 TaskManager 容器

然后,启动 TaskManager 容器,这是 Flink 集群的从节点:

docker run \
  -itd \
  --name=taskmanager \
  --network flink-network \
  --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
  flink:1.13.6-scala_2.12-java8 taskmanager

曾续缘

5. 配置 Task Slots

我们可以根据需求调整 Task Slots 的数量。首先,从 TaskManager 容器复制配置文件:

docker cp taskmanager:/opt/flink/conf/flink-conf.yaml /root/flink-conf.yaml

然后,在 flink-conf.yaml 文件中找到并修改 taskmanager.numberOfTaskSlots 的值。例如,将其设置为 3:

taskmanager.numberOfTaskSlots: 3

停止当前的 TaskManager 容器:

docker stop taskmanager
docker rm taskmanager

重新启动 TaskManager 容器,并挂载修改后的配置文件:

docker run \
  -itd \
  --name=taskmanager \
  --network flink-network \
  -v /root/flink-conf.yaml:/opt/flink/conf/flink-conf.yaml \
  --env FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager" \
  flink:1.13.6-scala_2.12-java8 taskmanager

6. 访问 Flink Web UI

最后,我们可以通过以下 URL 访问 Flink Web UI:

http://192.168.101.101:8081/

曾续缘

我们看到 Available Task Slots 的数量已经更新。

结语

通过以上步骤,我们已经在 Docker 中成功安装和配置了 Flink。现在就可以开始提交和监控 Flink 作业了。

参考链接:cengxuyuan.cn

相关文章:

  • OpenCV 基础全方位剖析:夯实计算机视觉开发根基
  • Idea中诡异的文件编码问题: 设置fileCodeing为UTF8但不生效
  • R 基础语法
  • 六十天Linux从0到项目搭建(第五天)(file、bash 和 shell 的区别、目录权限、默认权限umask、粘滞位、使用系统自带的包管理工具)
  • 系统思考—看见未来
  • 黄土高原风蚀区解析多源数据融合与机器学习增强路径-RWEQ+集成技术在风蚀模数估算中的全流程增强策略—从数据融合到模型耦合的精细化操作指南
  • 轮回的起点与终点:一场跨越时空的哲学对话
  • netty select/poll/epoll区别
  • 使用vs code终端访问mysql报错解决
  • CAT1模块 EC800M HTTP 使用后续记录
  • 【Hugging Face 开源库】Diffusers 库 ——扩散模型
  • ARM异常处理流程与中断机制总结,与常见丢中断情况
  • Qt事件处理(处理鼠标事件、键盘事件、定时器事件、窗口移动和大小变化事件)
  • Linux学习笔记(应用篇一)
  • 【Unity网络编程知识】使用Socket实现简单TCP通讯
  • deepseek 私有化部署
  • C++学习之路:从头搞懂配置VScode开发环境的逻辑与步骤
  • css遗忘的知识点(Scoped 样式.:deep选择器. !important calc动态计算值.复杂边框效果.行内块与块元素)
  • Java基础 3.22
  • 面向对象软件工程实践软件案例
  • 影视公司网站设计/seo网站系统
  • 广州大型网站建设公司排名/国际新闻大事
  • 马鞍山建设网站/国际新闻今天最新消息
  • cpa建站教程/浙江专业网站seo
  • wordpress bootstrap 主题/seo学习
  • 无代码做网站/四川百度推广排名查询