Flink Standalone 本地一键起集群、Session/Application 两种模式、HA 高可用与排障清单

1. Standalone 适合什么场景?

  • 本地快速验证:SQL/Connector/UDF 先跑通
  • 测试环境:不想引入 K8s/YARN 的复杂度
  • 小规模稳定集群:资源固定、运维能接受手工管理
  • 想把“Flink 运行机制”看得更清楚:进程、日志、端口、类加载都一目了然

如果你需要自动扩缩容、资源隔离、作业弹性调度,通常就要上 Kubernetes 或 YARN。

2. 准备工作

Standalone 的基本要求很简单:

  • Java 1.8+(Flink 2.x 生产更建议 Java 17)
  • 下载并解压 Flink 发行版
  • 类 UNIX 环境(Linux / macOS / Cygwin)

你只要记住一个路径:Flink 解压后的根目录,后面所有脚本都从这里跑。

3. 30 秒起一个 Standalone 集群(Session Mode)

Session Mode 的特点:先启动一个长期运行的集群,再往里面提交多个作业。最适合本地/测试/共享集群。

3.1 启动集群

# 进入 Flink 根目录./bin/start-cluster.sh

启动后至少会起来两个进程:

  • JobManager(含 Web UI)
  • TaskManager(执行算子)

Web UI 默认在:

  • http://localhost:8081

3.2 提交一个示例作业

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

3.3 停止集群

./bin/stop-cluster.sh

很多同学第一次跑到这里就结束了,但真正实战的关键在下面:Session/Application、脚本管理、HA 与排障。

4. Session Mode vs Application Mode:怎么选不纠结

4.1 Session Mode(start-cluster.sh)

  • 你先起一个集群,多个作业共享 TaskManager 资源
  • 优点:启动快、成本低、适合多人共用测试
  • 风险:一个作业搞崩 TM,可能影响同机器上其他作业;资源抢占更明显

典型用法:

  • 本地 SQL Client 提交 SQL 作业
  • 测试集群长期在线,大家都往里投作业

4.2 Application Mode(standalone-job.sh)

Application Mode 的特点:为一个应用(通常一个 main)启动一个 JobManager,作业“贴着 JobManager 跑”,资源隔离更好。

核心脚本:

  • bin/standalone-job.sh启动带应用的 JobManager
  • bin/taskmanager.sh启动 TaskManager
方式 A:把作业 JAR 放到 lib/(最省事)
cp./examples/streaming/TopSpeedWindowing.jar lib/ ./bin/standalone-job.sh start\--job-classname org.apache.flink.streaming.examples.windowing.TopSpeedWindowing# 再启动一个或多个 TaskManager./bin/taskmanager.sh start

Web UI 仍然默认:

  • http://localhost:8081
方式 B:用 --jars 拉取(适合管理 artifacts)
./bin/standalone-job.sh start\-D user.artifacts.base-dir=/tmp/flink-artifacts\--jars local:///path/to/TopSpeedWindowing.jar

如果你发现 application 启不起来,大概率是你忘了先起 TaskManager。

停止(多实例时可反复 stop)
./bin/taskmanager.sh stop ./bin/standalone-job.sh stop

4.3 一句话决策

  • 本地快速跑通、多人共享:Session Mode
  • 想要更强隔离、每个应用单独生命周期:Application Mode

5. 从本地扩展到“分布式 Standalone”

Standalone 的分布式靠两个文件驱动:

  • conf/masters:JobManager 主机
  • conf/workers:TaskManager 主机列表

5.1 本地起多个 TaskManager(模拟集群)

conf/masters

localhost

conf/workers

localhost localhost

再启动:

./bin/start-cluster.sh

5.2 真分布式(多机器)

假设 4 台机器:master1 / worker1 / worker2 / worker3

conf/masters

master1

conf/workers

worker1 worker2 worker3

并且要在conf/flink-conf.yaml里指定:

jobmanager.rpc.address:master1

然后在 master1 上执行:

