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

docker环境下安装flink

前言

flink在实时计算领域中有着举足轻重的地位。这篇文章来介绍一下,在linux的docker环境下,怎么快速安装一个单机版本的flink。

操作流程

环境准备

检查docker环境是不是正常,如果在拉取镜像的时候比较慢,建议使用镜像加速,比如使用腾讯云的镜像加速

cat /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}

执行完成后,重启docker

拉取flink镜像

docker pull apache/flink:1.18.0-scala_2.12-java11

注:这个版本的镜像体积相对比较小 

启动JobManager

docker run -d --name flink-jobmanager  -p 8081:8081 -p 6123:6123 --restart=always flink:1.18.0-scala_2.12-java11 jobmanager

参数说明:

  • -d:让容器在后台运行。

  • --name flink-jobmanager:为容器指定名称为 flink-jobmanager

  • -p 8081:8081:将容器的 8081 端口映射到宿主机的 8081 端口,通过该端口可以访问 Flink 的 Web UI。

  • -p 6123:6123:将容器的 6123 端口映射到宿主机的 6123 端口,此端口用于作业管理器的内部通信。

  • flink:1.18.0-scala_2.12-java11:指定要使用的 Flink 镜像。

  • jobmanager:表示启动的是作业管理器。

  • --restart 表示容器挂掉后会自动重启容器

获取JobManager的IP地址

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' flink-jobmanager

启动TaskManager

docker run -d --name flink-taskmanager -e JOB_MANAGER_RPC_ADDRESS=172.17.0.3 -p 6121:6121 -p 6122:6122 --restart=always flink:1.18.0-scala_2.12-java11 taskmanager

参数说明:

  • -d:让容器在后台运行。
  • --name flink-taskmanager:为容器指定名称为 flink-taskmanager
  • -e JOB_MANAGER_RPC_ADDRESS=xxxx:指定作业管理器的 RPC 地址,这个地址是上一步得到的
  • -p 6121:6121-p 6122:6122:分别将容器的 6121 和 6122 端口映射到宿主机的对应端口,这两个端口用于任务管理器的内部通信。
  • flink:1.18.0-scala_2.12-java11:指定要使用的 Flink 镜像。
  • taskmanager:表示启动的是任务管理器。

验证安装

访问 Web UI

打开浏览器,访问 http://<你的服务器 IP 地址>:8081,若能看到 Flink 的 Web UI 界面,说明 Flink 单机版已成功启动。在该界面中,你可以查看作业管理器和任务管理器的状态、提交作业等。

这里需要注意,如果使用的是公有云,需要开对应的防火墙策略

检查容器状态
docker ps

通过这个docker命令,可以查询到正在运行中的docker容器,如果运行列表中包含flink-jobmanager、fink-taskmanager,说明启动ok

停止和清理

停止正在运行中的flink容器、删除容器

docker stop flink-jobmanager fink-taskmanager
docker rm flink-jobmanager fink-taskmanager

总结

通过上面的安装教程,一个简单的单机版的flink就安装成功了。这里将JobManager和TaskManager进行分开部署,这样做的好处有如下几点

  • 功能分离
  • 可扩展性
  • 容错和高可用性
  • 资源隔离
  • 方便维护和管理

最后,总结了下常见的docker容器的操作命令

# 查询所有的容器
docker ps -a

# 查询对应name容器的容器id
docker ps -qf "name=flink-jobmanager"

# 实时查看docker容器的日志
docker logs -f afa4783601bc
# 查看最近100行日志
docker logs --tail=100 afa4783601bc

# 查询容器详细的信息
docker inspect afa4783601bc

当然,更主流的做法是使用docker compose来进行部署,后面会来一章详细介绍docker compose! 

相关文章:

  • vector(沉淀)
  • 使用Azure CDN进行子域名接管
  • 解锁 DeepSeek 安全接入、稳定运行新路径
  • vulhub-joker攻略
  • VulnHub-Billu_b0x通关攻略
  • 【C++】多态
  • CCF-CSP认证 202206-1归一化处理
  • Compose 的产生和原理
  • MySQL超详细介绍(近2万字)
  • 穆迪暖色调人像静物摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 生成PDF文件:从html2canvas和jsPdf渲染到Puppeteer矢量图
  • Android Handler 通过线程安全的 MessageQueue 和底层唤醒机制实现跨线程通信
  • 【嵌入式学习】如何利用gitee管理记录学习内容
  • 多线程—进程与线程
  • 【软考-架构】8.2、开发方法-TPC-MIS-DSS
  • RSI 量化策略实战指南:基于 iTick 报价源的 Python 实现
  • 卷积神经网络 - 卷积层
  • 库的制作与原理 linux第课
  • LORA的AB矩阵是针对Transformer的多头还是MLP
  • 台式机电脑组装---电脑机箱与主板接线
  • “上海之帆”巡展在日本大阪开幕,松江区组织企业集体出展
  • 李彦宏:技术迭代速度之快从业30年来未见过,要提升执行力战胜对手
  • 马上评|不再提“智驾”,新能源车企回归理性
  • 探索人类的心灵这件事,永远也不会过时
  • 潘功胜:央行将创设科技创新债券风险分担工具
  • 贵州游船侧翻248名消防员已在搜救