我有一个包含4个节点的集群。他们每个人都将dfs.datanode.du.reserved
设置为5000000000
。
我的印象是dfs.datanode.du.reserved
是每卷,但似乎不是。现在我在所有节点上的音量几乎都是100%已满,而且我很卡住了。
如何告诉Hadoop在每个卷上保留一些空闲空间?我目前无法再启动集群,因为有些卷空间不足。从namenode登录master:
2015-01-12 11:29:04,374 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/hduser/hadoop-2.4.1/hdfs/namenode/in_use.lock acquired by nodename 12718@liikennedata.novalocal
2015-01-12 11:29:04,540 ERROR org.apache.hadoop.hdfs.server.common.Storage: Failed to acquire lock on /home/hduser/hadoop-2.4.1/hdfs/d-add3/name/in_use.lock. If this storage directory is mounted via NFS, ensure that the appropriate nfs lock services are running.
java.io.IOException: No space left on device
其他人也曾问过,但我还没有找到解决方案(参考:https://issues.apache.org/jira/browse/HDFS-1564)
我在Ubuntus上使用Hadoop 2.4.1。我每隔一段时间将数据附加到HDFS中的文件 - 当前没有正在运行的作业。
这是主节点上df的输出。与其他节点类似。
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 123853388 117620668 0 100% /
udev 4078456 8 4078448 1% /dev
tmpfs 817608 280 817328 1% /run
none 5120 0 5120 0% /run/lock
none 4088024 0 4088024 0% /run/shm
/dev/vdb 103081248 97821976 8 100% /home/hduser/hadoop-2.4.1/hdfs/d-add3
/dev/vdc 103081248 82327812 15494172 85% /home/hduser/hadoop-2.4.1/hdfs/d-add4
由于