zoukankan      html  css  js  c++  java
  • Spark部署模式

    1.1. Spark部署模式

    Spark支持多种集群管理器(Cluster Manager),主要为:

     

    1.  Standalone:独立集群模式,Spark原生的简单集群管理器,自带完整的服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统,使用Standalone可以很方便地搭建一个集群;
    2.  Apache Mesos:一个强大的分布式资源管理框架,它允许多种不同的框架部署在其上,包括yarn
    3. Hadoop YARN:统一的资源管理机制,在上面可以运行多套计算框架,如map reducestorm等,根据driver在集群中的位置不同,分为yarn clientyarn cluster
    实际上,除了上述这些通用的集群管理器外,Spark内部也提供了一些方便用户测试和学习的简单集群部署模式。由于在实际工厂环境下使用的绝大多数的集群管理器是Hadoop YARN,因此我们关注的重点是Hadoop YARN模式下的Spark集群部署。
    Spark的运行模式取决于传递给SparkContextMASTER环境变量的值,个别模式还需要辅助的程序接口来配合使用,目前支持的Master字符串及URL包括:
    2-1 Spark运行模式配置

    Master URL

    Meaning

    local

    在本地运行,只有一个工作进程,无并行计算能力。

    local[K]

    在本地运行,有K个工作进程,通常设置K为机器的CPU核心数量。

    local[*]

    在本地运行,工作进程数量等于机器的CPU核心数量。

    spark://HOST:PORT

    Standalone模式运行,这是Spark自身提供的集群运行模式,默认端口号: 7077。详细文档见:Spark standalone cluster

    mesos://HOST:PORT

    Mesos集群上运行,Driver进程和Worker进程运行在Mesos集群上,部署模式必须使用固定值:--deploy-mode cluster。详细文档见:MesosClusterDispatcher.

    yarn-client

    Yarn集群上运行,Driver进程在本地,Executor进程在Yarn集群上,部署模式必须使用固定值:--deploy-mode clientYarn集群地址必须在HADOOP_CONF_DIR or YARN_CONF_DIR变量里定义。

    yarn-cluster

    Yarn集群上运行,Driver进程在Yarn集群上,Work进程也在Yarn集群上,部署模式必须使用固定值:--deploy-mode clusterYarn集群地址必须在HADOOP_CONF_DIR or YARN_CONF_DIR变量里定义。

     

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

    · master MASTER_URL :决定了Spark任务提交给哪种集群处理。

    · deploy-mode DEPLOY_MODE:决定了Driver的运行方式,可选值为Client或者Cluster

     

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

     

    1. Driver:是一个进程,我们编写的Spark应用程序就运行在Driver上,由Driver进程执行;
    2. Master(RM):是一个进程,主要负责资源的调度和分配,并进行集群的监控等职责;
    3. Worker(NM):是一个进程,一个Worker运行在集群中的一台服务器上,主要负责两个职责,一个是用自己的内存存储RDD的某个或某些partition;另一个是启动其他进程和线程(Executor),对RDD上的partition进行并行的处理和计算。
    4.  Executor:是一个进程,一个Worker上可以运行多个ExecutorExecutor通过启动多个线程(task)来执行对RDDpartition进行并行计算,也就是执行我们对RDD定义的例如mapflatMapreduce等算子操作。

     

    1.1.1. YARN Client模式

    2-3 YARN Client模式

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

    ResourceManager接到ApplicationMaster的资源申请后会分配container,然后ApplicationMaster在资源分配指定的NodeManager上启动Executor进程,Executor进程启动后会向Driver反向注册,Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。

    1.1.2. YARN Cluster模式

    2-4 YARN Cluster模式

    YARN Cluster模式下,任务提交后会和ResourceManager通讯申请启动ApplicationMaster,随后ResourceManager分配container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster就是Driver

    Driver启动后向ResourceManager申请Executor内存,ResourceManager接到ApplicationMaster的资源申请后会分配container,然后在合适的NodeManager上启动Executor进程,Executor进程启动后会向Driver反向注册,Executor全部注册完成后Driver开始执行main函数,之后执行到Action算子时,触发一个job,并根据宽依赖开始划分stage,每个stage生成对应的taskSet,之后将task分发到各个Executor上执行。



  • 相关阅读:
    图解IntelliJ IDEA v13应用服务器的运行配置
    探秘IntelliJ IDEA v13的应用服务器
    WebStorm中Node.js项目配置教程(1)——创建项目
    Web神器WebStorm 8.0测试版发放(慧都独家)
    三个创建WebStorm项目的方法
    清明假期【未完成】
    DOM查询
    正则表达式
    Httpservlet cannot be resolved to a type的原因与解决方法
    解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【亲测有效】
  • 原文地址:https://www.cnblogs.com/TiePiHeTao/p/1f50722d217fbe9b60f794122b222aa3.html
Copyright © 2011-2022 走看看