Spark架构和运行流程

Spark架构和运行流程

一个Spark集群正常启动的情况下会存在Master进程和Worker进程,只有创建了SparkContext对象才能实现与Spark集群的连接。

两大核心组件

从这张图里面我们可以看出Spark运行过程中的两个核心组件。

  • Driver Program
  • Executor

如果按照Spark设计思想中的主从架构,即master-slave架构。
那么Driver Program对应的就是我们的master,它负责管理整个集群的作业任务调度。具体包括:

  • 将用户应用程序(例如我们的WordCount)转化成作业(Job);
  • 在Executor之间调度任务(Task);
  • 跟踪Executor的执行情况

各个Worker 节点中的Executor则是Slave,它们则负责具体的任务执行。具体包括:

  • 负责运行具体的Spark应用的任务(Task),并将运行结果反馈给Driver Program;
  • 提供内存存储(RDD直接缓存在Executor进程中,因此任务可以充分利用缓存数据来加速运算)

Spark运行流程

从上面的图中,我们可以简单总结Spark运行流程,具体如下:

  1. 构建Spark应用程序的运行环境(启动Driver Program,创建SparkContext对象)。
  2. SparkContext向Cluster Manager注册,申请运行Executor所需的资源。
  3. Cluster Manager为Executor分配资源并启动Executor进程。
  4. SparkContext将应用程序转化为具体的调度任务(Task),并分配给Executor(这一步内部还可以细化,后续补充)。
  5. Executor执行相关Task任务。
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2023 henrrywan

请我喝杯咖啡吧~

支付宝
微信