./bin/start-cluster.sh

前提条件:

  • 机器之间网络互通
  • 配好免密 SSH(脚本支持远程拉起)
  • 各机器 Flink 目录结构一致(脚本默认依赖一致的路径)

6. Standalone 的排障入口:先看日志再说

Standalone 出问题,第一入口永远是日志:

  • 日志目录:log/
  • 每个组件都有独立日志:JM/TM/HistoryServer 等
  • 默认每次启动会做日志轮转,旧日志会带数字后缀

另一个很方便的入口:

  • Web UI 里也能直接看 JobManager / TaskManager 日志

6.1 什么时候要把日志级别开到 DEBUG?

当你遇到这些情况:

  • 作业行为不符合预期(例如数据没进来、checkpoint 一直卡)
  • 连接器初始化失败但提示不够
  • 类加载冲突、NoClassDefFoundError

修改conf/log4j.properties

  • 把 rootLogger.level 调成 DEBUG(注意别长期在线上开,日志量会爆)

7. 动态参数覆盖:脚本 -D 的优先级更高

你可以在启动脚本里用-D直接覆盖配置项(优先级高于 flink-conf.yaml),非常适合临时改端口、改 rpc address:

./bin/jobmanager.sh start\-D jobmanager.rpc.address=localhost\-D rest.port=8081

同理适用于:

  • standalone-job.sh
  • taskmanager.sh
  • historyserver.sh

实战建议:

  • 本地端口冲突时,优先用-D rest.port=xxxx临时改,比改配置文件快很多

8. Standalone 开 HA:ZooKeeper + 多 JobManager

Standalone 要高可用(HA),就离不开 ZooKeeper,并且要启动多个 JobManager 做主备切换。

8.1 flink-conf.yaml 关键配置(示例)

high-availability.type:zookeeperhigh-availability.zookeeper.quorum:localhost:2181high-availability.zookeeper.path.root:/flinkhigh-availability.cluster-id:/cluster_onehigh-availability.storageDir:hdfs:///flink/recovery

这里最容易踩坑的是:

  • high-availability.cluster-id:不同集群必须不一样,不然元数据会串
  • high-availability.storageDir:需要可靠存储(通常 HDFS / 分布式 FS),别指望单机磁盘扛住故障恢复

8.2 masters 配置多 JM(并指定 Web UI 端口)

conf/masters

localhost:8081 localhost:8082

你还可以通过high-availability.jobmanager.port固定/范围化 JM 通信端口,方便防火墙与运维管理。

8.3 启动 ZooKeeper Quorum + 启集群

./bin/start-zookeeper-quorum.sh ./bin/start-cluster.sh

停止:

./bin/stop-cluster.sh ./bin/stop-zookeeper-quorum.sh

9. Standalone 的 Classpath:为什么你“加了 jar 还是找不到类”?

Standalone 下,哪些 jar 会进用户 classpath,取决于模式:

  • Session Mode:提交命令里指定的 JAR
  • Application Mode:启动命令指定的 JAR +usrlib/目录下所有 JAR

这意味着一个非常实用的技巧:

  • Application Mode 想让所有 TM/JM 都“天然带着某些依赖”,就把依赖丢到usrlib/
  • Session Mode 下则更依赖你提交时的打包与 classpath 管理

遇到类加载冲突时(尤其多个 connector / 不同版本依赖):

  • 先明确你是在 Session 还是 Application
  • 再检查 JAR 到底是通过提交命令带进去,还是放在 usrlib/lib
  • 最后才去看“谁覆盖了谁”

10. Windows + Cygwin 常见坑:脚本报 $‘\r’ command not found

如果你在 Windows Git Shell/Cygwin 下跑脚本出现:

$'\r': command not found

本质原因是:git 把 UNIX 换行转换成了 Windows CRLF,Cygwin 解析不了。

修复思路(按文档做):

  • 在 Cygwin 的 home 目录.bash_profile追加:

    • export SHELLOPTS
    • set -o igncr
  • 重开一个 bash shell

