目录
一、前言
Flink 是一个开源的流处理框架,可以用于批处理和流处理。Flink 提供了多种部署模式,其中 Standalone 模式是最基础的一种。本文将介绍如何在 Linux 环境下部署一个 Flink Standalone 集群,包括安装、配置和启动。本文适用于新手,可以帮助你快速搭建 Flink Standalone 集群。
二、环境准备
在开始部署之前,需要准备以下环境和工具:
- Linux 服务器(建议至少 3 台,本文以 3 台为例,分别命名为
master
、slave1
、slave2
) - JDK 1.8 及以上版本(建议使用 OpenJDK 11)
- SSH 配置无密码登录
- Flink 安装包(本文使用
apache-flink-1.16.0-bin-scala_2.12.tgz
为例)
三、安装步骤
1. 下载并安装 Flink
在 master
节点下载 Flink 安装包,并解压缩:
cd /opt/moudles
tar -zxvf apache-flink-1.16.0-bin-scala_2.12.tgz
mv apache-flink-1.16.0 /opt/installs/flink
将 flink
目录分发到所有节点:
scp -r /opt/installs/flink slave1:/opt/installs/
scp -r /opt/installs/flink slave2:/opt/installs/
(也可以使用脚本xsync.sh分发到所有节点)
4. 配置 Flink
在 master
节点上,编辑 Flink 的配置文件 /opt/installs/flink/conf/flink-conf.yaml
:
jobmanager.rpc.address: bigdata01
taskmanager.numberOfTaskSlots: 2
web.submit.enable: true
#历史服务器 如果HDFS是高可用,则复制core-site.xml、hdfs-site.xml到flink的conf目录下 hadoop11:8020 -> hdfs-cluster
jobmanager.archive.fs.dir: hdfs://bigdata01:9820/flink/completed-jobs/
historyserver.web.address: bigdata01
historyserver.web.port: 8082
historyserver.archive.fs.dir: hdfs://bigdata01:9820/flink/completed-jobs/
编辑 masters
文件(设置 JobManager 的节点):
master:8081
编辑 work 文件(添加 TaskManager 节点):
master
slave1
slave2
5. 配置环境变量
在所有节点上设置 Flink 的环境变量。在 /etc/profile
文件中添加以下内容:
export FLINK_HOME=/opt/installs/flink
export PATH=$PATH:$FLINK_HOME/bin
export HADOOP_CONF_DIR=/opt/installs/hadoop/etc/hadoop
执行以下命令使配置生效:
source /etc/profile
刷新环境变量(source /etc/profile)
6. 启动 Flink 集群
在 master
节点启动 Flink 集群:
#启动HDFS
start-dfs.sh
#启动集群
start-cluster.sh
#启动历史服务器
historyserver.sh start
验证集群是否启动成功,可以通过 jps
命令查看 JobManager
和 TaskManager
进程。
假如 historyserver 无法启动,也就没有办法访问 8082 服务,原因大概是你没有上传 关于 hadoop 的 jar 包到 lib 下。
7. 访问 Flink Web 界面
打开浏览器,访问 http://master:8081
,可以查看 Flink 的 Web UI 管理界面,监控集群状态和任务运行情况;访问 http://master:8082
,可以查看 Flink 的 Flink历史服务器管理界面,及时服务重启,运行过的服务都还在能够访问8082是因为你的历史服务启动着。
四、简单测试
在 master
节点上提交一个 Flink 示例任务:
flink run examples/streaming/WordCount.jar
在 Flink 的 Web 界面中可以查看任务的执行情况。
五、常见问题和解决办法
1. 启动失败,无法连接到 TaskManager
- 检查配置文件中的
jobmanager.rpc.address
是否正确。 - 确保所有节点的
hosts
文件配置正确。 - 检查节点之间的网络是否通畅。
2. Web 界面无法访问
- 检查防火墙设置,确保 8081 端口是开放的。
- 确保 JobManager 已经正常启动。
六、总结
本文介绍了如何在 Linux 环境下部署 Flink Standalone 集群,从环境准备、安装配置到集群启动和测试。Standalone 模式适合测试和开发环境的快速部署,操作简单。如果需要在生产环境中使用,可以考虑使用 YARN 或 Kubernetes 进行更复杂的集群管理。