开发工具:Idea
语言:java
Flink版本:flink 1.8.1
JDK:1.8+
一、Flink简介
Flink 是一个同时面向数据流处理和批量数据处理的开源框架和分布式处理引擎,主要由Java和Scala语言编写,具有高吞吐、低延迟、高扩展、支持容错等特性。
其以数据并行和流水线方式执行任意流数据程序,流水线运行时系统可以执行批处理和流处理程序。此外,Flink 的运行时本身也支持迭代算法的执行。
众所周知,阿里非常重视Flink,阿里巴巴在 2015 年开始尝试使用 Flink,但因当时 Flink 面世不久稍显稚嫩,阿里巴巴在 Flink 的基础上维护了一个内部版本的实时计算平台 Blink,以满足自身超大体量的业务需求,今年 1 月 28 日阿里将Blink开源的事儿在大数据圈引起了不小的骚动。
由此可见Flink的重要性,在此篇文章,我将以一个WordCount的例子让大家对Flink有一个初步体验。
二、项目构建
方式一:
$ mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.8.0
方式二:
$ curl https://flink.apache.org/q/quickstart.sh | bash -s 1.8.0
方式三:
1、使用Idea构建一个普通的Java项目,在pom.xml中加入依赖
2、Flink分为流式处理和批处理,所需要的基本依赖:
流式处理:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
批处理:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
3、提供一个基础版 Flink项目pom.xml
<?xml ve