spark-2 spark集群架构

spark集群架构

spark-2 spark集群架构

Driver

  • 执行客户端写好的main方法,Driver端可能在客户端(本地模式)也可能在集群上
  • Driver会构建好SparkContext,它是所有程序的入口

Application

  • 本身就是一个应用程序,它包含了客户端的代码和任务运行资源信息

ClusterManager

资源调度角色,在不同的平台ClusterManager的身份不同

  • standAlone

    • spark自带的集群模式,整个任务的资源分配由spark集群的老大Master负责
    • 当把程序提交到standAlone时,负责计算的就算worker node
  • yarn

    • 可以把spark程序提交到yarn运行,整个任务的资源分配由yarn集群的老大ResourceManager负责
    • 当把spark程序提交到yarn集群运行时,负责运算的就算nodemanager
  • mesos

    • apache开源的一个类似yarn的资源调度平台,此处不介绍

注意

  • Master Worker Executor都是spark集群的概念,当提交到yarn中时,就不会涉及这些了。
  • 无论提交到yarn还是spark,spark程序都是基于内存。提交到哪只是决定由谁来分配、管理资源

Master

  • spark集群的从节点,负责任务计算的节点。worker可以有多个

Executor

  • 它是一个进程(计算资源),在worker节点被启动
  • 每个Application都有自己的计算资源Executor(可以有多个),各个Application的计算资源Executor是相互隔离的
  • 每个Executor中有多个task运行任务,一个task对应一个线程

Task

  • spark任务是以task线程的方式运行在对应的worker节点对应的executor中的