更省心的替代方案:

  • 在 WSL2/Linux 环境运行 Flink(更推荐)

11. 你可以直接复用的“最短闭环”操作手册

本地验证(Session Mode):

  1. ./bin/start-cluster.sh
  2. 打开 Web UIlocalhost:8081
  3. ./bin/flink run ...
  4. 出问题先看log/或 Web UI 日志
  5. ./bin/stop-cluster.sh

本地验证(Application Mode):

  1. cp xxx.jar lib/--jars local:///...
  2. ./bin/standalone-job.sh start --job-classname ...
  3. ./bin/taskmanager.sh start(可多起几个)
  4. ./bin/taskmanager.sh stop/./bin/standalone-job.sh stop

分布式扩展:

  • conf/masters+conf/workers
  • jobmanager.rpc.address
  • 确保免密 SSH 与目录一致

HA:

  • 配 ZK + 多 masters + storageDir
  • start-zookeeper-quorum.shstart-cluster.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1209553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink Standalone 从 0 到可运维的 Session/HA 集群模板(附配置清单)

1. Standalone 是什么,适合什么场景 Standalone 是最“裸”的部署方式:Flink 组件(JobManager、TaskManager)在操作系统上以进程形式运行,不依赖 Kubernetes/YARN 这种资源调度平台。 它的优点是简单、透明、易调试&a…

职场精英别让精力透支拖垮竞争力!盼生派 C9NMN 精准抗衰续能职业黄金期

互联网公司运营总监老周,每月超10天熬夜加班、商务应酬与跨城出差常态化。近期他明显感知身体机能下滑:熬夜后思维迟滞、记忆衰减,宿醉头痛持续超72小时,肤色暗沉、脱发增多,代谢下降引发的体脂堆积影响职业形象。…

开关电源-Buck电路关于输出电压纹波的探讨

开关电源-Buck电路关于输出电压纹波的探讨

为什么你调的不是参数,而是风险

参数一多,微调就变成了一场“看不见赔率的赌博” 如果你做过几次大模型微调,大概率会有一种非常熟悉的体验。 第一次跑通微调之后,你开始觉得这件事“好像也没那么难”。模型能训起来,loss 能降,输出也确实有点变…

Flink SQL Connector 用 DataGen + Print + BlackHole 搭一条“最短闭环”,把正确性与压测一次搞定(顺便串起 Hive / OpenAI)

1、先把连接器看成“能力块” Flink SQL 里常见连接器可以按能力拆开理解: Source(Scan):读全量/读增量Lookup Source:维表查(Temporal Join)Sink:写外部系统Append vs Upsert&…

Flink 部署组件拆解、参考架构、Application vs Session 选型,以及生产落地 Checklist

