大数据 -110 Flink 安装与部署指南 支持 Local/Standalone/YARN 的多种模式

点一下关注吧!!!非常感谢!!持续更新!!!
🚀 AI 篇持续更新中!(长期更新)
AI 炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的模型 + 深度思考模型 + 实时路由”,持续打造实用 AI 工具指南!📐🤖
💻 Java 篇正式开启!(300 篇)
目前 2025 年 09 月 29 日更新到:Java-136 深入浅出 MySQL Spring Boot @Transactional 使用指南:事务传播、隔离级别与异常回滚策略 MyBatis 已完结,Spring 已完结,Nginx 已完结,Tomcat 已完结,分布式服务正在更新!深入浅出助你打牢基础!
📊 大数据板块已完成多项干货更新(300 篇):
包括 Hadoop、Hive、Kafka、Flink、ClickHouse、Elasticsearch 等二十余项核心组件,覆盖离线+实时数仓全栈!大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT 案例 详解

章节内容
上节完成了如下的内容:
Flink 重要角色
TaskManager
ResourceManager
各个组件之间的关系
Sink Task SubTask 等等内容

安装模式
Flink 支持多种安装模式:
1. Local(本地)模式
定义:单机运行模式,适合开发和调试
特点:
无需额外配置,开箱即用
只能在单个 JVM 进程中运行
支持本地 IDE 调试(如 IntelliJ IDEA)
适用场景:
本地开发测试
小规模数据验证
学习 Flink 基础功能
示例:通过
bin/start-local.sh
启动本地环境
2. Standalone 独立模式
定义:Flink 自带的集群管理方式
特点:
需要手动部署和管理集群
包含 JobManager 和 TaskManager
资源分配由 Flink 自身完成
优势:
不依赖外部资源管理器
部署相对简单
适用场景:
中小规模生产环境
对 Hadoop 生态依赖较少的场景
需要快速搭建 Flink 集群的情况
配置要点:
需配置
flink-conf.yaml
中的集群参数需要设置 TaskManager 数量及资源分配
3. YARN 模式
定义:基于 Hadoop YARN 的资源管理模式
特点:
计算资源由 YARN 统一调度
支持动态资源分配
可与其他 YARN 应用共存
运行模式:
Session 模式(长期运行集群)
Per-Job 模式(按作业分配资源)
优势:
资源利用率高
与 Hadoop 生态无缝集成
适合大规模生产环境
适用场景:
企业级大数据平台
需要与其他 Hadoop 组件协同工作的场景
资源需求波动的应用
配置要求:
需要正确配置 Hadoop 环境
需设置 YARN 相关参数
通常需要配置高可用(HA)## Flink 支持多种安装模式:
基础环境
基于我们之前的大数据的环境:
JAVA_HOME 之前已经配好了
SSH 免密登录 三台节点之间 之前也配置好了
集群规划

我们对应的机器是:
h121 2C4G
h122 2C4G
h123 2C2G
下载安装
选择的版本是:Flink 1.11.1 版本
你也可以直接使用 wget 下载,目前我们登录到服务器 h121 节点上
等待下载完毕:

解压配置:
处理过程如下:

解压完成之后,移动到目录下:
Standalone 模式部署
上述我们已经完成了 h121 服务器节点的配置安装,接下来我们修改配置文件。Standalone 模式是一种相对简单的 Flink 集群部署方式,适合在拥有固定资源的环境中运行 Flink 应用程序。与 YARN 或 Kubernetes 等资源管理平台不同,Standalone 模式完全由用户自行管理集群资源。
在这种模式下,所有的 Flink 组件(如 JobManager 和 TaskManager)都是手动配置和启动的:
JobManager 作为集群的主节点,负责协调分布式执行、调度任务和故障恢复
TaskManager 作为工作节点,负责执行具体的数据处理任务
用户需要手动配置每个节点的资源分配(如内存、CPU 等)
典型的使用场景包括:
开发和测试环境
小规模生产环境
资源需求稳定的长期运行作业
优势在于部署简单,不需要额外的资源管理框架;但缺点是缺乏动态资源分配能力,当作业需求变化时需要人工干预调整资源配置。用户可以通过修改 conf/flink-conf.yaml 文件来配置集群参数,如并行度、内存分配等。
启动与配置
手动启动:在 Standalone 模式下,JobManager 和 TaskManager 需要通过脚本手动启动。可以通过 Flink 提供的启动脚本(如 start-cluster.sh)来启动整个集群,或者单独启动每个组件。
配置文件:Standalone 模式的配置主要通过 flink-conf.yaml 文件进行,配置内容包括 JobManager 和 TaskManager 的数量、内存和 CPU 资源、网络设置等。
flink-conf.yaml
我们修改的内容有这么两处:
修改内容如下所示:

