Apache Flink是一款流处理框架,当您在设置流程的时候可以将这款软件部署到你的开发环境中使用,让您可以更好设置流程模块,提供流和批处理分析、数据管道和ETL、复杂的后期数据处理、SQL对流和批处理数据等多种功能,您可以将其灵活的部署到自己的软件中,也可以部署到任何扩展架构使用;Apache Flink可以集成到多款软件上开发,让您的软件具有流处理功能,新增对 state TTL 的原生支持,需要的朋友赶快下载吧!

软件功能
*流优先运行时,支持批处理和数据流程序
*优雅流畅的Java和Scala api
*同时支持高吞吐量和低事件延迟的运行时
*基于*Dataflow模型
*支持DataStream API中的事件时间和无序*处理
*灵活的窗口(时间,计数,会话,自定义触发器)跨越不同的时间语义(事件时间,处理时间)
*精确一次处理保证*容错
*流媒体节目的自然背压
*用于图形处理(批处理)、机器学习(批处理)和复杂事件处理(流)的库
*数据集(批处理)API中对迭代程序(BSP)的内置支持
*自定义内存管理,用于在内存中和非核心数据处理算法之间进行高效和健壮的切换
* Apache Hadoop MapReduce和Apache Storm的兼容性层
*与YARN、HDFS、HBase和Apache Hadoop生态系统的其他组件集成
软件特色
一致的检查点:Flink的恢复机制基于应用程序状态的一致检查点。如果出现故障,应用程序将重新启动,并从最新的检查点加载其状态。与可重新设置的流源相结合,这个特性可以保证一次完全的状态一致性。
有效的检查点:如果应用程序保持tb级的状态,那么检查点应用程序的状态可能非常昂贵。Flink可以执行异步和增量检查点,以保持检查点对应用程序的延迟sla的影响非常小。
端到端精确地一次:Flink为特定存储系统提供了事务接收器,可以保证数据只写一次,即使在出现故障的情况下也是如此。
与集群管理器集成:Flink与集群管理器紧密集成,例如Hadoop YARN、Mesos或Kubernetes。当流程失败时,将自动启动一个新流程来接管其工作。
高可用性设置:Flink具有高可用性模式,可以消除所有单点故障。ha模式基于Apache ZooKeeper,这是一种经过实战验证的可靠分布式协调服务
安装方法
通过定期将检查点写入远程持久存储,可以实现容错。下图描述了传统应用程序架构和事件驱动应用程序之间的差异。

下载并启动Flink
Flink可在Linux,Mac OS X和Windows上运行。为了能够运行Flink,唯一的要求是安装一个有效的Java 8.x. Windows用户。
您可以通过发出以下命令来检查Java的正确安装:
java -version
如果你有Java 8,输出将如下所示:
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
下载并解压缩
1、从下载页面下载二进制文件。您可以选择任何您喜欢的Hadoop / Scala组合。如果您打算只使用本地文件系统,任何Hadoop版本都可以正常工作。
2、转到下载目录。
3、解压缩下载的存档。
$ cd ~/Downloads # Go to download directory
$ tar xzf flink-*.tgz # Unpack the downloaded archive
$ cd flink-1.6.0
启动本地Flink群集
$ ./bin/start-cluster.sh # Start Flink
Apache Flink支持流和批分析应用程序,如下图所示。

使用说明
*注:Maven 3.3。x可以构建Flink,但不能正确地消除某些依赖。Maven 3.0.3正确地创建了库。
要使用Java 8构建单元测试,请使用Java 8u51或更高版本,以防止在使用PowerMock runner.*的单元测试中出现故障
下图描述了周期性ETL作业和连续数据管道之间的差异。

#发展Flink
Flink提交者使用IntelliJ思想来开发Flink代码基。
我们推荐IntelliJ IDEA用于开发包含Scala代码的项目。
IDE的最低要求是:
支持Java和Scala(也是混合项目)
使用Java和Scala支持Maven
分层的api
Flink提供了三个分层的api。每种API都在简洁和表达之间提供了不同的权衡,并针对不同的用例。

IntelliJ IDEA
IntelliJ IDE支持开箱即用的Maven,并为Scala开发提供了一个插件。
* IntelliJ下载:[https://www.jetbrains.com/idea/](https://www.jetbrains.com/idea/)
* IntelliJ Scala插件:[http://plugins.jetbrains.com/plugin/?id=1347](http://plugins.jetbrains.com/plugin/?id=1347)
Flink通过定期和异步检查本地状态到持久存储,保证了在发生故障时的精确一次状态一致性。

由于有界数据集总是可以排序的,所以处理有界流不需要有序的摄取。有界流的处理也称为批处理。

更新日志
新增对 state TTL 的原生支持。此功能允许在 state 到期后进行清理;
继续完善 1.5.0 重构的 Flink 分布式架构,并简化容器设置;
进一步改进 SQL CLI,使得针对大量数据源执行流式处理和批处理查询更容易;
新增 StreamingFileSink ,以及对 ElasticSearch 6.x 的支持;
优化 Timer Deletions 。
∨ 展开