1. 一句话理解 Flink 的部署:一套“积木”,多种“拼法” 无论你用哪种部署方式,Flink 集群里永远绕不开三个核心角色: Client:把作业编译成 JobGraph 并提交JobManager:负责调度与协调(集群大脑…

Flink Java 版本兼容性与 JDK 模块化(Jigsaw)踩坑11 / 17 / 21 怎么选、怎么配、怎么稳

1. Flink 支持哪些 Java 版本?推荐怎么选? Java 11 Flink 从 1.10.0 起支持 Java 11但有一些特性在 Java 11 上属于“未测试”(风险更偏向“能跑但不保证”) Java 17(强烈推荐) Flink 2.0.0 默认使用 Java …

秦远国际物流怎么样?

秦远国际物流怎么样?十余年深耕中新澳,打造跨境物流安心之选在跨境物流需求日益增长的当下,中新澳之间的贸易往来、个人交流愈发频繁,选择一家靠谱的跨境物流企业,成为解决货物运输、包裹寄送、国际搬家等需求的关…

攻防世界unserialize3

1.观察题目这是一道典型的 PHP 反序列化绕过题目 该类型标志: __wakeup():反序列化时一定会执行的方法(这道题就有,直接 exit 终止程序,摆明了要你绕过); __destruct():对象销毁时执行的方法; __construct():…

2026年预制舱厂家推荐:工业预制舱深度横向对比,涵盖生产与应急场景痛点分析

摘要 随着全球能源转型与新型电力系统建设的加速,预制化、模块化已成为电力、新能源及工业基础设施领域的明确趋势。这种建设模式通过将传统现场施工的大量工作转移至受控的工厂环境,旨在从根本上解决项目周期长、质…

2026年预制舱厂家推荐:智能制造标准横向排名,直击工期与环保双重痛点

摘要 随着全球能源转型与新型电力系统建设的加速,模块化、预制化已成为电力、储能及工业建筑领域提升效率、控制成本的核心路径。对于项目决策者而言,在纷繁的市场中选择一家技术可靠、交付高效且能深度理解复杂场景…

聊聊2026年不错的花纹输送带工厂,亨冠工业凭啥脱颖而出?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家花纹输送带领域标杆企业,为食品、物流、电子等行业企业选型提供客观依据,助力精准匹配适配的输送传动解决方案伙伴。 TOP1 推荐:上海亨冠工业器材有限公司 …

盐城选哪家民办学校品牌好,诺德学校是优选之一

在教育多元化发展的当下,选择一所信誉好的民办学校品牌机构,关乎孩子十二年成长的根基与未来升学的方向。面对南通及周边地区众多民办教育机构,如何为孩子挑选适配性强、资源优质的民办学校品牌?以下结合不同教育需…

2026年干燥机厂家排行:分析有交货保障、实力出众的品牌哪家好

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆企业,为企业选型提供客观依据,助力精准匹配适配的压缩空气干燥机服务伙伴。 TOP1 推荐:杭州超滤实业有限公司 推荐指数:★★★★★ | 口碑评分:国内压…

分析诚信的GEO源头工厂具备的特点,教你如何选择优质企业

随着AI搜索生态的快速迭代,企业对GEO搜索优化的需求愈发迫切,而选择一家口碑不错的GEO源头工厂企业,成为破解营销获客难题的关键。但市场上GEO服务供应商鱼龙混杂,企业如何辨别真正的源头工厂?深圳市南方网通网络…

探讨口碑好的进口岩板品牌,三星岩(TRE STELLE)价格贵吗?

问题1:高奢岩板市场中,用户常遇到的品质痛点是什么?三星岩如何解决这些问题? 高奢岩板用户的核心痛点集中在三个方面:一是品质波动,同一批次岩板可能出现色差、肌理不一致,破坏空间整体美学;二是交付不稳,定制…

2026年预制舱厂家推荐:基于多场景实测评价,解决定制化与交付效率核心痛点

摘要 在能源转型与新型电力系统建设的宏观背景下,预制舱作为实现电力设备标准化、模块化、工厂化生产的核心载体,其市场需求正从传统的电网基建向新能源发电、工业配电、应急保障等多场景快速扩张。决策者,无论是电…

2026年全生净化板供应商产品规格大汇总

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆净化板企业,为医疗、食品、电子等领域企业选型提供客观依据,助力精准匹配适配的净化板供应伙伴。 TOP1 推荐:保定市全生彩钢制造有限公司 推荐指数:★…

2026年意大利进口岩板源头品牌大汇总,三星岩(TRE STELLE)排第几?

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家标杆意大利进口岩板品牌,为家居设计师、商业空间运营商及家装用户提供客观依据,助力精准匹配适配的材料伙伴。 TOP1 推荐:三星岩(TRE STELLE) 推荐指数:…

2026年1月防脱生发产品推荐排行榜单:基于科技与临床数据的五大产品客观评测

一、引言 在当代社会,脱发问题已超越单纯的生理现象,成为影响个人形象、心理健康乃至社交自信的重要议题。对于广大受脱发困扰的消费者而言,其核心需求不仅在于寻找能够有效减缓脱发、促进新发生长的产品,更在于追…