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

📅 2026/7/5 1:58:53
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 7LinuxJava环境JDK 1.8 或更高版本SSH免密登录Master节点需能免密登录所有Worker节点主机规划1台Master节点运行JobManager2台或N台Worker节点运行TaskManager七、Flink Standalone集群架构7.1 核心组件Flink Standalone集群由两种进程组成形成一种主从Master-Worker架构JobManager主节点/Master职责集群的大脑负责接收提交的作业、调度任务、协调检查点、故障恢复等。关键进程StandaloneSessionClusterEntrypointTaskManager工作节点/Worker职责集群的肌肉负责执行JobManager分配的具体数据处理任务。任务槽Task SlotFlink资源调度的基本单位一个Slot可以执行一个任务子任务。关键进程TaskManagerRunner7.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_HOMEexport FLINK_HOME/opt/programs/flinkexport PATH$PATH:$FLINK_HOME/binexport 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 rootworker1:/etc在worker1节点使配置生效source /etc/profile# 验证配置echo $FLINK_HOME再进入master节点的etc目录下,发送profile文件到worker2节点scp -r profile rootworker2:/etc在worker2节点使配置生效source /etc/profile# 验证配置echo $FLINK_HOME步骤3修改Flink核心配置文件进入Flink配置目录即/opt/programs/flink/conf/目录3.1 修改 flink-conf.yaml 配置文件# 基础配置# JobManager的RPC地址使用主机名或IP重要jobmanager.rpc.address: master# JobManager的RPC端口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配置# JobManager的Web界面的端口默认8081jobmanager.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 文件旧版本为 slavesvi workers内容如下masterworker1worker2说明每行一个TaskManager节点的主机名或IP脚本会根据此文件远程启动TaskManager进程。步骤4分发Flink到所有Worker节点在master节点上进入到/opt/programs目录下分发到worker1节点scp -r flink rootworker1:/opt/programs/分发到worker2节点scp -r flink rootworker2:/opt/programs/步骤5启动Flink Standalone集群在Master节点jobmanager所在机器上执行启动命令一键启动整个集群推荐$FLINK_HOME/bin/start-cluster.sh启动后Master节点会通过SSH免密登录自动启动所有Worker节点上的TaskManager进程。验证进程在各节点使用jps命令检查进程Master节点应有StandaloneSessionClusterEntrypoint (JobManager)TaskManagerRunner (TaskManager)Jpsworker1和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-result7.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:80828.2 停止Flink集群# 一键停止整个集群$FLINK_HOME/bin/stop-cluster.sh8.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独立集群模式)