这是我参与「第四届青训营 」笔记创作活动的的第4天。
第二次和第三次课程都讲到了关于Flink的理论知识,可概括为两句话:
- Flink支持流\批处理,可处理无界或有界的数据。
- Flink遵循exactly-once语义。
课程内容使我对Flink产生了兴趣,于是我决定查阅官方文档并亲自探索一下这个框架,以下是过程记录。(不过实际配置的时候建议直接看官方文档来操作哈,因为我也是看着官方文档来的,但经过一重转述之后个别表达可能有偏颇)
注:我用的Linux是ubuntu-20.4
JDK安装
Flink需要Java11的版本。
apt install openjdk-11-jdk
之后输入java -version即可验证是否安装成功
Flink安装
有两种安装方式:
- 下载最新版本的 二进制 包并解压;
- 通过源文件方式安装。
先说第一种:
官方源太慢,大小是按kb来的(别问我怎么知道的),用清华源的下:
截止目前(2022/7)的最新版本是1.15.1
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.15.1/flink-1.15.1-bin-scala_2.12.tgz
下载好了之后就解压,我这样其实就直接解压到当前文件夹了。
tar -xzf flink-1.15.1-bin-scala_2.12.tgz
之后,进入flink-1.15.1目录,就会看到如下结果:
说明已经安装好了。
方式二: 从源文件安装。 源文件我下了(其实就是github上的那个),
还给它重命名了一下
(mv 旧文件名 新文件名)
但是我看了看github上的配置要求:
感觉maven那里有点麻烦。。。所以我就没弄。。。感兴趣的同学试试哈~
Flink常用脚本
bin目录下有很多脚本,以后应该会有用到的地方。
比较常用的几个:
开启集群:
./bin/start-cluster.sh
关闭集群:类似
./bin/stop-cluster.sh
试运行example 的demo
背景知识;
- bin/flink是一个命令行工具
会有提示信息教人怎么用(下图为部分文档截图,有兴趣的小伙伴自己探索一下哈~)
- 提交一个Job就是要加载Job的JAR包和相应依赖到Flink的集群,flink这个命令行工具可以帮助完成该工作。
运行代码
run examples/streaming/WordCount.jar
查看结果
tail log/flink-*-taskexecutor-*.out
结语
至此我对Flink的初期探索就结束啦~明天继续探索官方文档,争取快点熟悉上手!