本文基于java构建Flink1.9版本入门程序,需要Maven 3.0.4 和 Java 8 以上版本。需要安装Netcat进行简单调试。

这里简述安装过程,并使用IDEA进行开发一个简单流处理程序,本地调试或者提交到Flink上运行,Maven与JDK安装这里不做说明。

一、Flink简介

Flink诞生于欧洲的一个大数据研究项目StratoSphere。该项目是柏林工业大学的一个研究性项目。早期,Flink是做Batch计算的,但是在2014年,StratoSphere里面的核心成员孵化出Flink,同年将Flink捐赠Apache,并在后来成为Apache的顶级大数据项目,同时Flink计算的主流方向被定位为Streaming,即用流式计算来做所有大数据的计算,这就是Flink技术诞生的背景。

2015开始阿里开始介入flink 负责对资源调度和流式sql的优化,成立了阿里内部版本blink在最近更新的1.9版本中,blink开始合并入flink,

未来flink也将支持java,scala,python等更多语言,并在机器学习领域施展拳脚。

二、Flink开发环境搭建

首先要想运行Flink,我们需要下载并解压Flink的二进制包,下载地址如下:https://flink.apache.org/downloads.html

我们可以选择Flink与Scala结合版本,这里我们选择最新的1.9版本Apache Flink 1.9.0 for Scala 2.12进行下载。

Flink在Windows和Linux下的安装与部署可以查看 

三、Flink快速体验

请保证安装好了flink,还需要Maven 3.0.4 和 Java 8 以上版本。这里简述Maven构建过程。

其他详细构建方法欢迎查看:

在netcat中输入几个单词 逗号分隔

file

在程序一端查看结果

file

启动flink

windows为 start-cluster.bat    linux为start-cluster.sh

localhost:8081查看管理页面

file

通过maven对代码打包

file

将打好的包提交到flink上

file

查看log

tail -f log/flink-***-jobmanager.out

在netcat中继续输入单词,在Running Jobs中查看作业状态,在log中查看输出。

file

Flink提供不同级别的抽象来开发流/批处理应用程序。

file

最低级抽象只提供有状态流

在实践中,大多数应用程序不需要上述低级抽象,而是针对Core API编程, 如DataStream API(有界/无界流)和DataSet API(有界数据集)。

Table Api声明了一个表,遵循关系模型。

最高级抽象是SQL