spark提交jar包执行磁盘空间不足

本文介绍了两种解决YARN缓存问题的方法。方式一详细阐述了如何手动清理开发测试环境中Spark作业产生的缓存,包括查看文件夹占用、清空文件夹、关闭安全模式和重新提交作业的步骤。方式二则针对生产环境,通过配置`yarn.nodemanager.local-dirs`、`yarn.nodemanager.localizer.cache.target-size-mb`和`yarn.nodemanager.localizer.cache.cleanup.interval-ms`三个参数,实现自动管理并限制nodemanager的缓存大小,以避免缓存过量占用磁盘空间。

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

方式1、
注意:仅限,开发测试环境
删除提交产生的缓存
1、先使用如下命令查看文件夹占用情况

du -h -x --max-depth=1 /文件夹名称

2、切换到如下文件夹

/usr/local/src/app/tmp/usercache/root/filecache

3、清空文件夹下内容

rm ./*

4、接着在执行如下命令关闭安全模式

hdfs dfsadmin -safemode leave

5、执行上传命令

spark-submit --class org.example.logshandler.LogsHandlerYarn \
    --master yarn \
    --driver-memory 1g \
    --executor-memory 1g \
    --executor-cores 1 \
    /usr/local/src/app/SparkTest-1.0-SNAPSHOT.jar \
    hdfs://hadoop0001:8020/part-00000-f777d89d-9747-4f38-9c0a-d9c58c0dde59-c000.snappy.parquet

方式二、根本原因是由于yarn在执行任务完成没有删除缓存导致的,我们在yarn-site.xml中设置参数。可用于生产环境

<property>
	<name>yarn.nodemanager.local-dirs</name>
	<value>/tmp/hadoop/nodemanager</value>
</property>
<property>
	<name>yarn.nodemanager.localizer.cache.target-size-mb</name>
	<value>1024</value>
</property>
<property>
	<name>yarn.nodemanager.localizer.cache.cleanup.interval-ms</name>
	<value>1800000</value>
</property>

2.1、yarn.nodemanager.local-dirs: 这个目录是nodemanager上的作业中间数据存放路径。推荐配置多个盘上的多个路径,从而分散作业执行中的磁盘IO压力。

2.2、yarn.nodemanager.localizer.cache.target-size-mb:配置nodemanager上的缓存目录的最大限度。nodemanager上有一个deletion server服务,会定期检测,如果yarn.nodemanager.local-dirs中配置的目录大小(如果配置了多个,则计算多个目录的总大小)是否超过了这里设置的最大限度值。如果超过了,就删除一些已经执行完的​​Container​​的缓存数据。

因为spark提交作业后遗留在nodemanager上的jar包就在yarn.nodemanager.local-dirs下面,所以只要这里配置合适的大小值。那么nodemanager上的deletion server是会自动检测并保证目录总大小的。

2.3、yarn.nodemanager.localizer.cache.cleanup.interval-ms: deletion server多长时间做一次检测,并且清除缓存目录直到目录大小低于target-size-mb的配置。

通过上面这三个量的配置,nodemanager会确保本地的缓存数据总量在target-size-mb之下,也就是超过了的话,之前的spark的jar包就会被删除。所以我们就不需要再担心nodemanager节点上的spark jar包缓存问题了。target-size-mb的默认值是10G,这个值当然可以根据你的实际情况进行调整。

一定注意
配置的yarn定时清除缓存一定是配置的
yarn.nodemanager.local-dirs配置参数中/tmp/hadoop/nodemanager的文件夹目录大小
内部的文件夹列表:
/tmp/hadoop/nodemanager/nmPrivate
/tmp/hadoop/nodemanager/filecache
/tmp/hadoop/nodemanager/usercache

以上这三个文件夹大小总和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunnyboy_4

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值