Apache Flink Docker 容器化部署指南

Flink 1.20与Docker容器化部署实战指南 实时计算框架Apache Flink与容器化技术Docker的结合,为大数据处理提供了环境一致性与部署便利性。Flink的核心优势在于其批流一体的处理能力,而Docker通过轻量级容器解决了环境依赖问题。在技术实现上,Flink 1.20版本优化了Kafka连接器与资源管理,配合Docker可实现快速部署与资源隔离。典型应用场景包括实时数据分析、事件驱动应用等。通过容器化部署,开发者可以快速搭建Flink伪集群环境,进行应用开发与性能测试。本文以WordCount为例,详细演示了从镜像定制到作业提交的全流程 阅读详情

Apache Flink® 是一个强大的开源分布式流处理与批处理框架,具备高吞吐、低延迟和强状态一致性等特性。通过 Docker 方式部署 Flink,可实现环境一致性、快速部署与简化运维,非常适合开发测试、POC 以及中小规模生产场景。

本文将详细介绍 如何使用 Docker 容器化部署 Apache Flink Session 集群,内容涵盖环境准备、镜像拉取、集群部署、功能验证、生产环境建议及常见故障排查,帮助你快速搭建一套稳定、可用的 Flink 运行环境。

概述

Docker 部署 Flink 的典型优势包括:

  • 环境一致,避免「本地能跑、服务器跑不了」
  • 快速启动与销毁,适合弹性扩缩容
  • 便于结合私有镜像仓库与加速服务
  • 运维成本低,适合开发与测试场景

⚠️ 说明:
Docker 方式更适合开发测试、POC 及轻量生产环境;
大规模生产集群(高可用、多租户)推荐使用 Kubernetes 或 YARN。

环境准备

Docker 环境安装

在部署 Flink 容器前,请确保服务器已安装 Docker。
可使用以下一键脚本快速完成 Docker 安装与配置:

bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

安装完成后,执行以下命令验证:

docker --version

若输出类似 Docker version 20.10.x,则说明 Docker 安装成功。

镜像准备

推荐明确指定版本标签,避免使用 latest 带来的不确定性风险。

docker pull xxx.xuanyuan.run/library/flink:2.1.1-scala_2.12-java17

验证镜像是否拉取成功:

docker images | grep flink

容器部署(Session 集群模式)

Flink 常见运行模式包括:

模式说明是否支持提交多个作业
standalone本地调试❌
standalone-job容器即作业❌
session(推荐)常驻集群✅

本文采用官方推荐的 Session 模式,即:

  • 1 个 JobManager
  • N 个 TaskManager
  • 可通过 Web UI / CLI 提交多个作业

创建 Docker 自定义网络(推荐)

docker network create flink-network

使用自定义网络可以避免使用已废弃的 --link,并提高可维护性。

启动 JobManager

docker run -d \
  --name flink-jobmanager \
  --network flink-network \
  -p 8081:8081 \
  -e JOB_MANAGER_RPC_ADDRESS=flink-jobmanager \
  -e JOB_MANAGER_HEAP_SIZE=1024m \
  xxx.xuanyuan.run/library/flink:2.1.1-scala_2.12-java17 \
  jobmanager

参数说明:

  • JOB_MANAGER_RPC_ADDRESS:必须为 JobManager 容器名
  • 8081:Flink Web UI 默认端口

启动 TaskManager

docker run -d \
  --name flink-taskmanager-1 \
  --network flink-network \
  -e JOB_MANAGER_RPC_ADDRESS=flink-jobmanager \
  -e TASK_MANAGER_HEAP_SIZE=2048m \
  -e TASK_MANAGER_NUMBER_OF_TASK_SLOTS=2 \
  xxx.xuanyuan.run/library/flink:2.1.1-scala_2.12-java17 \
  taskmanager

💡 建议:

  • Task Slots 通常 ≈ CPU 核心数
  • 可通过增加 TaskManager 数量实现横向扩展

启动状态验证

docker ps | grep flink

功能验证

在浏览器中访问:

http://<服务器IP>:8081

若能看到 Flink Dashboard,并显示已注册的 TaskManager,则说明集群运行正常。

