Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。
具体见官网介绍,我就不多说了
https://flink.apache.org/
根据自己hadoop和scala的版本安装对应版本的Flink
下载好解压缩到指定目录,cd进去bin目录
下面操作具体参考官方文档快速启动
https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/setup_quickstart.html
启动本地Flink
./start-cluster.sh
浏览器输入http://localhost:8081可以看到UI界面
单词统计实例:
jar包所在位置(安装包自带)
依次输入:
./flink run ../examples/batch/WordCount.jar \
--input file:///home/zq/Desktop/test.txt --output file:///home/zq/Desktop/flink_wordcount_out.txt
还可以加很多参数,达到不同的效果,还能跑在YARN上,见https://ci.apache.org/projects/flink/flink-docs-release-1.6/ops/cli.html
成功示范如下:
网页也显示对应job是finished
分析一波WordCount.jar这个jar包的scala源码,当然你也可以选择看java版的,看看Flink底层是怎么进行词频统计的,其实挺简单的,没有那么复杂.
源码github网址 https://github.com/apache/flink/blob/master/flink-examples/flink-examples-batch/src/main/scala/org/apache/flink/examples/scala/wordcount/WordCount.scala
我稍微注释了代码的关键部分如下