Flink 执行环境分为:本地单机环境和集群环境
本地单机环境:主要是为了方便用户编写、调试代码使用。
集群环境:用于正式环境,可以借助Hadoop YARN、Mesos、Kubernetes等不同的资源管理器部署自己的应用。

Flink可以在Linux、Mac OS X和Windows上运行,要求安装Java 8.x。
java -version

Flink 官网查看最新版本:
http://flink.apache.org/downloads.html
cd opt
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.8.0/flink-1.8.0-bin-scala_2.12.tgz

解压缩
tar -zxf flink-1.8.0-bin-scala_2.12.tgz
为了访问方便,可以编辑 /etc/profile文件,在底部添加如下设置:
# Flink setting
export FLINK_HOME=/opt/flink-1.8.0
export PATH=$PATH:$FLINK_HOME/bin

保存后,执行 source /etc/profile,使修改立即生效。
start-cluster.sh

验证Flink启动之后,默认web 端口8081是否正常。

启动成功后,在浏览器中访问 Flink的web dashboard。
http://192.168.56.103:8081
Web Dashboard展示了当前 Job Manager和Task Manager的状态。

也可以通过检查log目录下的log文件,来验证Flink系统正在运行中。
tail flink-1.8.0/log/flink-root-standalonesession-0-centos-103.log

(1)通过nc(netcat)启动一个端口号为9000的Socket Server。
nc -l 9000
(2)运行 SocketWindowWordCount 应用程序。
提交Flink应用的执行命令如下:
flink run flink-1.8.0/examples/streaming/SocketWindowWordCount.jar --port 9000
(3)在第一步启动的Socket Server窗口,手动输入单词。
如下所示,输入单词,如果一行有多个单词,就在单词之间输入空格。注意:需要在上述第二步完成之后,才输入单词。

如下是第二步运行SocketWindowWordCount应用的运行界面。

应用连接到了socket,等待输入。
查看SocketWindowWordCount Job的输出,输出的聚合结果。
tail -f /opt/flink-1.8.0/log/flink-root-taskexecutor-0-centos-103.out

也可以访问Flink web界面,验证提交的job的确正在运行中。


也可以在Flink web UI里查看输出,如下图所示。

针对SocketWindowWordCount中的源代码简要说明一下

timeWindow 时间窗口:
(1) timeWindow(Time.seconds(5)),只有一个参数,表示是翻滚时间窗口(Tumbling window),即不重叠的时间窗口,只统计本窗口内的数据;
(2) timeWindow(Time.seconds(5), Time.seconds(1)),有两个参数,表示是滑动时间窗口(Sliding window),即每过t2时间,统计前t1时间内的数据。 本例中就是,每1秒计算前5秒内的数据。
下面是2次输入相同内容的聚合结果,第一次输入比较快(5s之内完成),第二次输入比较慢一点(超过了5s),聚合结果就不一样了。

stop-cluster

相关链接:
Flink 下载页面
https://flink.apache.org/downloads.html
Local Setup Tutorial
https://ci.apache.org/projects/flink/flink-docs-release-1.8/tutorials/local_setup.html
| 留言与评论(共有 0 条评论) |