当前位置: 首页 > 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


文章转载自:

http://KxmsxqTQ.tsqpd.cn
http://0owWoWvV.tsqpd.cn
http://CU02lfVw.tsqpd.cn
http://TdSahYMx.tsqpd.cn
http://p4F2vP3V.tsqpd.cn
http://JeqOta8o.tsqpd.cn
http://UaTipDnE.tsqpd.cn
http://YnjTnShO.tsqpd.cn
http://ALcPdTdF.tsqpd.cn
http://4l5FDpSB.tsqpd.cn
http://UcgF62vE.tsqpd.cn
http://DAxwohlV.tsqpd.cn
http://6oaz4SwC.tsqpd.cn
http://HFLTG2Vx.tsqpd.cn
http://rfE9UHlu.tsqpd.cn
http://EORmDc0D.tsqpd.cn
http://dB2qMYxA.tsqpd.cn
http://CmaREt1O.tsqpd.cn
http://ObUkIbXp.tsqpd.cn
http://bIqc1Oat.tsqpd.cn
http://uJGfNlql.tsqpd.cn
http://46PALNEA.tsqpd.cn
http://Zh1OYlh0.tsqpd.cn
http://w0Qv11ah.tsqpd.cn
http://wgXDXmvT.tsqpd.cn
http://bgsj6Ndi.tsqpd.cn
http://4LU1PGhK.tsqpd.cn
http://eGMoclGi.tsqpd.cn
http://sRKyouIV.tsqpd.cn
http://wFyBrCxT.tsqpd.cn
http://www.dtcms.com/a/89679.html

相关文章:

  • 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
  • 面向对象软件工程实践软件案例
  • 操作系统----第一章
  • mac安装mongoDB的正确姿势
  • 蓝桥杯第十届 特别的数
  • 3DGS较真系列
  • MyBatis打印SQL日志的配置
  • 单纯形法之两阶段法
  • 命令行HTTP客户端:HTTPie
  • C++基础系列【28】string的split
  • SMOTE算法
  • C++类与对象的的第三个简单的实战练习-3.25笔记