提交测试作业(WordCount)

进入 JobManager 容器:

docker exec -it flink-jobmanager /bin/bash

提交示例作业:

./bin/flink run ./examples/streaming/WordCount.jar

在 Web UI 的 Running Jobs / Completed Jobs 页面中,可查看作业状态与执行详情。

查看容器日志

docker logs flink-jobmanager
docker logs flink-taskmanager-1

若日志中出现:

  • JobManager started
  • Registered TaskManager

则说明集群通信正常。

生产环境建议

状态数据与检查点持久化(重要)

⚠️ Flink 不会自动识别普通环境变量配置状态后端,
推荐使用 FLINK_PROPERTIES 方式注入配置:

docker run -d \
  --name flink-jobmanager \
  --network flink-network \
  -p 8081:8081 \
  -v /data/flink/checkpoints:/opt/flink/checkpoints \
  -e JOB_MANAGER_RPC_ADDRESS=flink-jobmanager \
  -e FLINK_PROPERTIES="
state.backend: filesystem
state.checkpoints.dir: file:///opt/flink/checkpoints
parallelism.default: 4
" \
  xxx.xuanyuan.run/library/flink:2.1.1-scala_2.12-java17 \
  jobmanager

资源限制

docker run -d \
  --name flink-taskmanager \
  --network flink-network \
  --memory=4g \
  --cpus=2 \
  -e JOB_MANAGER_RPC_ADDRESS=flink-jobmanager \
  xxx.xuanyuan.run/library/flink:2.1.1-scala_2.12-java17 \
  taskmanager

常用环境变量速查

配置项说明示例
JOB_MANAGER_HEAP_SIZEJM 内存1024m
TASK_MANAGER_HEAP_SIZETM 内存4096m
TASK_MANAGER_NUMBER_OF_TASK_SLOTSSlot 数4
parallelism.default默认并行度4
state.backend状态后端filesystem / rocksdb

常见故障排查

  1. 容器启动即退出
    执行命令查看日志:

    docker logs flink-jobmanager
    

    常见原因:

    • 端口冲突(8081)
    • 内存不足
    • RPC 地址配置错误
  2. Web UI 无法访问
    检查项:

    • -p 8081:8081 是否配置
    • 防火墙是否放行 8081
    • 容器是否在 Running 状态
  3. 作业无法运行
    常见原因:

    • TaskManager 数量不足
    • Slot 数小于作业并行度
    • 作业 Jar 依赖未打包完整

参考资料

总结

本文介绍了 基于 Docker 的 Apache Flink Session 集群部署方案,涵盖从环境准备到生产实践的完整流程。

关键要点:

  • 明确区分 Flink 的运行模式,避免混用
  • 使用自定义 Docker 网络替代 --link
  • 使用 FLINK_PROPERTIES 注入核心配置
  • 生产环境固定镜像版本,避免 latest

该方案适合开发测试及中小规模生产使用,若需要更高可用性与弹性能力,建议进一步迁移至 Kubernetes 环境。

使用Docker Compose快速部署Apache Flink集群:从原理到实战 容器化技术通过Docker等工具实现了应用运行环境的标准化封装与隔离,其核心原理是利用操作系统级虚拟化技术,为应用提供一致的运行环境。Docker Compose作为容器编排工具,通过声明式YAML文件定义和管理多容器应用,极大地简化了复杂分布式系统的部署流程。这一技术组合在数据处理领域价值显著,能够快速搭建可复现的开发测试环境,尤其适用于实时计算场景。Apache Flink作为流计算引擎,其高吞吐、低延迟的特性在实时数仓、风控等场景中至关重要。通过Docker Compose部署Flink集群,开发者可 阅读详情

相关推荐

使用Docker-compose快速部署Apache Flink集群:从环境搭建到生产调优

在实时数据处理领域,容器化部署已成为提升开发效率和环境一致性的关键技术。Docker作为轻量级容器引擎,通过封装应用及其依赖,解决了环境配置复杂和依赖冲突的难题。其核心原理在于利用操作系统级虚拟化,提供隔离、可移植的运行环境。Docker-compose作为容器编排工具,通过声明式YAML文件定义和管理多容器应用,极大简化了复杂服务的部署流程,其技术价值在于实现了基础设施即代码,支持快速搭建、复制和版本化管理开发测试环境。在流处理场景中,Apache Flink作为高性能计算引擎,常与Kafka等数据源集成

