微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flink系列二Flink的基本架构和原理

组件栈

https://zhisheng-blog.oss-cn-hangzhou.aliyuncs.com/images/Drsi9h.jpg

API & Libraries层

基于流处理的:CEP(复杂事件处理库)、sql&Table库

基于批处理的:FlinkML(机器学习库)、GElly(图处理库)等

API层: DataStream API(流计算)、DataSet API(批计算)

Core层

支持分布式Stream作业的执行、JobGraph到ExecutionGraph的映射转换、任务调度等。将DataStream 和 DataSet 转换成统一的可执行的Task Operator,达到在流引擎下同时处理批量计算和流计算。

Deploy层

支持本地、集群(Standalone/yarn)、云(GCE/EC2)、Kubernetes、Mesos 不同平台部署。

 

基本架构

Flink主要由两个组件组成Jobmanager和TaskManager,Jobmanager为master节点,TaskManager为worker(slave)节点。所有组件之间用Akka进行通信,包括任务的状态和Checkpoint触发等。

Client 客户端

通过Actor System(Akka)连接JobManager,然后将任务提交到JobManager,获取任务执行状态。

JobManager(Master)

负责整个集群的任务调度以及资源管理。获取客户端提交的任务,根据TaskManager上的TaskSlot使用情况,为提交的任务分配相应的TaskSlots资源并命令TaskManager启动从客户端中提交的任务。JobManager会触发Checkpoints,由TaskManager完成Checkpoint操作。JobManager将任务执行的信息反馈给客户端,并释放资源。

TaskManager(Worker)

负责具体的任务执行和对应任务在每个节点上资源申请与管理。TaskManager接受JobManager提交的任务,然后使用Task Slot启动task,开始执行数据处理。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