一:架构总览

二:角色作用

  • Client:面向用户,对外提供接口,提交代码的入口。
  • Driver Program:驱动器程序,用于解耦客户端和内部实际操作,将用户程序转化为任务。
  • SparkContent:Spark 上下文,承接作用,用于配置上下文环境。
  • Cluster Manager(Resource Manager):集群资源管理器,统一资源管理与任务调度。
  • Application Master:任务的执行,调度指挥者。
  • Worker Node:工作节点,任务的实际执行者。

三:角色间关系

  1. 客户端接收到用户指令、代码;
  2. 驱动器服务于客户端,承接指令传达给集群资源管理器;
  3. 集群资源管理器根据当前情况,进行资源调度,生成一个任务调度者 AM(Application Master)
  4. AM 给相应的工作节点分配任务;
  5. 工作节点执行任务,执行完毕,结果返回给 AM,并向资源管理器汇报自身资源情况,任务已完成当前空闲状态。
  6. AM 接收到计算结果进行汇总,返回给客户端。

四:工作特性

  • 内存计算
  • 多线程
  • 缓存
  • 每一个 AM 都有一批专享的 Executor,以多线程方式启动多个 Task 任务,并行的线程计算任务缓存 RDD数据缓存块,存储复用的数据模块。