java flink

很多朋友都想知道java flink是什么?下面就一起来了解一下吧~

1、Flink是什么

Java Apache Flink是一个开源的分布式,高性能,高可用,准确的流处理框架。支持实时流处理和批处理。

java 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

java flink 第2张

Flink程序提交给JobClient,JobClient再提交到JobManager,JobManager负责资源的协调和Job的执行。一旦资源分配完成,task就会分配到不同的TaskManager,TaskManager会初始化线程去执行task,并根据程序的执行状态向JobManager反馈,执行的状态包括starting、in progress、finished以及canceled和failing等。当Job执行完成,结果会返回给客户端。