Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 被设计为在所有常见的集群环境中运行,以内存中速度和任何规模执行计算。
为了更深入的了解 Flink ,计划先搭建 Flink 运行环境。
Flink 可以在所有类似 UNIX 的环境中运行,即 Linux,Mac OS X 和 Cygwin(适用于Windows)。
由于服务器一般都是采用 Linux 系统,这里也采用 Linux 系统来模拟生产环境。Windosw 11 有一个很大的缺点是不支持 VMware 安装虚拟机(我姿势不对?),还好在应用商店提供了 Ubuntu 20.04 子系统可以安装使用,安装过程中也踩了一些坑。
Linux 系统环境具备之后,就可以开始 Flink 运行环境部署了,毫无疑问 Java 是必须的。Flink 中 Java 推荐版本是 Java 8 或 11。我选择的 Java8 。要检查安装的 Java 版本,请在终端中键入如下命令可以查看当前部署的 Java 版本:
代码语言:javascript复制java -version
下载和安装
接下来就可以下载 Flink 文件包了,这里推荐下载二进制文件 flink-*-bin-scala*.tgz
,因为二进制文件是编译之后的,可以直接用来部署。我这里选择最新版本 flink-1.14.3
,由于 Apache 网站是国外的,下载速度通常会比较慢,我这里提供一个网盘下载地址:https://pan.baidu.com/s/1guQ4_va6VV00ktJLScmWew (提取码:1234)。
下载完成后,将 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 目录的所属用户和所属组
代码语言:javascript复制sudo chown -R datawhale:datawhale /opt/flink-1.14.3
查看项目目录
切换至 flink 目录并查看文件
代码语言:javascript复制cd flink-1.14.3 && ls -l
可以看到如下结果
bin/ 目录存储二进制文件、bash 脚本 conf/ 目录存储配置文件,包括 flink-conf.yaml examples/ 目录存储示例应用程序
启动和关停本地集群
使用如下命令启动本地集群
代码语言:javascript复制./bin/start-cluster.sh
使用如下命令查看 flink 运行状态
代码语言:javascript复制ps aux | grep flink
还可以在浏览器输入 localhost:8081 以访问其 web UI 界面。
使用如下命令关停本地集群
代码语言:javascript复制./bin/stop-cluster.sh
提交作业并查看运行情况
Flink 提供了 CLI tool bin/flink 来运行 jar 包并控制其运行。
所谓提交作业就是指将作业的 jar 包和相关依赖项上传到正在运行的 Flink 集群并执行它。
这里以示例应用程序 WordCount
进行演示。(首先要启动 flink 集群)
执行如下命令以执行 WordCount 程序:
代码语言:javascript复制./bin/flink run examples/streaming/WordCount.jar
执行如下命令查看运行结果:
代码语言:javascript复制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 的下载和安装部署、集群的启动和关停,以及一个完整作业的提交和查看流程