组件栈
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] 举报,一经查实,本站将立刻删除。