The value of knowledge lies not in possession, but in share.

0%

Spark集群管理架构

Spark集群管理架构包括:

  • 集群资源管理器(ClusterManager)

  • 运行作业任务的工作节点(Worker Node)

  • 每个应用的任务控制节点(Driver)

  • 每个工作节点上负责具体任务的执行进程(Executor)

    where 资源管理器可以自带或Mesos或YARN

Spark集群管理流程

  1. 首先为应用构建起基本的运行环境,即由Driver创建一个SparkContext,进行资源的申请、任务的分配和监控。
  2. 资源管理器为Executor分配资源,并启动Executor进程。
  3. SparkContext根据RDD的依赖关系构建DAG图,DAG图提交给DAGScheduler解析成Stage,然后把一个个TaskSet提交给底层调度器TaskScheduler处理;Executor向SparkContext申请Task,TaskScheduler将Task发放给Executor运行,并提供应用程序代码。
  4. Task在Executor上运行,把执行结果反馈给TaskScheduler,然后反馈给DAGScheduler,运行完毕后写入数据并释放所有资源 。

优点

与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点:

  1. 利用多线程来执行具体的任务,减少任务的启动开销。
  2. Executor中有一个BlockManager存储模块,会将内存和磁盘共同作为存储设备,有效减少IO开销。

🍭支持一根棒棒糖吧!