news 2026/7/5 1:58:46

15-Flink的安装与配置(Flink Standalone独立集群模式)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15-Flink的安装与配置(Flink Standalone独立集群模式)

Flink流式计算框架的安装和部署(Flink Standalone独立集群模式)

一、知识目标

理解Apache Flink流式计算框架的基本概念、核心架构及其在大数据生态系统中的角色定位。

掌握Flink Standalone独立集群模式的架构组成和工作原理。

了解Flink的四种部署模式(Local、Standalone、YARN、Kubernetes)及其适用场景。

二、技能目标

能够独立完成Flink 1.13.6版本的解压和环境配置。

能够正确配置Flink Standalone集群的核心配置文件并启动集群。

能够提交测试作业并验证Flink集群的运行状态。

三、素质目标

培养在分布式系统部署中的耐心和细致调试精神。

提升在Linux集群环境下进行软件安装、配置与维护的综合实践能力。

增强版本管理和配置一致性意识。

四、重难点

重点:正确配置 flink-conf.yaml、masters 和 workers 三个核心配置文件。

难点:多节点环境下的配置一致性管理和集群网络连通性保障。

五、任务描述

本次任务是Flink 2.1.2 Standalone独立集群模式的安装与配置。

最终效果:能够正常访问Flink Web界面(http://master:8081),查看集群状态并成功提交示例作业。

六、环境要求

操作系统:CentOS 7(Linux)

Java环境:JDK 1.8 或更高版本

SSH免密登录:Master节点需能免密登录所有Worker节点

主机规划:

1台Master节点:运行JobManager

2台(或N台)Worker节点:运行TaskManager

七、Flink Standalone集群架构

7.1 核心组件

Flink Standalone集群由两种进程组成,形成一种主从(Master-Worker)架构:

JobManager(主节点/Master)

职责:集群的"大脑",负责接收提交的作业、调度任务、协调检查点、故障恢复等。

关键进程:

StandaloneSessionClusterEntrypoint

TaskManager(工作节点/Worker)

职责:集群的"肌肉",负责执行JobManager分配的具体数据处理任务。

任务槽(Task Slot):Flink资源调度的基本单位,一个Slot可以执行一个任务子任务。

关键进程:TaskManagerRunner

7.2 Standalone模式特点

简单部署:不依赖外部资源管理器(如YARN或Kubernetes),配置简单。

资源共享:JobManager和TaskManager共享同一份资源(内存和CPU)。

适用场景:适合中小规模生产环境、测试和概念验证。

高可用:默认不支持高可用,可通过ZooKeeper实现HA。

八、任务实施

步骤1:解压Flink安装包

上传安装包到/opt/package目录,

解压到指定目录:

tar -zxvf flink-1.13.6-bin-scala_2.11.tgz -C /opt/programs/

进入到/opt/programs/目录下,重命名目录

mv flink-1.13.6 flink

步骤2:配置环境变量

在master节点上配置环境变量:

etc目录下编辑环境变量配置文件profile

# 添加以下内容

# FLINK_HOME

export FLINK_HOME=/opt/programs/flink

export PATH=$PATH:$FLINK_HOME/bin

export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop

# 使配置生效

source /etc/profile

# 验证配置

echo $FLINK_HOME

# 验证配置

flink --version

再进入master节点的etc目录下,发送profile文件到worker1节点

scp -r profile root@worker1:/etc

在worker1节点,使配置生效

source /etc/profile

# 验证配置

echo $FLINK_HOME

再进入master节点的etc目录下,发送profile文件到worker2节点

scp -r profile root@worker2:/etc

在worker2节点,使配置生效

source /etc/profile

# 验证配置

echo $FLINK_HOME

步骤3:修改Flink核心配置文件

进入Flink配置目录,即/opt/programs/flink/conf/目录

3.1 修改 flink-conf.yaml 配置文件

# ==========基础配置==========

# JobManagerRPC地址,使用主机名或IP(重要!)

jobmanager.rpc.address: master

# JobManagerRPC端口

jobmanager.rpc.port: 6123

# JobManager JVM heap内存大小

jobmanager.heap.size: 1024m

# TaskManager JVM heap内存大小

taskmanager.heap.size: 1024m

#每个TaskManager提供的任务槽数(建议设置为CPU核心数)

taskmanager.numberOfTaskSlots: 2

#作业的默认并行度

parallelism.default: 1

# ========== Web UI配置==========

# JobManagerWeb界面的端口(默认:8081

jobmanager.web.port: 8081

#允许通过Web UI提交作业

web.submit.enable: true

# ==========历史服务器配置==========

# JobManager存档目录

jobmanager.archive.fs.dir: hdfs://master:8020/flink/completed-jobs/

#历史服务器Web地址

historyserver.web.address: master

#历史服务器Web端口

historyserver.web.port: 8082

#历史服务器存档目录

historyserver.archive.fs.dir: hdfs://master:8020/flink/completed-jobs/

注意,复制过去后需把中文删除!

3.2 修改 masters 文件

vi masters

内容如下:

master:8081

说明:如果需要高可用(HA),可以添加多个JobManager节点,每行一个。

3.3 修改 workers 文件(旧版本为 slaves)

vi workers

内容如下:

master

worker1

worker2

说明:每行一个TaskManager节点的主机名或IP,脚本会根据此文件远程启动TaskManager进程。

步骤4:分发Flink到所有Worker节点

master节点上进入到/opt/programs目录下

分发到worker1节点

scp -r flink root@worker1:/opt/programs/

分发到worker2节点

scp -r flink root@worker2:/opt/programs/

步骤5:启动Flink Standalone集群

在Master节点(jobmanager所在机器)上执行启动命令:

一键启动整个集群(推荐)

$FLINK_HOME/bin/start-cluster.sh

启动后,Master节点会通过SSH免密登录自动启动所有Worker节点上的TaskManager进程。

验证进程:在各节点使用jps命令检查进程:

Master节点应有:

StandaloneSessionClusterEntrypoint (JobManager)

TaskManagerRunner (TaskManager)

Jps

worker1和worker2节点应有:

TaskManagerRunner (TaskManager)

Jps

步骤6:验证集群运行状态

6.1 访问Web UI

在浏览器中访问:

http://master:8081

在Web UI的Overview页面可以查看:

集群可用Slot数量

在线TaskManager数量

作业运行状态等信息

步骤7:提交示例作业测试

7.1 提交WordCount示例作业

# 提交Flink自带的批处理WordCount示例

$FLINK_HOME/bin/flink run \

$FLINK_HOME/examples/batch/WordCount.jar \

--input $FLINK_HOME/README.txt \

--output /tmp/wordcount-result

7.2 提交流处理示例作业

# 提交流处理SocketWindowWordCount示例

$FLINK_HOME/bin/flink run \

$FLINK_HOME/examples/streaming/SocketWindowWordCount.jar \

--hostname master \

--port 9000

八、集群停止与管理

8.1 启动历史服务器

#创建HDFS目录(注意需启动Hadoop集群)

hdfs dfs -mkdir -p /flink/completed-jobs

# 验证目录创建成功

hdfs dfs -ls /flink/completed-jobs

再将flink-shaded-hadoop-2-uber-2.8.3-10.0.jar上传至/opt/programs/flink/lib/目录下

# 启动历史服务器(用于查看已完成作业的历史记录)

$FLINK_HOME/bin/historyserver.sh start

# 访问历史服务器Web界面

http://master:8082

8.2 停止Flink集群

# 一键停止整个集群

$FLINK_HOME/bin/stop-cluster.sh

8.3 单独启停组件

# 单独启动JobManager

$FLINK_HOME/bin/jobmanager.sh start

# 单独启动TaskManager

$FLINK_HOME/bin/taskmanager.sh start

# 单独停止JobManager

$FLINK_HOME/bin/jobmanager.sh stop

# 单独停止TaskManager

$FLINK_HOME/bin/taskmanager.sh stop

恭喜你,学会Flink流式计算框架的安装和部署(Flink Standalone独立集群模式)!!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 1:57:47

基于STM32单片机车位引导 智能停车场计费系统 刷卡识别 WIFI成品12(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于STM32单片机车位引导 智能停车场计费系统 刷卡识别 WIFI成品12(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 版本一:刷卡识别计费时钟闸道控制 蜂鸣器提醒 OLED液晶显示当前年,月,日,星期&…

作者头像 李华
网站建设 2026/7/5 1:56:56

无感FOC控制在高速电机中的实现与优化

1. 项目背景与核心挑战去年夏天接手一个工业风机改造项目时,我第一次真正体会到无感FOC(Field-Oriented Control)在高速电机控制中的魅力。传统带编码器的方案在粉尘环境中故障率居高不下,而客户要求的转速波动必须控制在0.5%以内…

作者头像 李华
网站建设 2026/7/5 1:56:51

向量库容量规划:维度、分片和副本都要算账

向量库容量规划:维度、分片和副本都要算账 一、深度引言与场景痛点 RAG 系统做容量规划时,很多人只问“有多少文档”。但向量库真正关心的是 chunk 数量、向量维度、数据类型、索引结构、元数据大小、副本数和查询并发。文档条数只是很粗的入口。 容量规…

作者头像 李华
网站建设 2026/7/5 1:55:23

2026年AIGC率怎么降?从80%降到10%的5个实战方法与工具推荐

一、AIGC率居高不下的焦虑"我的论文明明是自己一个字一个字写的,为什么AIGC率还是80%?"这是2026年很多毕业生在AIGC检测后的共同困惑。造成AIGC率高的原因有很多:写作风格过于规范、使用了AI辅助工具、语言表达过于"完美"…

作者头像 李华
网站建设 2026/7/5 1:52:41

GORM Session 最佳实践:灵活控制数据库会话的六种策略

GORM Session 最佳实践:灵活控制数据库会话的六种策略掌握六大核心配置,有效提升数据库操作的灵活性与执行效率。在实际后端开发中,数据库操作往往需要根据不同业务场景动态调整行为:调试时预览 SQL、批量处理时绕过钩子、为不同请…

作者头像 李华
网站建设 2026/7/5 1:49:23

预训练让时序模型零样本胜出

时序基础模型(如TimeGPT-1、Moirai 2.0)在零样本条件下超越SARIMA、Prophet等经典方法,其核心优势源于预训练范式带来的根本性变革。它通过在海量、跨领域的时序数据上学习通用模式,实现了“开箱即用”的自动化预测,而…

作者头像 李华