Works
不同的版本可能叫不同的名字,我这里是 works
写入如下的内容,我们有三台云节点:
写入的结果如下图所示:

Master
写入如下的内容:
写入的结果如下图:

服务启动
暂时就可以先启动进行测试了:
启动过程如下所示:

启动结果
这里要注意,由于我们之前配置过 Spark 环境,Spark 的 Web 也是 8081 端口。记得把 Spark 的服务停掉(暂时用不到 Spark 相关的内容了)。启动后,我们访问:

可以通过 JPS 命令查看主机当前的状态:(不需要的你可以停掉)
Hadoop
HDFS
Flink
等等

测试效果
官方提供的 Demo,可以运行测试一下是否正常
执行结果如下图:

可视化的页面也可以看到:

特点与优缺点
优点
简洁易用:Standalone 模式不需要额外的资源管理系统,配置相对简单,特别适合在资源固定的小型集群中运行。
独立性强:这种模式下,Flink 集群不依赖于外部系统,可以在没有 Yarn、Kubernetes 等资源管理平台的环境中独立运行。
低延迟:由于不涉及外部资源调度系统,Standalone 模式在资源调度上的延迟相对较低,适合需要低延迟任务调度的场景。
缺点
资源弹性差:由于没有集成外部资源管理系统,Standalone 模式的资源调度和管理相对固定,不支持动态扩展或缩减资源。这在面对变化的工作负载时,可能会导致资源浪费或不足。
管理复杂:在大规模集群中,手动管理多个 JobManager 和 TaskManager 可能变得复杂,特别是在需要高可用性和故障恢复的情况下。
缺乏高级特性:相比于集成 Yarn 或 Kubernetes 的部署模式,Standalone 模式缺乏一些高级的资源管理特性,如自动化资源分配、动态扩展、集群隔离等。
使用场景
开发与测试:Standalone 模式是 Flink 应用开发与测试阶段的理想选择。开发者无需配置复杂的集群管理工具(如 YARN 或 Kubernetes),只需在单机或少量机器上快速启动 Flink 进程即可运行作业。例如,开发者可以在本地笔记本电脑上运行 Standalone 模式,验证数据处理逻辑的正确性,或通过 IDE 直接调试代码。此外,Standalone 模式支持快速重启和日志查看,便于排查问题,显著提升开发效率。
小型集群:对于资源固定且规模较小的生产环境(如 10 台以下节点的集群),Standalone 模式能够提供足够的灵活性和控制力。用户可以通过手动配置
flink-conf.yaml
文件定义 TaskManager 和 JobManager 的资源分配,无需依赖外部资源调度系统。例如,一个数据分析团队可能使用 5 台物理服务器组成 Standalone 集群,长期运行批处理报表作业,既避免了管理复杂集群的开销,又能保证稳定的资源隔离和作业优先级控制。边缘计算:在资源受限的边缘计算场景(如工业物联网网关、车载设备或远程传感器节点)中,Standalone 模式可作为轻量级的分布式计算解决方案。其优势包括:
低开销:无需部署 Kubernetes 等容器化平台,减少内存和 CPU 占用;
快速部署:通过预编译的 Flink 二进制包即可在 ARM 等边缘设备架构上运行;
离线支持:适应边缘网络不稳定的环境,独立完成本地数据处理。
例如,在风力发电机监测系统中,边缘设备可通过 Standalone 模式实时分析振动传感器数据,仅将异常结果上传至云端,大幅降低带宽消耗。
扩展性与限制
扩展性有限:虽然 Standalone 模式允许在固定资源下进行扩展,但由于缺乏动态资源管理,扩展能力有限,难以应对大规模或动态变化的工作负载。
适应性:对于需要频繁调整资源的场景,Standalone 模式可能不太适用,但在资源固定且作业负载相对稳定的情况下,它可以提供稳定可靠的服务。
添加依赖
pom 结构如下所示:

版权声明: 本文为 InfoQ 作者【武子康】的原创文章。
原文链接:【http://xie.infoq.cn/article/0393543d85151e82813ad5eaa】。文章转载请联系作者。
评论