Flink实战 | 青训营笔记

298 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第4天。

第二次和第三次课程都讲到了关于Flink的理论知识,可概括为两句话:

  • Flink支持流\批处理,可处理无界或有界的数据。
  • Flink遵循exactly-once语义。

课程内容使我对Flink产生了兴趣,于是我决定查阅官方文档并亲自探索一下这个框架,以下是过程记录。(不过实际配置的时候建议直接看官方文档来操作哈,因为我也是看着官方文档来的,但经过一重转述之后个别表达可能有偏颇)

注:我用的Linux是ubuntu-20.4

JDK安装

Flink需要Java11的版本。

apt install openjdk-11-jdk

之后输入java -version即可验证是否安装成功

image.png

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目录,就会看到如下结果: image.png

说明已经安装好了。

方式二: 从源文件安装。 源文件我下了(其实就是github上的那个),

image.png 还给它重命名了一下

(mv 旧文件名 新文件名

image.png

但是我看了看github上的配置要求:

image.png

感觉maven那里有点麻烦。。。所以我就没弄。。。感兴趣的同学试试哈~

Flink常用脚本

bin目录下有很多脚本,以后应该会有用到的地方。

image.png 比较常用的几个:

开启集群:

./bin/start-cluster.sh

image.png

关闭集群:类似

./bin/stop-cluster.sh

试运行example 的demo

背景知识;

  • bin/flink是一个命令行工具

会有提示信息教人怎么用(下图为部分文档截图,有兴趣的小伙伴自己探索一下哈~)

image.png

  • 提交一个Job就是要加载Job的JAR包和相应依赖到Flink的集群,flink这个命令行工具可以帮助完成该工作。

运行代码

run examples/streaming/WordCount.jar

查看结果

tail log/flink-*-taskexecutor-*.out

image.png

结语

至此我对Flink的初期探索就结束啦~明天继续探索官方文档,争取快点熟悉上手!