Flink流处理入门和socket发送数据
这块笔记是学习陈老师的大规模数据和大数据系统分析时候做的大作业的一块内容,其中题目是Flink和Spark调研,研究大数据的同学都知道这是两个颇受欢迎的大数据处理工具,同时支持流处理和批处理,但是又有些区别,我在小组内分配到的是Flink的流处理性能分析,因此需要实现socket自动发送数据和flink接收数据并完成处理,而Flink和Spark最入门的代码要属于wordcount例子了。
Flink初步使用
安装过Flink的同学都知道在安装目录下的example里就有直接可以测试的例子jar包,只需要使用nc -l -p 9000 -v打开端口,就可以使用jar包测试了,但是可能在安装flink的时候又有不少同学会遇到问题,于是我们可以直接在eclipse新建maven项目,在里边直接添加依赖就行了,这样就不用安装软件了,可以省很多时间,也不用说自己是“环境工程师”了。
我的maven依赖如下
<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-clients_2.11</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
</dependencies>
如果自己的eclipse没有新建maven项目的选项,那必然是需要先安装maven啦,这个挺简单的,只要简单搜索就有很多的教程的,不多赘述。
Flink流处理程序
在maven项目中新建java文件,将如下代码放入(前提是等依赖下载完成,依赖会自动下载)
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.common.state.StateTtlConfig.TimeCharacteristic;
import org.apache.flink.api.java.tuple