apache flink 是一个用于对无界和有界数据流进行状态计算的框架和分布式处理引擎。flink 设计旨在所有常见集群环境中运行,并以内存速度和任意规模进行计算。
为了深入了解 Flink,首先需要搭建其运行环境。
Flink 可以在所有类似 unix 的环境中运行,包括 linux,Mac OS X 和 Cygwin(适用于windows)。
鉴于服务器通常采用 Linux 系统,这里也使用 Linux 系统来模拟生产环境。尽管 Windows 11 存在不支持 VMware 安装虚拟机的缺点(可能是由于配置问题),幸运的是,应用商店提供了 ubuntu 20.04 子系统可供安装使用,安装过程中也遇到了一些挑战。
准备好 Linux 系统环境后,就可以开始部署 Flink 运行环境了。首先,Java 是必需的。Flink 推荐使用 Java 8 或 11,我选择了 Java 8。要检查已安装的 Java 版本,可以在终端中输入以下命令以查看当前部署的 Java 版本:
java -version
接下来,可以下载 Flink 文件包了。推荐下载二进制文件 flink-*-bin-scala*.tgz,因为这些文件已编译好,可以直接用于部署。我选择了最新版本 flink-1.14.3。由于 apache 网站位于国外,下载速度可能较慢,我提供了网盘下载地址:https://www.php.cn/link/aea82aaedd0ca42cd2b356ae965efbb0)。
下载完成后,将 flink-1.14.3-bin-scala_2.11.tgz 文件解压至 /opt 目录:
sudo tar -xzvf /mnt/d/bigdata/targz/flink-1.14.3-bin-scala_2.11.tgz -C /opt
修改 flink 目录的所属用户和所属组:
sudo chown -R datawhale:datawhale /opt/flink-1.14.3
切换至 flink 目录并查看文件:
cd flink-1.14.3 && ls -l
可以看到如下结果:
使用以下命令启动本地集群:
./bin/start-cluster.sh
使用以下命令查看 flink 运行状态:
ps aux | grep flink
还可以在浏览器中输入 localhost:8081 以访问其 web ui 界面。
使用以下命令关闭本地集群:
./bin/stop-cluster.sh
提交作业并查看运行情况时,Flink 提供了 CLI 工具 bin/flink 来运行 jar 包并控制其运行。
提交作业即是将作业的 jar 包和相关依赖项上传到正在运行的 Flink 集群并执行它。
这里以示例应用程序 WordCount 进行演示。(首先要启动 flink 集群)
执行以下命令以运行 WordCount 程序:
./bin/flink run examples/streaming/WordCount.jar
执行以下命令查看运行结果:
root@LAPTOP-G7SR3KNT:/opt/flink-1.14.3# tail log/flink-*-taskexecutor-*.out(nymph,1)(in,3)(thy,1)(orisons,1)(be,4)(all,2)(my,1)(sins,1)(remember,1)(d,4)
此外,可以再次登录 web UI 查看集群状态和作业运行情况。
还可以查看作业执行的时间线等信息。
本文介绍了 Flink 的下载和安装部署、集群的启动和关闭,以及一个完整作业的提交和查看流程。