仿佛前世的密约,注定我们要在今生抵掌,然后一起创世,或者再次站成一排,慷慨赴死。——野夫

官网:https://flink.apache.org/zh/

安装jdk

1
yum list java*

然后安装

1
yum install java-1.8.0-openjdk* -y

查看版本

1
java -version

前往官网下载最新版,放进Centos,然后进入目录

1
cd /server/flink/

解压

1
tar -xzf flink-*.tgz

进入解压后的路径列出目录

1
2
cd flink-1.14.0
ls -l

这里bin目录包含了flink的二进制文件以及几个管理各种工作和任务的脚本

conf目录就是放配置文件的,包含了flink-conf.yaml

examples目录包含了一个包含使用Flink的简单的Demo

我们启动:

1
./bin/start-cluster.sh

顺便一提关闭命令为:

1
./bin/stop-cluster.sh

简单看一下进程

1
ps aux | grep flink

我们本地访问一下

1
curl localhost:8081

看来是防火墙问题

我们开放端口

1
2
firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld

成功进入控制台

然后启动例子,这个例子是用来统计单词数的

1
./bin/flink run examples/streaming/WordCount.jar

查看运行输出的日志

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

来到控制台,可以看到我们刚刚执行完毕的这个任务

点进去可以查看详情:

对于这个任务,flink有两个操作,一个是(source operator),也就是源操作,用来从收集源读取数据

另一个是运算操作(transformation operator),它统计单词个数

你可以点击TimeLine查看时间线

可以看到它们几乎并行,这就是实时计算的最大特点,就是实时性!

其他的例子就不一一介绍了

1
2
3
ls examples/streaming -l
./bin/flink run examples/streaming/Iteration.jar
tail log/flink-*-taskexecutor-*.out