`

Spark:Yarn-cluster和Yarn-client区别与联系

 
阅读更多

我们都知道Spark支持在yarn上运行,但是Spark on yarn有分为两种模式yarn-cluster和yarn-client,它们究竟有什么区别与联系?阅读完本文,你将了解。

  Spark支持可插拔的集群管理模式(Standalone、Mesos以及YARN ),集群管理负责启动executor进程,编写Spark application 的人根本不需要知道Spark用的是什么集群管理。Spark支持的三种集群模式,这三种集群模式都由两个组件组成:master和slave。Master服务(YARN ResourceManager,Mesos master和Spark standalone master)决定哪些application可以运行,什么时候运行以及哪里去运行。而slave服务( YARN NodeManager, Mesos slave和Spark standalone slave)实际上运行executor进程。

  当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器(container)运行。Spark可以使得多个Tasks在同一个容器(container)里面运行。这是个很大的优点。

  注意这里和Hadoop的MapReduce作业不一样,MapReduce作业为每个Task开启不同的JVM来运行。虽然说MapReduce可以通过参数来配置。详见mapreduce.job.jvm.numtasks。关于这个参数的介绍已经超过本篇文章的介绍。

  从广义上讲,yarn-cluster适用于生产环境;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出。

  在我们介绍yarn-cluster和yarn-client的深层次的区别之前,我们先明白一个概念:Application Master。在YARN中,每个Application实例都有一个Application Master进程,它是Application启动的第一个容器。它负责和ResourceManager打交道,并请求资源。获取资源之后告诉NodeManager为其启动container。

  从深层次的含义讲,yarn-cluster和yarn-client模式的区别其实就是Application Master进程的区别,yarn-cluster模式下,driver运行在AM(Application Master)中,它负责向YARN申请资源,并监督作业的运行状况。当用户提交了作业之后,就可以关掉Client,作业会继续在YARN上运行。然而yarn-cluster模式不适合运行交互类型的作业。而yarn-client模式下,Application Master仅仅向YARN请求executor,client会和请求的container通信来调度他们工作,也就是说Client不能离开。看下下面的两幅图应该会明白(上图是yarn-cluster模式,下图是yarn-client模式):





  从源码实现,调度器等方面看,请参照本博客的《Spark on YARN集群模式作业运行全过程分析》《Spark on YARN客户端模式作业运行全过程分析》的介绍。

 

参考:

《Spark on YARN集群模式作业运行全过程分析》
《Spark on YARN客户端模式作业运行全过程分析》
《Spark:Yarn-cluster和Yarn-client区别与联系》
《Spark和Hadoop作业之间的区别》

分享到:
评论

相关推荐

    Spark&Yarn手动安装指南

    2. 提交Spark任务:使用spark-submit命令提交Spark任务,例如:spark-submit --master yarn --class org.apache.spark.examples.SparkPi --deploy-mode cluster spark-examples-1.6.1-hadoop2.6.0.jar 200。...

    spark初始化源码阅读sparkonyarn的client和cluster区别

    Spark 初始化源码阅读 Spark on YARN 的 Client 和 Cluster 区别 Spark 是一个大数据处理的开源框架,它可以在多种集群管理器上运行,如 YARN、Mesos 和 Standalone。Spark on YARN 是 Spark 在 YARN 集群管理器上...

    spark-2.1.0-bin-without-hadoop.tgz.7z

    HOME环境变量,并在启动时指定master节点,例如本地模式(`--master local[n]`)、standalone模式(`--master spark://<master_ip>:<port>`)或YARN模式(`--master yarn-client`或`--master yarn-cluster`)。...

    (word完整版)windows下非submit-方式运行spark-on-yarn(CDH集群).doc

    - 虽然不使用`spark-submit`命令,但在IDEA中,可以通过模拟`spark-submit`的参数来提交应用,比如设置`--master yarn-cluster`或`--master yarn-client`,以及相关的配置选项,如`--num-executors`、`--executor-...

    java提交spark任务到yarn平台的配置讲解共9页.pdf.zip

    在提交Spark任务前,需要配置Spark的相关属性,如`spark.master`设置为`yarn-client`或`yarn-cluster`,前者用于客户端模式,后者用于集群模式。此外,还需指定Hadoop的配置目录,例如`spark.yarn.conf.archive`。 ...

    Apache Spark常见面试题

    - **区别**:yarn-cluster模式下,AppMaster在后台运行,不与用户交互;而yarn-client模式下,AppMaster会在用户终端显示进度和日志信息。 - **Spark on Mesos模式**: - **概述**:Mesos是另一种资源管理器,它...

    Spark的Yarn模式

    在Yarn模式下,Spark有两种运行模式:`yarn-client`和`yarn-cluster`。 1. `yarn-client`模式:在这种模式下,Driver程序运行在提交任务的客户端上,通常是一个交互式的终端或开发环境。客户端负责与YARN的...

    Spark开发指南.pdf

    [hadoop@10-10-116-236 bin]$ ./spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster ../lib/spark-examples*.jar 10 ``` 3. **结果查看**: - Client 模式下,输出...

    spark安装包+spark实验安装软件

    这时,需要配置Spark的`yarn-client`或`yarn-cluster`模式,并设置相关的Hadoop配置。 **8. Spark的性能调优** 性能调优是Spark应用的关键环节,包括调整executor数量、内存分配、shuffle行为、数据序列化策略等。...

    java提交spark任务到yarn平台的配置讲解共9页

    1. `spark.master`: 指定Spark运行模式,对于YARN,应设置为`yarn-client`或`yarn-cluster`。前者在驱动程序运行在提交任务的客户端,后者则在YARN集群内部启动驱动程序。 2. `spark.yarn.jars`: 提供包含Spark库的...

    word源码java-spark_demo:spark_demo

    yarn-cluster是将你写好的程序打成jar包然后提交到yarn上面去执行 然后yarn会将jar包分发到各个节点 并负责资源分配和任务管理 rack: null) dead for group 错误 参考: kafka server.properties 需要配置: ...

    spark1.3与hadoop2.6环境配置

    - 修改 `conf/spark-defaults.conf` 文件,配置包括但不限于 `spark.master`(设置为 `yarn-client` 或 `yarn-cluster`),`spark.executor.instances`(执行器数量),`spark.executor.memory`(每个执行器的内存...

    Spark简介以及其生态圈

    YARN-Client与YARN-Cluster的主要区别在于Driver程序运行的位置,以及应用程序管理的方式。 在不同集群中的运行演示部分,通常会展示如何在Standalone和YARN模式下启动Spark-Shell,如何提交Spark应用程序,并通过...

    藏经阁-State of Security_Apache Spark&Apache Zeppelin.pdf

    Spark 在 YARN 上的部署模式包括 yarn-cluster 和 yarn-client 两种模式。在 yarn-cluster 模式中,Spark driver 运行在 YARN 的 Application Master 上。在 yarn-client 模式中,Spark driver 运行在客户端。 结语...

    spark环境搭建

    Spark 环境搭建是指在本地机器上安装和配置 Spark 相关组件,以便进行 Spark 的学习和开发。本文将指导读者从头开始搭建 Spark 环境,包括 JDK 安装、Spark 下载、Scala 安装、Hadoop 安装和 Spark 配置等步骤。 一...

    spark-submit工具参数说明.pdf

    还可以选择`yarn-cluster`或`yarn-client`模式来决定Driver程序是在集群内部还是客户端运行。 2. **--deploy-mode DEPLOY_MODE**:定义Driver程序的运行位置。`client`模式下,Driver在提交应用的工作节点上运行;`...

    Spark-内核源码解析.docx

    TaskScheduler 是任务调度器,将 Tasks 传给底层调度器,如 spark-cluster TaskScheduler、yarn-cluster YarnClusterScheduler、yarn-client YarnClientClusterScheduler 等。TaskScheduler 负责将 Task 传给 Worker...

    大数据面试杀招 Spark高频考点.docx

    Spark 的任务提交方式实际上有两种,分别是 YarnClient 模式和 YarnCluster 模式。 * YarnClient 模式:Driver 在任务提交的本地机器上运转,Driver 启动后会和 ResourceManager 通讯申请启动 ApplicationMaster,...

Global site tag (gtag.js) - Google Analytics