美文网首页
Spark-部署模式

Spark-部署模式

作者: 布莱安托 | 来源:发表于2020-07-06 19:55 被阅读0次

    Spark部署模式

    Spark支持三种集群管理器(Cluster Manager),分别为:

    1. Standalone:独立模式,Spark原声的集群管理器,自带完成的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。
    2. Apache Mesos:一个强大的分布式资源管理系统,它允许多种不同的框架部署在其上,包括Yarn。
    3. Hadoop Yarn:统一的资源管理机制,在上面可以运行多套计算框架,如MapReduce、Storm、Spark等。Spark根据Driver在集群中的位置不同,分为Yarn Client和Yarn Cluster两种模式。

    实际上,除了上述通用的集群管理器之外,Spark内部也提供了一些方便用户测试和学习的简单集群部署模式。

    Spark的运行模式取决于传递给SparkContext的MASTER环境变量的值,目前支持的Master URL包括:

    Master URL 含义
    local 在本地运行,只有一个工作进程,无并行计算能力
    local[K] 在本地运行,有K个工作进程
    local[*] 在本地运行,工作进程数量等于本地机器的CPU核心数
    spark://HOST:PORT 以Standalone模式运行,默认端口为7077.详细文档见Spark standalone cluster
    mesos://HOST:PORT 在Mesos集群上运行,Driver进程和Executor进程运行在Mesos集群上,部署模式(deploy mode)为client模式。详细文档见MesosClusterDispatcher
    yarn-client 在Yarn集群上运行,Driver进程运行在本地,Executor进程在Yarn集群上,部署模式为client模式。Yarn集群的地址必须在HADOOP_CONF_DIR或YARN_CONF_DIR变量里定义
    yarn-cluster 在Yarn集群上运行,Driver进程运行在本地,Executor进程在Yarn集群上,部署模式为cluster模式。Yarn集群的地址必须在HADOOP_CONF_DIR或YARN_CONF_DIR变量里定义

    用户在提交任务给Spark处理时,以下两个参数共同决定Spark的运行方式:

    • --master MASTER_URL:决定任务使用哪种集群处理
    • --deploy-mode DEPLOY_MODE:决定Driver的运行方式,可选值为client或cluster

    Standalone模式

    Standalone集群有四个重要组成部分,分别是:

    1. Master:是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责。
    2. Worker:是一个进程,一个Worker运行在集群中的一台服务器上,只要覆辙两个职责:一个是用自己的内存存储RDD的某个或某些分区数据;另一个是启动其他进程和线程,对RDD上的分区进行并行的处理和计算。
    3. Driver:是一个进程,负责运行用户编写的Spark应用程序。
    4. Executor:是一个进程,一个Worker可以运行多个Executor,Executor通过启动多个线程来对RDD的分区数据进行并行计算。

    Standalone Client模式

    image.png

    在Standalone Client模式下,Driver在任务提交的本地机器上运行,Driver启动后想Master注册应用程序,Master根据资源需求找到内部资源至少可以启动一个Executor的所有Worker,然后在这些Worker之间分配Executor,Worker上的Executor启动后会向Driver反向注册,所有的Executor注册完成后Driver开始执行main函数

    Standalone Cluster模式

    image.png

    在Standalone Cluster模式下,任务提交后,Master会找到一个Worker启动Driver进程,Driver启动后向Master注册应用程序,Master根据资源需求找到内部资源至少可以启动一个Executor的所有Worker,然后在这些Worker之间分配Executor,Worker上的Executor启动后会向Driver反向注册,所有的Executor注册完成后Driver开始执行main函数

    Yarn模式

    Yarn Client模式

    image.png

    在Yarn Client模式下,Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时ApplicationMaster相当于一个ExecutorLauncher,只负责向ResourceManager申请Executor资源。

    ResourceManager接到ApplicationMaster的资源申请后分配Container,然后ApplicationMaster在指定的NodeManager上启动Executor,Executor启动后想Driver反向注册,全部注册完成后Driver开始执行用户程序的main方法。

    Yarn Cluster模式

    image.png

    在Yarn Client模式下,任务启动后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时ApplicationMaster相当于一个Driver。

    ResourceManager接到ApplicationMaster的资源申请后分配Container,然后ApplicationMaster在指定的NodeManager上启动Executor,Executor启动后想Driver反向注册,全部注册完成后Driver开始执行用户程序的main方法。

    相关文章

      网友评论

          本文标题:Spark-部署模式

          本文链接:https://www.haomeiwen.com/subject/jpbgqktx.html