weixin_28432777的博客 331

Flink 1.20 从裸奔到全副武装:Docker 部署 + Prometheus 监控告警 + Grafana 看板一条龙

基于 Docker 单机部署 Flink 1.20.1(Java 17 镜像),一份 docker-compose 搞定 JobManager + TaskManager,含 checkpoint/savepoint 挂载与 OSHI 系统指标;再集成 Prometheus 采集 + 任务停止/频繁重启/Checkpoint 失败/反压/TM 内存 GC/Slot 不足等生产级告警规则;最后用 Grafana 官方看板(ID 14911)一键出图,部署、监控、告警、可视化一条龙落地。

fengquan8866的博客 1007

Docker部署Apache Doris:从单机到集群的完整实践指南

容器化技术通过环境隔离和标准化封装,为复杂应用的部署与管理提供了高效解决方案。其核心原理在于利用操作系统级虚拟化,将应用及其依赖打包成轻量级、可移植的镜像,从而实现快速启动、一致运行和资源隔离。这一技术价值在于极大简化了开发、测试和生产环境的配置一致性难题,提升了部署效率与可维护性。在数据仓库和实时分析领域,Apache Doris作为一个高性能的MPP分析型数据库,常面临传统源码部署依赖复杂、环境配置繁琐的挑战。结合Docker进行部署,可以快速搭建用于功能验证、测试或本地开发的环境。本文聚焦于Docke

weixin_33801856的博客 470

Docker-Flink 开源项目实战指南

Docker-Flink 开源项目实战指南 项目介绍 Docker-Flink 是一个结合了 Docker 容器化技术与 Apache Flink 数据流处理框架的开源项目。它旨在简化 Flink 在分布式环境中的部署与管理过程,让开发者可以快速在容器化的环境中启动和运行 Flink 集群,从而便捷地进行大数据处理任务。此项目通过提供预配置的 Docker 映像,极大地降低了使用 Apache F...

gitblog_00505的博客 422

从Peer到脉冲地震波:免费Python工具全流程配置教程(PyCharm+Anaconda)

本文详细介绍了如何使用Python工具链(PyCharm+Anaconda)实现从Peer数据库获取地震波数据到生成脉冲地震波的全流程配置。通过开源工具EQTOOL和PySeismicGen,结合Python环境搭建、数据格式转换和脉冲地震动生成技术,为结构抗震分析提供高效、灵活的解决方案。

weixin_29093169的博客 431

离合器KP点自学习:从原理到工程实践的全景解析

本文全面解析了离合器KP点自学习的原理与工程实践,详细介绍了KP点的物理本质、控制价值及自学习方法。通过扭矩增量式和转速变化式学习法,结合不同变速箱构型的适配策略,提升离合器控制的精度与效率。文章还探讨了液压系统迟滞补偿和摩擦材料老化应对方案,为工程实践提供可靠保障。

weixin_33717117的博客 289

Apache Flink 基于 Docker 与 Docker Compose 的集群部署完整指南

本文是 Apache Flink 官方部署文档中 *Docker Setup* 一节的深度展开,系统讲解如何利用官方 Flink 镜像在本地 Docker 与 Docker Compose 环境中搭建 **Session 集群** 与 **Application 集群**,涵盖快速启动、三种作业产物(job artifacts)注入方式、`standalone-job` 命令行参数、镜像 Tag

gitblog_00879的博客 351

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 525

Docker下的Flink

Flink中已经实现好了的数据源包括本地集合、文件、Kafka、Socket等。本地集合数据源适用于小规模数据集的测试和调试,可以直接将数据加载到内存中进行处理。文件数据源可以从本地文件系统或分布式文件系统(如HDFS)中读取数据,支持各种格式的文件,如文本文件、CSV文件等。Kafka数据源可以将数据从Kafka消息队列中读取,实现实时数据处理。Socket数据源可以从网络socket中读取数据,常用于接收实时数据流。此外,Flink还支持自定义数据源,开发者可以根据自己的需求实现自己的数据源逻辑。

