YARN 作业 Staging目录的用途及配置

本文介绍了Hadoop中staging目录的用途,提交作业时会将相关jar包和配置信息上传到该目录,启动executor前再下载到计算节点本地。还详细说明了MapReduce和Spark作业Staging目录的配置及示例,如副本数、目录位置等,体现了不同作业的配置特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

staging目录的用途

关于staging目录可能很多人都不太会关注,毕竟日常运行作业也用不到这些配置。不过了解它对于我们理解作业的执行流程也是有所帮助的,比如我们都会使用hadoop jar 或 spark-submit等命令来提交一个MR或Spark作业,然后我们就会看到在集群的某些计算节点上启动executor(MapRedece对应的是mapper和reducer)来执行任务。这些executor都是一个JVM进程,既然如此,那么启动一个JVM进程必然需要用到至少一个jar包,那这些jar包是从哪里来的呢?此时就用到了staging 目录(有人把staging翻译为舞台目录,这也有一定的含义,提交作业,就要登上集群这个舞台了)了。提交作业的时候,会把相关的jar包和配置信息都上传到这个staging目录下,然后在启动executor之前,会从这里将这些信息下载到计算节点本地。

MapReduce作业Staging的配置

  • yarn.app.mapreduce.am.staging-dir:提交mapreduce作业的staging目录,默认是/tmp/hadoop-yarn/staging
  • yarn.app.mapreduce.am.staging-dir.erasurecoding.enabled:staging目录下的文件是否使用纠删码方式存储,默认false,这可以在提交作业时指定
  • mapreduce.client.submit.file.replication:提交到staging目录下的文件的副本数,默认是10
  • mapreduce.job.split.metainfo.maxsize:split元数据信息文件的最大大小,默认10000000,超过该大小AppMaster将不会再读取。设置为-1,则表示不限制该文件的大小。这个文件通常不会很大,一般也不会去单独设置

示例

下面从一个实际的MR作业来看一下stageing目录中的内容,可以看到文件job.jar和job.split以及libjars目录中的文件副本数都是10,这个10就是由配置项mapreduce.client.submit.file.replication指定的
在这里插入图片描述
下面通过提交一个测试作业验证一下这个配置项,指定mapreduce.client.submit.file.replication为12
在这里插入图片描述
作业提交后,查看对应的staging 目录文件,如下,说明配置参数生效了
在这里插入图片描述
最后解释一下这些文件的副本为什么是10呢,难道3副本还不能满足数据安全的要求吗?这里其实涉及到MR作业运行时的一个步骤就是资源本地化,本文开头已经介绍过staging目录的作用了,而比如一个MR作业的mapper有几百几千个的时候,那么就意味着会有上千的客户端会同时下载这个jar包,此时将这个jar包的副本数设置的大一点可以提高资源本地化的效率,而反之如果只是一个很小的MR作业,这么高的副本数就是浪费了。这也侧面说明了MR的设计初衷就是面向大规模数据的。

Spark 作业Staging目录的配置

下面是spark on yarn模式下的配置

  • spark.yarn.submit.file.replication:提交作业时上传到HDFS相关文件的副本数,默认是HDFS的默认副本数,通常是3
  • spark.yarn.stagingDir:提交作业时的staging目录,默认是用户的家目录
  • spark.yarn.preserve.staging.files:在提交作业时的staged 文件(Spark jar, app jar, distributed cache files) 在作业结束时是否保留,默认false,也就是作业执行结束后进行删除

示例

下面从一个实际的Spark作业来看一下stageing目录中的内容
在这里插入图片描述
可以看到,和MR作业的Staging目录相比,spark并未将spark的jar包设置为10副本;而且把配置信息和jar包分别进行了压缩,结构相对简单一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值