尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Flink-介绍

Flink-介绍
📅 发布时间:2026/6/19 13:04:57

Flink 运行模式

模式名称
依赖环境
高可用支持
弹性伸缩
部署复杂度
适用场景
优点
缺点
Local 模式
无
否
否
★
个人开发、功能调试、学习测试:适用于单机运行,快速验证逻辑,不需要集群。
部署最简单,只需本地安装 Flink;无需额外配置;启动速度快;调试方便。
只能在单机运行,无法利用多节点计算能力;不能用于生产环境;无容错能力。
Standalone 模式(独立集群模式)
无
否
否
★★
小型测试集群、简单生产环境:适用于固定规模、不需要频繁扩容的任务。
不依赖外部系统;部署简单;可运行在多台机器组成的小集群;资源可控。
无自动弹性伸缩;高可用需额外配置;集群维护需要人工操作;容错能力弱。
Standalone HA 高可用模式
ZooKeeper
是
否
★★★
中小型生产环境:适用于需要高可用,但不需要自动扩容的任务。
通过 ZooKeeper 提供 JobManager 主备切换;比普通 Standalone 更稳定;部署相对简单。
仍无自动伸缩;需要维护 ZooKeeper;扩容需人工执行;不适合频繁变化的任务负载。
Yarn 会话模式
Hadoop/Yarn
是
是
★★★
多任务共享集群:适用于多个 Flink 作业同时运行,共享 Yarn 集群资源。
利用 Yarn 提供的资源调度和容错;无需单独维护集群;任务启动速度快(因为集群已存在);可动态分配资源。
需要 Hadoop/Yarn 环境;任务间可能竞争资源;集群生命周期需人工管理。
Yarn 单任务模式
Hadoop/Yarn
是
是
★★★
独立任务运行:适用于一次性任务或任务隔离要求高的场景。
每个任务独立集群,互不影响;任务结束自动释放资源;更好隔离。
启动开销大(每次都要创建集群);需要 Hadoop/Yarn 环境;不适合频繁短任务。
Kubernetes 会话集群模式
Kubernetes
是
是
★★★★
云原生多任务共享:适用于云环境中多个 Flink 作业共享同一个 K8s 集群。
云原生弹性伸缩;容器化部署方便;与其他云服务集成容易;任务启动快(集群已存在)。
需要 Kubernetes 环境;任务间可能竞争资源;集群生命周期需人工维护。
Kubernetes 应用集群模式
Kubernetes
是
是
★★★★
云原生单任务运行:适用于云环境中一次性任务或任务隔离要求高的场景。
每个任务独立集群,自动销毁;隔离性好;利用 K8s 弹性伸缩;资源利用率高。
启动开销大;需要 Kubernetes 环境;不适合频繁短任务;集群启动时间依赖 K8s 资源调度速度。

额外说明

  • 高可用支持:指 JobManager 能否在故障时自动切换到备用节点,保证作业继续运行。
  • 弹性伸缩:指能否根据任务负载自动增加或减少 TaskManager 数量。
  • 部署复杂度:★ 越少表示越简单,★ 越多表示依赖环境和配置越复杂。

建议如果是 **开发/测试**:
  • 用 Local 模式 或 **Standalone 模式**(简单快速)
如果是 **生产环境**:
  • 小规模稳定任务 → Standalone HA
  • 大数据平台(Hadoop) → Yarn 模式
  • 云原生环境 → Kubernetes 模式
 
 

Flink Standalone 模式

 

1. 什么是 Flink Standalone 模式?

Flink Standalone 模式,顾名思义,就是 **Flink 自己管理集群,不依赖外部资源管理平台(如 Yarn、Kubernetes、Mesos)**。
在这种模式下,**JobManager** 和 TaskManager 进程由你自己启动和维护,集群的生命周期完全由你掌控。
 
📌 **关键词**:
  • 独立运行(Standalone = 独立)
  • 无外部依赖(只需要 Java 环境)
  • 手动管理集群
     

 

2. 架构原理

在 Standalone 模式下,Flink 集群主要由两类进程组成:
 
  1. JobManager
    1. 负责作业调度、任务分配、容错管理。
    2. 类似于“指挥官”,告诉 TaskManager 要执行哪些任务。
       
  2. TaskManager
    1. 负责实际执行任务(算子),并与其他 TaskManager 交换数据。
    2. 类似于“工人”,执行 JobManager 下发的任务。
       
架构示意图:
+-------------------+
|    JobManager     |  <-- 调度、协调、容错
+-------------------+|v
+-------------------+    +-------------------+
|   TaskManager 1   |    |   TaskManager 2   |  <-- 执行算子任务
+-------------------+    +-------------------+
 
client客户端提交任务给JobManager
JobManager负责Flink集群计算资源管理,并分发任务给TaskManager执行
TaskManager定期向JobManager汇报状态
flink的TM就是运行在不同节点上的JVM进程(process),这个进程会拥有一定量的资源。比如内存,cpu,网络,磁盘等。flink将进程的内存进行了划分到多个slot中.图中有2个TaskManager,每个TM有2个slot的,每个slot占有1/2的内存。
 