qq_59975945的博客 1863

OTFS从零开始11 10

未来的无线网络有望提供全球覆盖,因此需要支持在恶劣环境下的各种新兴应用,例如飞机上的移动通信(MCA)、低地球轨道(LEO)卫星通信、车对车(V2V)通信、高速铁路(HSR)通信、无人驾驶飞机(UAV)通信和水下声学通信(UAC)。在这些恶劣环境中的无线信道通常被视为对通信不友好,其特点是严重的延迟和多普勒扩散,以及有限的路径寿命等。这些不利于通信的特性使目前移动网络中广泛采用的正交频分复用(OFDM)调制的性能恶化。

qq_46009045的博客 9863

PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.

原因:使用matlab生成的pcd文件,点云数据是双精度类型,pcl处理的点云数据是单精度类型。解决方案:使用matlab生成的点云坐标单精度化,然后在生成点云加以存储。

little_white138的博客 871

Apache Calcite与容器化部署:Docker、Kubernetes集成方案完整指南

Apache Calcite作为大数据生态中的核心SQL查询引擎,在容器化部署方面展现出强大的适应性和灵活性。这款开源的SQL解析框架通过Docker和Kubernetes集成,为现代数据架构提供了完整的容器化解决方案。🚀 ## 什么是Apache Calcite? Apache Calcite是一个强大的SQL解析和优化框架,它不直接存储数据,而是作为"SQL大脑"连接各种数据源。在当今云

gitblog_01023的博客 966

安装keil5(MDK)及导入pack包教程

首先说明的是我安装的Keil版本为Keil V5.29.0.0 1、安装软件 右键管理员权限运行安装包 设置安装路径以及pack的存放路径 随意输入First Name和E-mail 安装驱动 完成软件安装,然后可以先关闭弹出的Pack Install(一会再添加) 2、激活一下软件 打开桌面的Keil File → License Management(我之前注册过了) 右...

hrx-@@ 10万+

Apache Flink Docker 开源项目指南

Apache Flink Docker 开源项目指南 flink-dockerDocker packaging for Apache Flink项目地址:https://gitcode.com/gh_mirrors/fl/flink-docker 项目介绍 Apache Flink 是一个分布式流处理框架,支持实时和批处理作业,以其高吞吐量和低延迟而闻名。本项目 Apache Flink Doc...

gitblog_00783的博客 1083

当知识图谱遇见多模态:突破文本界限的智能认知革命

本文探讨了知识图谱与多模态技术的融合,揭示了其在医疗诊断、文化保护等领域的革命性应用。通过图神经网络、对比学习框架和跨模态注意力机制等技术,实现了文本、图像和音频数据的智能关联与认知。文章还分享了在Neo4j等图数据库中的实践案例和优化策略,为构建下一代智能认知系统提供了技术参考。

weixin_29197835的博客 464

TC3XX - MCAL知识点(三十五):Tasking编译器下,Tc3xx的MCAL代码如何使用多核,多核中断、多核任务、多核外设之间的MCAL配置与代码例程

文章用于记录在裸机情况下使用多核Tc387芯片,如何高效运行以及正确的代码、工程属性、链接文件配置等问题,相互结合、相互影响的地方,以示后续使用记录。

梦想技术家 964

Flink 集群/任务容器化

文章目录1 Overview2 Docker Compose3 Example4 Summary 1 Overview /path/to/flink/flink-container/docker ├── Dockerfile ├── README.md ├── build.sh ├── docker-compose.yml ├── docker-entrypoint.sh └── test-job...

runzhliu大数据/容器日记 1055

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Apache Pulsar 和 Flink 容器化部署及整合

一、首先部署Pulsar docker run -itd \ --name uln-pulsar \ -p 6650:6650 \ -p 8787:8080 \ -v /storage/pulsar/data:/pulsar/data \ apachepulsar/pulsar-all:2.4.2 \ bin/pulsar standalo...

X_Yde 1360

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

本地部署开源流处理框架 Apache Flink 并实现外部访问

