LocalFlinkMiniCluster启动DataStream任务的流程

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: LocalFlinkMiniCluster 集群的actor 模型 --- - 相关的主要类图如下: ![image-20190415180352502.png](https://ata2-img.cn-hangzhou.oss-pub.aliyun-inc.com/3763cc8b905776d9c23cc98318fc7a3c.png) - AkkaRpcA

LocalFlinkMiniCluster 集群的actor 模型


  • 相关的主要类图如下:

image-20190415180352502.png

  • AkkaRpcActor持有一个rpcEndpoint成员,接收到消息后进行基础解析后调用rpcEndpoint的的对应方法来进行处理。
  • 其中RpcGateway及RpcEndPoint的类图
    image-20190415175424225.png
  • 支持的消息类型

    • 其中主要使用RpcInvocation基于反射调用RPCEndpoint的对应函数
    • FencedMessage 将message进行封装成payload,通过fencingToken进行校验,保证请求的合法性
      image-20190415175913490.png

LocalFlinkMiniCluster集群的角色


  • ResouceManager

    • 负责容器的分配
    • 使用FencedAkkaRpcActor实现,其rpcEndpoint为 org.apache.flink.runtime.resourcemanager.ResourceManager
  • JobMaster

    • 负责任务执行计划的调度和执行,
    • 使用FencedAkkaRpcActor实现,其rpcEndpoint为 org.apache.flink.runtime.jobmaster.JobMaster

      • JobMaster持有一个SlotPool的Actor,用来暂存TaskExecutor提供给JobMaster并被接受的slot。JobMaster的Scheduler组件从这个SlotPool中获取资源以调度job的task
  • Dispatcher

    • 主要职责是接收从Client端提交过来的job并生成一个JobMaster去负责这个job在集群资源管理器上执行。

      • 不是所有部署方式都需要用到dispatcher,比如yarn-cluster 的部署方式可能就不需要
    • 使用FencedAkkaRpcActor实现,其rpcEndpoint为 org.apache.flink.runtime.dispatcher.StandaloneDispatcher
  • TaskExecutor

    • TaskExecutor会与ResouceManager和 JobMaster两者进行通信。

      • 会向ResourceManager报告自身的可用资源;并维护本身slot的状态
      • 根据slot的分配结果,接收JobMaster的命令在对应的slot上执行指定的task。
      • TaskExecutor还需要向以上两者定时上报心跳信息。
    • 使用AkkaRpcActor实现,其rpcEndpoint为org.apache.flink.runtime.taskexecutor.TaskExecutor

启动DataStream任务的主体流程


image-20190417172051347.png
image-20190417174333612.png

参考资料


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
6月前
|
分布式计算 资源调度 监控
没有监控的流处理作业与茫茫大海中的裸泳无异 - 附 flink 与 spark 作业监控脚本实现
没有监控的流处理作业与茫茫大海中的裸泳无异 - 附 flink 与 spark 作业监控脚本实现
|
2月前
|
SQL 消息中间件 Kafka
Flink问题之取消正在运行的Flink Streaming作业如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
30 0
|
2月前
|
存储 SQL 消息中间件
Flink作业问题之取消Flink Streaming作业失败如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
8月前
|
存储 API 流计算
Flink DataStream API-概念、模式、作业流程和程序
前几篇介绍了Flink的入门、架构原理、安装等,相信你对Flink已经了解入门。接下来开始介绍Flink DataStream API内容,先介绍DataStream API基本概念和使用,然后介绍核心概念,最后再介绍经典案例和代码实现。本篇内容:Flink DataStream API的概念、模式、作业流程和程序。
Flink DataStream API-概念、模式、作业流程和程序
|
4月前
|
流计算
Flink在open算子中有办法获取到jobmanager的ip吗?
Flink在open算子中有办法获取到jobmanager的ip吗?
24 0
|
6月前
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
8月前
|
存储 消息中间件 Java
5分钟了解Flink状态管理
什么叫做Flink的有状态计算呢?说白了就是将之前的中间结果暂时存储起来,等待后续的事件数据过来后,可以使用之前的中间结果继续计算。本文主要介绍Flink状态计算和管理、代码示例。
5分钟了解Flink状态管理
|
8月前
|
消息中间件 存储 分布式计算
Flink之DataStream API(执行环境、数据源、读取kafka)
Flink之DataStream API(执行环境、数据源、读取kafka)
900 0
|
8月前
|
消息中间件 存储 程序员
|
存储 传感器 缓存
【Flink】(七)状态管理
【Flink】(七)状态管理
461 0
【Flink】(七)状态管理

相关实验场景

更多