目录
一、前言
二、环境准备
三、安装步骤
1. 下载并安装 Flink
4. 配置 Flink
5. 配置环境变量
6. 启动 Flink 集群
7. 访问 Flink Web 界面
四、简单测试
五、常见问题和解决办法
1. 启动失败,无法连接到 TaskManager
2. Web 界面无法访问
六、总结
一、前言
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 进行更复杂的集群管理。