对于datanode配置预留空间的方法 为:在hdfs-site.xml添加如下配置
<property>
<name>dfs.datanode.du.reserved</name>
<value>10737418240</value>
</property>
dfs.datanode.du.reserved的单位为字节,上面的预留空间为10G,预留30G:32212254720
预留20G:21474836480
预留空间可能遇到的问题:预留了10G,但是该节点磁盘空间去没有真正剩余,而是一直会放数据,原因可能是如下方面:
通过 df -h 查看容量显示如下:
Filesystem Size Used Avail Use% Mounted on
/dev/sda4 243G 200G 31G 87% /data
注:说明总容量为243G,使用了200G,可用31G 这里有个问题,使用量+可用量!=总容量,少掉了12G,这就是问题所在。
dfs.datanode.du.reserved设置为10G的话
通过hadoop dfsadmin -report 查看显示如下
Configured Capacity: 228260941824 (232.58 GB)
DFS Used: 208414818078 (194.10 GB)
Non DFS Used: 0 (0 B)
DFS Remaining: 19846123746 (38.48 GB)
Configured Capacity显示的dfs.data.dir指定的目录空间总容量大小-dfs.datanode.du.reserved的容量,
如果像之前设置 dfs.datanode.du.reserved为10G的话,Configured Capacity为:232.58 GB,DFS Remaining则为38.48G,
但实际/dev/sda4 可用空间才只有31G,所以有数据的话会一直会存入该节点,直到放满。
解决方法:将dfs.datanode.du.reserved设置更大。目前设置为30G
这样,hadoop dfsadmin -report 查看
Configured Capacity: 228260941824 (212.58 GB)
DFS Used: 208414818078 (194.10 GB)
Non DFS Used: 0 (0 B)
DFS Remaining: 19846123746 (18.48 GB)
dfs可用空间18.48<31G,所以当dfs全部用完,磁盘/dev/sda4还是有13G空间空闲,达到要的效果!
原文地址:https://www.cnblogs.com/felixzh/p/9203251.html