所需要的环境
环境名称 | 下载地址 |
netcat | https://eternallybored.org/misc/netcat/ |
jdk8 | http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
flink1.7 | https://flink.apache.org/downloads.html |
然后下载你需要的对应的flink 的安装包,下载地址如下:
配置jdk的环境变量,为了能够运行Flink,唯一的要求是安装一个有效的Java 8.x. Windows用户centos 7安装与使用:https://ci.apache.org/projects/flink/flink-docs-release-1.7/tutorials/local_setup.html
jdk的环境安装,然后上传你下载的对应版本的flink(我安装的flink 在home目录下),解压。
tar -zxf flink-1.7.0-bin-hadoop28-scala_2.11.tgz
然后进入你的flink 目录下,启动flink。
cd /home/flink-1.7.0
./bin/start-cluster.sh
启动成功
进入http://localhost:8081 ,localhost是你安装flink的IP地址,我的IP地址是192.168.234.128。下面是成功的web界面。
我们可以看到有一个可用的task Slots(任务槽), 然后做一个SocketWindowWordCount测试,先安装netcat,然后出现提示,就一直Y。
yum install nc
然后复制三个ssh窗口,一个用做数据客户端,一个用做数据服务端,一个用做结果输出端,现在我们来做一个例子:
启动一个监听9000的输入端口
nc -l 9000
然后启动我们的任务SocketWindowWordCount.jar
cd /home/flink-1.7.0
./bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
然后打开输出端窗口
cd /home/flink-1.7.0/log/
tail -f flink-root-taskexecutor-0-192.168.234.128.out
OK,再输入窗口输入信息。
然后我们查看输出端。
为什么有些相同的数据是分开统计的呢?,这个我们需要查看源代码,我们可以看到每5s统计window窗口的数据。
我们在查看web界面,我们可以看到有一个正在运行的任务,可用的任务槽不存在了,并且我们的任务正在执行。
现在我们关闭输入端,在查看web界面。
如上图我们可以看出,可用的任务槽释放了,并且有一个完成的任务。
如果我们不开启输入端口,直接启动一个SocketWindowWordCount.jar任务,我们发现web页面会出现一个失败的任务,这样方便我们直接从web界面监控。
首先安装netcat:参考文章:https://blog.csdn.net/qq_37585545/article/details/82250984
然后根据官方给出的文档:https://ci.apache.org/projects/flink/flink-docs-release-1.7/tutorials/flink_on_windows.html
下载对应的安装包,解压安装包(我这里flink 的文件目录是E:\flink\flink-1.7.0),进入flink目录,启动 start-cluster.bat,会启动两个Java的窗口,然后cmd启动两个,进入命令行,输入nc -l -p 9000 -v,监控9000端。然后启动我们的SocketWindowWordCount.jar任务,命令如下:
窗口1:
nc -l -p 9000 -v
窗口2:
E:
cd E:\flink\flink-1.7.0\bin
然后再窗口2启动SocketWindowWordCount.jar任务,flink run -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount E:\flink\flink-1.7.0\examples\streaming\SocketWindowWordCount.jar --port 9000
flink run -c org.apache.flink.streaming.examples.socket.SocketWindowWordCount E:\flink\flink-1.7.0\examples\streaming\SocketWindowWordCount.jar --port 9000
我们可以看到窗口1成功的连上了窗口2,然后我们再窗口1输入信息。打开我们启动flink自动弹出的两个java窗口。
ok我们可以看到出现了我们想要的结果,如有问题请留言。