下面是Spark运行方式图解

Spark运行方式

  1. 构建Spark Application的运行环境,启动SparkContext
  2. SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动standaloneExecutorbackend
  3. Executor向SparkContext申请Task
  4. SparkContext将应用程序分发给Executor
  5. SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行
  6. Task在Executor上运行,运行完释放所有资源

Spark运行特点

  1. 每个Application获取专属的executor进程,该进程在Application期间一直驻留,并以多线程方式运行Task。这种Application隔离机制是有优势的,无论是从调度角度看(每个Driver调度他自己的任务),还是从运行角度看(来自不同ApplicationTask运行在不同JVM中),当然这样意味着Spark Application不能跨应用程序共享数据,除非将数据写入外部存储系统
  2. Spark与资源管理器无关,只要能够获取executor进程,并能保持相互通信就可以了
  3. 提交SparkContext的Client应该靠近Worker节点(运行Executor的节点),最好是在同一个Rack里,因为Spark Application运行过程中SparkContextExecutor之间有大量的信息交换
  4. Task采用了数据本地性和推测执行的优化机制

相关文章:

  • 2021-04-25
  • 2022-02-08
  • 2021-11-04
  • 2021-04-15
  • 2021-08-10
  • 2021-08-31
猜你喜欢
  • 2021-11-19
  • 2021-12-25
  • 2021-04-16
  • 2021-07-06
  • 2022-01-01
  • 2021-05-28
相关资源
相似解决方案