Flink入门宝典(详细截图版)
本文基于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中输入几个单词 逗号分隔
在程序一端查看结果
4、程序提交到Flink
启动flink
windows为 start-cluster.bat linux为start-cluster.sh
localhost:8081查看管理页面
通过maven对代码打包
将打好的包提交到flink上
查看log
tail -f log/flink-***-jobmanager.out
在netcat中继续输入单词,在Running Jobs中查看作业状态,在log中查看输出。
四、Flink 编程模型
Flink提供不同级别的抽象来开发流/批处理应用程序。
最低级抽象只提供有状态流。
在实践中,大多数应用程序不需要上述低级抽象,而是针对Core API编程, 如DataStream API(有界/无界流)和DataSet API(有界数据集)。
Table Api声明了一个表,遵循关系模型。
最高级抽象是SQL。