Hadoop|Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查
org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查
解决“/dev/mapper/centos-root 100%”满了, org.apache.hadoop.util.DiskChecker$DiskErrorException Could not find any valid local directory for....
错误信息:如下所示
2021-12-09 00:40:58,559 INFO mapreduce.Job: Task Id : attempt_1638980473129_0001_m_000000_0, Status : FAILED
Error: org.apache.hadoop.util.DiskChecker$DiskErrorException: Could not find any valid local directory for output/attempt_1638980473129_0001_m_000000_0/file.out
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:447)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:152)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator.java:133)
at org.apache.hadoop.mapred.YarnOutputFiles.getOutputFileForWrite(YarnOutputFiles.java:82)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.mergeParts(MapTask.java:1881)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flush(MapTask.java:1527)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.close(MapTask.java:735)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:805)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:168)
搜了很多教程发现要么说的不是一个具体错误,要么没有用。最后发现确实是因为虚拟机没有空间再去输出中间文件了。网上如果说需要修改各模块tmp文件路径的也是有道理的,因为默认会存到/tmp下,这个再虚拟机分配的时候可能会很小。
排查思路 记住df -h这个命令不断的查下去 查到存缓存的路径为止:【Hadoop|Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException问题等价解决linux磁盘不足解决问题排查】
cd /
sudo du -h -x --max-depth=1
:查这层文件夹各自总大小文章图片
可以看到这里的
/opt
有37G大小已经不对劲了,而我的hadoop是装在这个opt下的,所以继续安装上述深入:最终定位到:
/opt/module/hadoop-3.1.3/data/nm-local-dir/usercache/hadoop/appcache/application_1638980473129_0001
这个文件夹下占了几十个G的目录:ls查看一下。。。。。结果。。。
文章图片
rm -rf *
命令清除当前目录下的所有out文件即可。如果有集群的话也要清理一下。文章图片
文章图片
舒服了。。
推荐阅读
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Hadoop|Hadoop MapReduce Job提交后的交互日志
- 安装ambari|安装ambari Hadoop--0(更新中...)
- #SQL|#SQL on Hadoop技术分析
- hadoop三个配置文件的参数含义说明(转)
- 搭建大数据三节点(Hadoop、Hbase、Zookeeper、Kafka、Hive)环境(含配置文件参考)
- 【Hadoop学起来】Linux配置$HADOOP_HOME/etc/hadoop/hadoop-env.sh时找不到JAVA_HOME?
- hadoop
- 【教程】手把手教你如何搭建Hadoop单机伪集群
- 大数据|hadoop安装