很多朋友都想知道java flink是什么?下面就一起来了解一下吧~
1、Flink是什么
Java Apache Flink是一个开源的分布式,高性能,高可用,准确的流处理框架。支持实时流处理和批处理。
2、Flink特性
(1)支持批处理和数据流程序处理
(2)优雅流畅的支持java和scala api
(3)同时支持高吞吐量和低延迟
(4)支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型
(5)在不同的时间语义(时间时间,处理时间)下支持灵活的窗口(时间,技术,会话,自定义触发器)
(6)仅处理一次的容错担保
(7)自动反压机制
(8)图处理(批) 机器学习(批) 复杂事件处理(流)
(9)在dataSet(批处理)API中内置支持迭代程序(BSP)
(10)高效的自定义内存管理,和健壮的切换能力在in-memory和out-of-core中
(11)兼容hadoop的mapreduce和storm
(12)集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件
3、Flink分布式执行
Flink分布式程序包含2个主要的进程:JobManager和TaskManager.当程序运行时,不同的进程就会参与其中,包括Jobmanager、TaskManager和JobClient
Flink程序提交给JobClient,JobClient再提交到JobManager,JobManager负责资源的协调和Job的执行。一旦资源分配完成,task就会分配到不同的TaskManager,TaskManager会初始化线程去执行task,并根据程序的执行状态向JobManager反馈,执行的状态包括starting、in progress、finished以及canceled和failing等。当Job执行完成,结果会返回给客户端。
以上就是小编今天的分享,希望能够帮到大家。