论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
Docker中部署Flink:快速部署调试各版本
Docker中部署Flink:快速部署调试各版本
美丽的神话
金牌会员
|
2024-11-26 06:58:45
|
显示全部楼层
|
阅读模式
楼主
主题
872
|
帖子
872
|
积分
2616
最近开始公众号文章也开始同步更新了,对Java、大数据、人工智能、开发运维相关技术分享,文章对您有用的话,辛苦您也关注下公众号,感谢!
使用 Docker 搭建 Flink 集群教程
应用场景
Flink 在 Docker 中的应用场景主要是为了简化集群的部署和管理,特殊是在开发、测试以及小规模生产环境中。使用 Docker 可以快速启动、停止和重启集群,避免手动配置和依赖管理的复杂性。以下是一些具体的应用场景和恰当使用 Docker 的情况:
快速本地开发与测试
场景
: 开发者在本地环境中测试 Flink 作业或应用时,不必要配置复杂的集群环境。
上风
: Docker 可以快速搭建完备的 Flink 环境,包括 JobManager 和 TaskManager,无需手动安装或配置依赖。
分布式盘算的调试与调优
场景
: 必要对 Flink 的分布式盘算特性进行调试或性能调优。
上风
: 通过 Docker,开发者可以模仿集群环境下的分布式任务执行,调整并行度、任务槽(task slots)等配置以优化性能。
集群环境的一键部署
场景
: 必要快速部署一个可用的 Flink 集群用于演示或实验。
上风
: 使用 Docker Compose 可以轻松启动包含多个 TaskManager 和 JobManager 的 Flink 集群,恰当进行短期测试或实验。
连续集成/连续部署(CI/CD)
场景
: 在自动化的 CI/CD 流程中运行 Flink 作业进行测试或验证。
上风
: Docker 容器化的 Flink 环境可以嵌入到 CI/CD 管道中,实现 Flink 作业的自动化测试和部署。
简化的依赖管理
场景
: 在差别环境中运行 Flink 时,存在 JDK、Scala 或其他依赖的版本冲突。
上风
: 使用 Docker 可以打包所有所需依赖,确保差别环境下的一致性,避免版本冲突问题。
临时或小规模生产环境
场景
: 临时项目或小规模的生产环境中,要求快速搭建并处置惩罚流数据任务。
上风
: Docker 提供的轻量化隔离环境,可以满足这些需求,而无需部署复杂的大规模集群。
环境准备
在开始之前,确保你拥有以下版本的工具:
Flink
:1.16.3
Scala
:2.12
JDK
:1.8
Docker
:已安装
拉取Flink镜像
首先,使用以下下令从 Docker Hub 拉取指定版本的 Flink 镜像:
docker pull flink:1.16.3-scala_2.12-java8
复制代码
如果由于网络问题无法拉取该镜像,可以使用阿里云的加速镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/images-speed-up/flink:1.16.3-scala_2.12-java8
复制代码
提示
: 差别版本的镜像可以在 [Docker Hub] https://hub.docker.com/_/flink/tags?page_size=&ordering=&name=1.16.3 上进行查找。
启动 Flink 集群
1. 创建工作目录
首先,创建一个目录用于存放 Flink 集群的相关文件:
mkdir ~/flink && cd ~/flink
复制代码
2. 创建 Docker Compose 文件
在该目录下创建一个名为
docker-compose.yml
的文件,内容如下:
version: '3'
services:
jobmanager:
image: flink:1.16.3-scala_2.12-java8
hostname: jobmanager
container_name: jobmanager
ports:
- "8081:8081"
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
parallelism.default: 1
command: jobmanager
taskmanager:
image: flink:1.16.3-scala_2.12-java8
hostname: taskmanager
container_name: taskmanager
environment:
- |
FLINK_PROPERTIES=
jobmanager.rpc.address: jobmanager
taskmanager.numberOfTaskSlots: 2
parallelism.default: 1
depends_on:
- jobmanager
command: taskmanager
复制代码
3. 启动 Flink 集群
通过以下下令启动 Flink 集群:
docker-compose up -d
复制代码
等候容器启动后,你可以通过访问 http://localhost:8081 来打开 Flink 的 Web 界面,以检查集群是否乐成启动。
同时也可以看到我们上面设置的配置slot参数也生效
4. 参数阐明
服务名称配置项阐明jobmanagerimage使用指定版本的 Flink 镜像启动容器hostname设置容器主机名为 jobmanagercontainer_name容器名称为 jobmanagerports将容器的 8081 端口映射到宿主机的 8081 端口environment设置环境变量,配置 Flink 的属性,包括 jobmanager 的 RPC 地址和默认并行度command指定启动 jobmanager 服务taskmanagerimage使用雷同的 Flink 镜像启动容器hostname设置容器主机名为 taskmanagercontainer_name容器名称为 taskmanagerenvironment设置环境变量,包括 TaskManager 的 Task Slots 数量和默认并行度depends_on依赖于 jobmanager 服务,确保先启动 jobmanagercommand启动 taskmanager 服务
运行 Flink 程序
1. 准备测试程序
测试程序包括以下文件:
flink-docker-1.0.jar
:用于循环统计单词数量的测试代码。
lib/
:依赖的外部库文件。
start.sh
:启动脚本。
将这些文件复制到 jobmanager 容器中:
docker cp flink-docker-1.0.jar jobmanager:/flink-docker-1.0.jar
docker cp lib/ jobmanager:/flink-docker-lib/
docker cp start.sh jobmanager:/start.sh
复制代码
可以通过以下下令查看文件是否乐成复制:
docker exec jobmanager ls /
复制代码
2. 运行测试程序
在 jobmanager 容器中执行以下下令,运行测试程序:
docker exec -it jobmanager bash /start.sh
复制代码
你可以通过 Flink 的 Web UI 监控作业的执行情况,访问 http://localhost:8081,在
Running Jobs
选项卡中查看当前正在运行的作业。
提示
: 对于简单任务,Flink 的 Web UI 提交任务也是一个便捷选择。
总结
通过本文介绍的步骤,你可以快速搭建并运行一个基于 Docker 的 Flink 集群。接下来,你可以根据必要调整 TaskManager 的数量、任务并行度等配置,以满足现实应用需求。
参考资料
官方文档:Flink 集群 Docker 部署:https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/resource-providers/standalone/docker/
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
美丽的神话
金牌会员
这个人很懒什么都没写!
楼主热帖
Python 实现贪心算法
Spark快速上手(3)Spark核心编程-RDD转 ...
什么是超融合数据中心网络? ...
Python自动操作 GUI 神器——PyAutoGUI ...
java中Files.mismatch方法具有什么功能 ...
Kubernetes——Pod对象的声明周期(Pod ...
哈工大软件构造Lab3(2022)
GIS前沿技术
C# net core 微信公众号导出历史文章 ...
微服务介绍
标签云
挺好的
服务器
快速回复
返回顶部
返回列表