Spark -- 执行器后端 & 调度器后端

  在Apache Spark中,coarseGrainedExecutorBackendcoarseGrainedschedulerBackend是两个重要的组件,它们在spark的集群调度和执行过程中扮演着不同的角色,特别是在与集群管理器(如standalone模式或YARN)之间进行通
信时。

1.CoarseGrainedExecutorBackend

职责:

  • CoarseGrainedExecutorBackend的主要职责是作为执行器(Executor)的后端,处理来自Driver程序的任务分配和管理。
  • 它负责接收来自Driver的任务,并在执行器上执行这些任务。
  • 该组件处理与Driver的通信,包括报告任务的完成状态和内存使用情况。

工作流程:

  • 当Spark的Driver发出任务时,coarseGrainedExecutorBackend通过RPC(远程过程调用)与Driver通信,执行分配的任务。
  • 它在执行过程中管理执行器的资源,如内存和CPU,确保任务按需执行。

2.CoarseGrainedSchedulerBackend

职责:

  • CoarseGrainedschedulerBackend是调度器(Scheduler)的后端,负责与集群管理器(如Standalone或YARN)进行交瓦。
  • 它负责请求资源,启动Executor,并跟踪Executor状态。

工作流程:

  • coarseGrainedschedulerBackend`首先请求特定数量的Executor,这些Executor可以在工作节点上启动并用于运行任务。
  • 在集群管理器提供Executor后,它将注册这些Executor,并向Driver报告它们的状态。

关系

CoarseGrainedschedulerBackendCoarseGrainedExecutorBackend之间的关系就是调度和执行的关系:

  • CoarseGrainedschedulerBackend负责协调Executor的创建与调度,而coarseGrainedExecutorBackend则负责在Executor内部实际执行任务。
  • 在Spark的执行架构中,前者负责与集群管理器的交互,后者则负责与Driver的交互。

总结

  • CoarseGrainedschedulerBackend:负责资源管理,与集群管理器交互,协调任务调度
  • CoarseGrainedExecutorBackend:负责在Executor中执行任务,并与Driver进行任务状态的反馈。

你可能感兴趣的:(spark,大数据,分布式)