2017-08-22 59 views
0

我有5台Linux机群。有3个数据节点和一个主站。现在,每个数据节点上大约有50%的hdfs存储可用。但我运行一个MapReduce工作,这是失败,每个系统df -h跟随误差Hadoop当有空间可用时,设备上没有剩余空间

2017-08-21 17:58:47,627 WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for blk_6835454799524976171_3615612 bad datanode[0] 10.11.1.42:50010 
2017-08-21 17:58:47,628 WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block blk_6835454799524976171_3615612 in pipeline 10.11.1.42:50010, 10.11.1.43:50010: bad datanode 10.11.1.42:50010 
2017-08-21 17:58:51,785 ERROR org.apache.hadoop.mapred.Child: Error in syncLogs: java.io.IOException: No space left on device 

虽然给出以下信息

Filesystem    Size Used Avail Use% Mounted on 
devtmpfs     5.9G  0 5.9G 0% /dev 
tmpfs     5.9G 84K 5.9G 1% /dev/shm 
tmpfs     5.9G 9.1M 5.9G 1% /run 
tmpfs     5.9G  0 5.9G 0% /sys/fs/cgroup 
/dev/mapper/centos-root 50G 6.8G 44G 14%/
/dev/sdb     1.8T 535G 1.2T 31% /mnt/11fd6fcc-1f87-4f1e-a53c-54cc7117759c 
/dev/mapper/centos-home 412G 155G 59M 100% /home 
/dev/sda1    494M 348M 147M 71% /boot 
tmpfs     1.2G 16K 1.2G 1% /run/user/42 
tmpfs     1.2G  0 1.2G 0% /run/user/1000 

与以上清楚地表明我的SDB dicsk(SDD)仅为31%使用但是centos-home是100%。 hadoop在mapreduce作业中使用本地文件系统时有足够的HDFS可用吗?哪里有问题?我在谷歌搜索,发现很多这样的问题,但没有人涵盖我的情况。

+0

您可以尝试释放'/ centos-home'中的一些空间,然后查看问题是否仍然存在。 – Shanky

+0

一些纱线日志存储在本地文件系统中。尝试释放'/ home'上的空间,这应该可以解决您的问题。 – daemon12

回答

0

syncLogs不使用HDFS,它如果你使用的MapReduce,寻找的hadoop.log.dir在/etc/hadoop/conf/taskcontroller.cfg值写入hadoop.log.dir这样 。

如果您使用的是YARN,请在yarn-site.xml中查找yarn.nodemanager.log-dirs的值。

其中一个应该指出你在哪里写你的日志。一旦你找出哪个文件系统存在问题,你可以从那里释放空间。

要记住的另一件事是,如果你已经用尽了你的磁盘上的inode,你可以得到“设备上没有剩余空间”。 df -i会显示这一点。

相关问题