Apache Flink 是一个开源的流处理框架,用于实时数据流的处理和分析。本文将详细的介绍如何利用 Docker 在本地部署 Apache Flink 并结合路由侠实现外网访问本地部署的 Apache Flink。‌。

zt1985q的博客 1794

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

三步清掉冗余驱动:用 DriverStore Explorer 释放磁盘空间的实用教程

C 盘每次系统更新后就少几 G?DriverStore Explorer(RAPR)能把藏在驱动存储区里的一个个驱动包摊开给你看,勾选旧版本批量删除,空间立刻回来。 ## 🧰 先把程序跑起来 动手清理前,先确认三件事:系统是 Windows 7 或更新版本、.NET Framework 4.7.2 以上、并且**全程以管理员身份运行**,否则很多操作会提示无权限。 拿到程序有三种方式,挑顺

gitblog_00774的博客 815

Apache Iceberg + Flink 快速上手实战:基于 Docker Compose 的 REST Catalog 环境搭建与 SQL 读写全流程

Apache Iceberg 是面向大数据分析场景的开源表格格式,而 Apache Flink 是主流的有状态流处理引擎,两者的结合让流批一体的数据湖分析成为现实。本文以官方提供的 Iceberg Flink Quickstart 环境为骨架,带你用一条 `docker compose` 命令在本机拉起 Flink 集群、Iceberg REST Catalog 与 MinIO 对象存储,并完整走

gitblog_00043的博客 893

基于Docker容器化部署Flink:环境一致性与快速实践指南

容器化技术通过镜像封装实现环境一致性,其核心原理是将应用及其依赖打包成可移植的制品,从而消除环境差异。在流处理领域,Flink作为分布式引擎,其部署常面临环境配置复杂、版本冲突等问题。采用Docker容器化部署Flink,能够快速拉起单机集群,实现JobManager与TaskManager的角色分离,并通过自定义网络确保通信。这种方案的技术价值在于环境可版本化、可复制、可丢弃,极大提升了开发调试效率。应用场景包括本地开发、测试环境搭建及小规模验证。本文详细介绍了基于Docker安装Flink的完整流程,涵

weixin_30983353的博客 278

Flink容器化部署实践:Docker与实时流处理的完美结合

容器化技术通过Docker等工具实现了应用运行环境的标准化封装,其核心原理是利用操作系统级虚拟化技术提供隔离的执行环境。在实时数据处理领域,Apache Flink作为分布式流处理框架,与Docker的结合能显著提升部署效率和系统可靠性。这种技术组合解决了环境一致性、资源隔离和弹性扩展等关键问题,特别适用于需要快速迭代的实时计算场景。通过Session模式和Application模式的不同部署策略,开发者可以灵活应对从开发测试到生产环境的各种需求。在实际应用中,结合Kubernetes等编排工具,Flink

weixin_28235513的博客 261

Flink 安装部署

本文介绍了Apache Flink的安装部署指南,包括单机、分布式集群和YARN/Docker部署方式。主要内容涵盖:环境准备(JDK、Hadoop)、下载安装包、配置环境变量、Flink集群配置、启动与停止方法、任务提交等基础操作;详细说明了分布式集群部署步骤、高可用模式配置(基于ZooKeeper)以及YARN集群部署方案;还提供了Docker快速部署方式和常用运维管理命令,并列出了端口冲突、内存不足等常见问题的解决方案。

onlymscn的博客 1413

Apache SeaTunnel 在 Kubernetes 上的部署与运行指南

Apache SeaTunnel 在 Kubernetes 上的部署与运行指南 前言 Apache SeaTunnel 是一个高性能、分布式、可扩展的数据集成平台,支持批处理和流式数据处理。本文将详细介绍如何在 Kubernetes 集群上部署和运行 SeaTunnel,涵盖从基础环境准备到实际应用部署的全流程。 环境准备 在开始之前,请确保您的本地环境已安装以下组件: Docker:用于构建和...

gitblog_00582的博客 612
上一篇: LocalAI Docker 容器化部署指南
下一篇: MinerU Docker 部署指南:PDF 结构化解析服务实践
java_logo
博客等级 码龄18年 326粉丝 240原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值