关于dfs.datanode.du.reserved参数的一个小坑

dfs.datanode.du.reserved是什么鬼

dfs.datanode.du.reserved表示的是datanode在对磁盘写数据的时候,保留多少空间给非HDFS使用。这个参数主要是为了防止磁盘空间被写满导致的HDFS异常。

最近遇到一个HDFS磁盘空间写满的问题,原因也很简单,就是因为dfs.datanode.du.reserved这个参数没有考虑到操作系统保留块空间的问题。

比如:

一块4T的盘,格式化完了以后剩下3.6T,去掉5%的系统保留空间,就剩下3.4T。

但是hbase是按照磁盘的总空间3.6T来算写入的,此时可以写入的实际只有3.4T。这里总空间和实际空间的差值就是0.2T,也就是200G。

而此时如果dfs.datanode.du.reserved设置为小于200G,那么hbase就存在空间写满的风险。

因此,我们在配置HBase的时候,需要根据系统实际使用空间来配置dfs.datanode.du.reserved参数的大小。

解决办法:

1、将系统保留空间调整小(总空间-系统保留空间

tune2fs  -m 1 /dev/diskname

    备注:系统默认保留5%的空间,也就是tune2fs  -m 5 /dev/diskname。上面的命令即保留为1%

2、将dfs.datanode.du.reserved调大

最佳实践:

因为HDFS一般使用的数据盘都是T级别的硬盘,系统默认保留5%其实是很浪费的。因此最好的解决办法是同时进行1、2两种方法的调整。

推荐系统保留空间为2%,并将dfs.datanode.du.reserved做调整。

比如我们的盘是4T,格式化后可用空间为3.6T,系统保留空间为75G左右,dfs.datanode.du.reserved设置为200G

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先,我们在使用前先看看HDFS是什麽?这将有助于我们是以后的运维使用和故障排除思路的获得。 HDFS采用mast...
    W_Bousquet阅读 4,255评论 0 2
  • 原文 介绍 Hadoop分布式文件系统( HDFS )是一种分布式文件系统,设计用于在商品硬件上运行。它与现有...
    公子小水阅读 1,168评论 0 0
  • 内裤色系太乱 女士内裤货品不足 袜子货品不足 间距大于三指,间距不均匀
    兮fan阅读 343评论 0 0
  • 131:你可能连杯子都要换掉 心理学也提到我们对世界的理解和判断基于我们的经历和感受,尤其是小时候的经历对我们更是...
    寒冬之城阅读 177评论 0 0
  • 我喜欢魔方。上次亲子活动的时候,我转出了一面,得奖了。我的同学小皮也参加了比赛,但他不会转魔方,所以没得奖...
    九五自尊阅读 208评论 0 1