最近使用spark对ods明细表数据进行清洗,由于清洗的表数据量较大,加上集群只有5个节点,磁盘使用率也上去了,导致每次跑spark任务时,都会产生很多临时文件,是由于内存使用完了,就会把临时数据存到磁盘,导致磁盘使用率超过80%以上,spark任务就会报错,具体报错如下:
bash
java.io.IOException: No space left on device
java.io.FileNotFoundException: /hadoop/yarn/local/usercache/root/appcache/application_1694660329536_0016/blockmgr-081bea52-e592-4759-8d20-023ae4d85cfa/23/shuffle_0_2193_0.data.1b8c66cc-b32f-46c3-9213-410972743ea4 (No space left on device)
解决方法:
修改yarn的存储路径:
YARN NodeManager Local directories
挂载到磁盘比较大的路径下:
如挂载盘在home目录下,可以使用如下路径:
bash
/home/hadoop/yarn/local