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)、KubernetesMesos 不同平台部署。

 

基本架构

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,开始执行数据处理。

 

参考以下资料:

https://flink.apache.org/

https://github.com/apache/flink

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值