系列文章目录
(一)算法工程师遇上大数据-Scala
(二)算法工程师遇上大数据-Hadoop
(三)算法工程师遇上大数据-Hive
(四)算法工程师遇上大数据-Zookeepr
(五)算法工程师遇上大数据-Flume
(六)算法工程师遇上大数据-Strom
(七)算法工程师遇上大数据-Kafka
(八)算法工程师遇上大数据-Spark
(九)算法工程师遇上大数据-Flink
前言
本文介绍一下流处理框架Flink。一、介绍
Flink 是一个针对流数据和批数据的分布式处理引擎。它主要是由 Java 代码实现。目前主要还是依靠开源社区的贡献而发展。对 Flink 而言,其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把所有任务当成流来处理,这也是其最大的特点。Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。二、快速入门
1.特点
2.流式数据处理
(1)处理无界和有界数据
(2)充分利用内存性能
3.分层API设计
(1)分层API
(2)DataStream API(重点)
4.抽象例子
(1)事件驱动
(2)数据分析
(3)数据管道
5.具体例子
每个 Flink 应用都需要有执行环境,在该示例中为 env。流式应用需要用到StreamExecutionEnvironment。DataStream API 将你的应用构建为一个 job graph,并附加到 StreamExecutionEnvironment 。当调用 env.execute() 时此 graph 就被打包并发送到 JobManager 上,后者对作业并行处理并将其子任务分发给 Task Manager 来执行。每个作业的并行子任务将在 task slot 中执行。注意,如果没有调用 execute(),应用就不会运行。
一个JobManager对应多个TaskManager,一个TaskManager对多个Slot,Slot是最小计算单元。
6.开发文档
(1)Flink开发文档
(2)DataStream API
(3)Flink开发步骤:> 配置本地/服务器环境 > 熟悉DataStream API >实践