博客
关于我
关于spark on yarn 的那些事
阅读量:158 次
发布时间:2019-02-28

本文共 1578 字,大约阅读时间需要 5 分钟。

在Spark Standalone集群中,资源调度主要由Master节点负责。然而,Spark也支持将资源调度交给YARN,这种方式的优势在于YARN支持动态资源调度。与YARN相比,Standalone模式的资源调度较为简单,仅支持固定资源分配策略。具体而言,每个任务预先分配固定数量的core,各个Job按顺序依次分配资源。在资源不足的情况下,任务会被排队等待。这种调度方式更适合单用户场景,但在多用户环境下,由于用户程序的差异较大,可能导致某些用户总是无法获得资源。而YARN的动态资源分配策略能够更好地解决这一问题。

除了为Spark提供调度服务,YARN作为通用的资源调度平台,还可以为其他系统(如Hadoop MapReduce、Hive)提供调度支持。这使得YARN能够统一管理集群上的所有计算负载,避免资源分配的混乱无序。

在Spark Standalone集群部署完成后,配置Spark支持YARN相对简单,主要包含以下两个步骤:

第一步,在conf/spark-env.sh文件中添加配置HADOOP_CONF_DIR,并指向Hadoop集群的配置文件目录,例如:

export HADOOP_CONF_DIR=/home/software/soft/hadoop-2.7.0/etc/hadoop

这一配置需要在所有节点上执行。

第二步,重启集群。

值得注意的是,即便没有部署Hadoop集群,Spark程序仍然可以访问HDFS文件。为此,只需添加相应的依赖jar文件,并在Spark程序中以hdfs://开头的完整路径访问HDFS文件即可。然而,这种方式存在一个明显缺点:HDFS与Spark节点是分离的,数据移动成本较高,大多数情况下远高于计算成本。因此,这种访问方式仅适用于小数据量的计算场景。

通过上述部署,Spark可以方便地访问HDFS文件,并在计算过程中尽量将计算任务分布在数据所在的节点上,从而减少因数据移动导致的网络IO开销。

Spark程序的运行调度方式取决于提交时的参数设置。以计算圆周率Pi的示例程序为例,提交方式如下:

$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \
--master spark://
:
\ lib/spark-examples*.jar \ 10

在这个命令中,--master参数决定了调度方式:如果参数值以spark://开头,Spark将使用自己的Master节点进行调度;如果参数值为yarn-clientyarn-cluster,则使用YARN进行调度,而YARN的地址信息将从Hadoop配置目录下的配置文件中获取。

YARN调度有两种模式:

  • yarn-cluster模式:YARN会在集群的某个节点上启动一个Master进程,Spark Driver程序运行在这个Master进程内部。客户端完成提交后可以立即退出,无需等待Spark程序运行完成。这是生产环境中非常适用的运行方式。

  • yarn-client模式:与yarn-cluster模式类似,但Driver程序不会运行在Master进程内部,而是在本地运行。通过Master节点申请资源,直到程序运行完成。这种模式适合需要交互的计算场景。

  • 在实际应用中,yarn-cluster模式通常是更好的选择,因为它在集群内部运行Driver进程,基本上不占用本地资源。而yarn-client模式则会对本地资源造成一定压力。因此,建议在没有交互需求的情况下优先使用yarn-cluster模式。

    转载地址:http://plmc.baihongyu.com/

    你可能感兴趣的文章
    nmap 使用方法详细介绍
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    nmap指纹识别要点以及又快又准之方法
    查看>>
    Nmap渗透测试指南之指纹识别与探测、伺机而动
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.7 Parameters vs Hyperparameters
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>