3. 优点

  • 部署简单:只要有 Java 环境即可运行,适合快速搭建测试集群。
  • 无外部依赖:不需要 Yarn、Kubernetes 等复杂环境。
  • 资源可控:你可以完全掌握集群资源分配。
  • 轻量级:适合小规模任务或学习测试。
     

4. 缺点

  • 无自动弹性伸缩:不能根据负载自动增加或减少节点。
  • 高可用需额外配置:需要手动配置 ZooKeeper 才能实现 HA。
  • 集群维护成本高:节点故障需要人工处理,无法自动恢复。
  • 不适合大规模生产环境:资源调度和管理能力有限。
     

5. 适用场景

  • 开发测试:本地或简单集群环境中快速验证 Flink 程序。
  • 小规模生产环境:任务量稳定、节点数量固定的场景。
  • 学习实验:初学者用来熟悉 Flink 集群运行机制。
     

部署方式

安装包下载https://flink.apache.org/downloads/
先安装java11

JobManager

在JobManager服务器下载安装包,解压安装包:
tar -xzf flink-1.15.4-bin-scala_2.12.tgz -C /data/flink/
修改配置文件flink-conf.yaml
Flink的配置文件都存放于安装目录下的conf目录。在JobManager服务器,进入该目录,执行以下操作。
vim conf/flink-conf.yaml
将文件中jobmanager.rpc.address属性的值改为JobManager机器的ip地址,如下:
jobmanager.rpc.address: 10.20.0.93
jobmanager.bind-host: 0.0.0.0

workers

workers文件必须包含所有需要启动的TaskManager节点的主机名,且每个主机名占一行。在JobManager服务器,执行以下操作
vim conf/workers
修改为其余两台TaskManager的ip地址:(也可以都在同一台服务器上,那么这里是两个相同的ip)
10.20.0.92
10.20.0.90

3.4、复制Flink安装文件到其他服务器

在JobManager服务器执行命令,将安装文件复制到其余TaskManager服务器,命令如下:(目录相同)
scp -r /data/software/flink-15.4/ 10.20.0.92:/data/software/flink-15.4/
scp -r /data/software/flink-15.4/ 10.20.0.90:/data/software/flink-15.4/

3.5、启动集群

在JobManager节点上进入Flink安装目录,执行以下命令启动Flink集群:
bin/start-cluster.sh
启动流程 Flink 会:
  • 启动本地 JobManager
  • SSH 到 workers 文件中的 IP,启动 TaskManager
启动完毕后,在集群各服务器上通过jsp命令查看Java进程。若各节点存在以下进程,则说明集群启动成功:
JobManager节点:StandaloneSessionClusterEntrypoint
TaskManager1节点:TaskManagerRunner
TaskManager2节点:TaskManagerRunner
尝试提交一个简单任务,如果任务正常执行完毕,则集群一切正常。提交Flink自带的简单任务如下:
./bin/flink run examples/streaming/WordCount.jar

3.6、查看WebUI

通过JobManager节点访问WebUI,可以看到此时是1个JobManager,2个TaskManager,也能以上执行完毕的任务,如下图: ip:8081
 
 

Docker部署

1、配置文件
docker run --name flink-temp flink:2.1 sleep 5
docker cp flink-temp:/opt/flink/conf /home/flink/
docker rm flink-temp
 
 

docker run -d \
--name jobmanager \
-p 6123:6123 \
-p 8081:8081 \
-v /home/flink/conf:/opt/flink/conf \
-v /home/flink/logs:/opt/flink/logs \
-e FLINK_PROPERTIES="jobmanager.rpc.address: 10.10.220.230" \
flink:2.1 jobmanager

 

docker run -d \
--name flink-taskmanager \
-v /home/flink/conf:/opt/flink/conf \
-v /home/flink/logs:/opt/flink/logs \
-e FLINK_PROPERTIES="jobmanager.rpc.address: 10.10.220.230" \
flink:2.1 taskmanager

注意:修改了配置文件中"jobmanager.rpc.address为10.10.220.230  但是启动后还是会被重置。所以加了-e FLINK_PROPERTIES="jobmanager.rpc.address: 10.10.220.230" \

 

 

 

 

相关新闻

  • xxl-job provider netty_http server caught exception
  • 2025 年滑台源头厂家最新推荐口碑排行榜:精选行业实力口碑俱佳企业,涵盖直线 / 电动 / 线性 / 同步带 / 丝杆滑台
  • 线程同步机制

最新新闻

  • MPC555/556开发支持:调试模式、开发端口与寄存器详解
  • 2026合肥全域名表变现渠道盘点,连锁奢品行合扬综合实力位居前列 - 开心测评
  • BP Eva 赋能全周期绩效管理,让每轮考核沉淀员工能力成长档案
  • 2026年6月最新劳力士中国官方售后服务热线地址网点及客服电话 - 劳力士服务中心
  • 无创脑机接口解码脑电语音:EEG+深度学习的临床实践路径
  • 2026本溪2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号