dfs.datanode.du.reserved 预留空间不生效的问题

简介: 生产环境(cdh5.5.1)遇到一个问题:已经设置 dfs.datanode.du.reserved预留空间为20G,但是磁盘仍然被写满了。当挂载磁盘作为datanode的存储空间,如果磁盘大小为2000G,使用df -h 显示:总磁盘大小2000G,使用1930G,剩余40G,就会发现:2000G -(1930G+40G)= 30G,还差了30G空间。

生产环境(cdh5.5.1)遇到一个问题:已经设置 dfs.datanode.du.reserved预留空间为20G,但是磁盘仍然被写满了。

当挂载磁盘作为datanode的存储空间,如果磁盘大小为2000G,

使用df -h 显示:总磁盘大小2000G,使用1930G,剩余40G,就会发现:2000G -(1930G+40G)= 30G,还差了30G空间。

就是因为这30G空间的问题导致你磁盘写满,如果你配置datanode hdfs-site.xml里的dfs.datanode.du.reserved小于30G的话,而我们设置的是20G,所以磁盘就被写满 了,预留空间就没有起到实际作用

[解决办法]

就是设置hadoop dfs.datanode.du.reserved的值 = 总磁盘大小 - (使用的空间 + 剩余空间 )+ 设置的预留空间。

比如: 
在上面的基础上你设置预留空间为20G,那么dfs.datanode.du.reserved就可以设置为: 
2000G -(1930G + 40G) + 20G = 50G。


终其DataNode代码,发现应该是这样:

  1. long getAvailable() throws IOException {  
  2.        long remaining = getCapacity()-getDfsUsed();  
  3. -      long available = usage.getAvailable();  
  4. +      long available = usage.getAvailable() - reserved;  
  5.        if (remaining>available) {  
  6.          remaining = available;  
  7.        }  
  8.       return (remaining > 0) ? remaining : 0;  
  9. }

目录
相关文章
|
SQL Java 数据库连接
Apache Doris 支持 Arrow Flight SQL 协议,数据传输效率实现百倍飞跃
近年来,随着数据科学、数据湖分析等场景的兴起,对数据读取和传输速度提出更高的要求。而 JDBC/ODBC 作为与数据库交互的主流标准,在应对大规模数据读取和传输时显得力不从心,无法满足高性能、低延迟等数据处理需求。为提供更高效的数据传输方案,Apache Doris 在 2.1 版本中基于 Arrow Flight SQL 协议实现了高速数据传输链路,使得数据传输性能实现百倍飞跃。
811 0
ElasticSearch Task命令说明
ElasticSearch task相关命令,以及返回信息解读。
5700 0
ElasticSearch Task命令说明
|
分布式计算 资源调度 Hadoop
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
257378 0
|
关系型数据库 定位技术 Python
geopandas中拓扑错误的发现诊断与修复
geopandas中拓扑错误的发现诊断与修复
321 6
|
存储 Kubernetes 算法
在K8S中,etcd 及其特点?
在K8S中,etcd 及其特点?
|
存储 分布式计算 Hadoop
深入浅出:Hadoop的start-balancer.sh与hdfs balancer分布式数据均衡
Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,比如集群中添加新的数据节点。当HDFS出现不平衡状况的时候,将引发很多问题,比如:1、MR程序无法很好地利用本地计算的优势2、机器之间无法达到更好的网络带宽使用率,机器磁盘无法利用等等。
3861 0
|
安全 数据管理 Shell
Linux命令su详解
`su`命令在Linux中用于切换用户身份,常用于权限管理。它允许用户无须注销当前会话就切换到另一个用户,尤其是root。`su`有多种选项,如`-`或`--login`加载目标用户环境,`-c`执行指定命令后返回。使用时需注意权限安全,建议用`sudo`以减少风险。通过限制`/etc/pam.d/su`可加强访问控制。`su`在系统维护和数据管理中扮演角色,但不直接处理数据。
|
调度 Apache
Apache Doris tablet 副本修复的原理、流程及问题定位
Apache Doris tablet 副本修复的原理、流程及问题定位
898 0
|
缓存 分布式数据库 API
hbase查询速度很慢
hbase查询速度很慢
889 1