本文是学习Apache Flink的开始,记录了Flink Local模式的部署,并运行了Word Count例子。
1.下载和部署。
Flink可以运行在Linux、MacOS和Windows系统上,需要JDK1.7+的支持。本文记录了在linux(CentOS 7)上部署过程,默认已经安装了JDK1.8。
1.1 下载
从下面的链接中下载二进制的Flink,根据你喜欢的Hadoop/Scala版本选择对应的Flink版本。
http://flink.apache.org/downloads.html
1.2 部署
我选择的版本是flink-1.6.2-bin-hadoop24-scala_2.11.tgz 放在itcast目录下
[root@itcast01 ~]# wget http://mirrors.hust.edu.cn/apache/flink/flink-1.6.2/flink-1.6.2-bin-hadoop24-scala_2.11.tgz
--2018-12-03 22:39:48-- http://mirrors.hust.edu.cn/apache/flink/flink-1.6.2/flink-1.6.2-bin-hadoop24-scala_2.11.tgz
正在解析主机 mirrors.hust.edu.cn (mirrors.hust.edu.cn)... 202.114.18.160
正在连接 mirrors.hust.edu.cn (mirrors.hust.edu.cn)|202.114.18.160|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:291631283 (278M) [application/octet-stream]
正在保存至: “flink-1.6.2-bin-hadoop24-scala_2.11.tgz”
28% [=========================> ] 82,004,863 642KB/s 剩余 9m 7s
解压到指定目录
2 [root@itcast01~]# tar -zxvf flink-1.3.2-bin-hadoop27-scala_2.10.tgz -C /itcast
[root@itcast01 bin]# ./start-cluster.sh # Start Flink 后面是1.3版本之前的启动方式 .bin/start-local.sh
[root@itcast01 bin]# ./stop-cluster.sh 停止
如要停止Flink,请使用命令:bin/stop-cluster.sh
。
1.3 访问Flink监控界面
访问Flink前端界面,确认系统启动,地址:http://192.168.1.128:8081 这个界面是我已经运行测试任务代码的结果,有jobs任务
2. 运行WordCount
在数据处理领域,WordCount就是HelloWorld。Flink自带WordCount例子,它通过socket读取text数据,并且统计每个单词出现的次数。如果你想查阅例子源码,请点击链接:SocketWindowWordCount源码。
2.1 启动本地监听
首先,使用nc命令启动一个本地监听,命令是:
nc -l 9000
如果报错:-bash: command not found,请先安装nc,在线安装命令:yum -y install nc
。
2.2 提交WordCount程序
新开一个shell窗口 提交WordCount程序的命令:
切换到flink-1.6.2下,不要进入bin目录运行代码
[root@itcast01 flink-1.6.2]# bin/flink run examples/streaming/SocketWindowWordCount.jar --port 9000
Starting execution of program
正常运行的话,已经可以看到任务
2.3 发送数据
在启动nc的shell窗口,输入
[root@itcast01 flink-1.6.2]# nc -l 9000
cpu cpu cpu lmc lmc lmc jiao jiao jiao
新开一个shell窗口,去/itcasst/ flink-1.6.2/log目录下,执行tail -f flink*.out
,可以查看到word count的结果。
[root@itcast01 log]# tail -f flink-root-taskexecutor-0-itcast01.out
cpu : 3
jiao : 3
lmc : 3
: 1
[root@itcast01 bin]# ./start-cluster.sh # Start Flink 开启服务
[root@itcast01 bin]# ./stop-cluster.sh 停止