1、需求场景web
随着业务数据的快速增加,物理磁盘剩余空间告警,须要将数据备份从3份修改成1份,从而快速腾出可用磁盘容量。shell
2、解决方案负载均衡
1. 修改hdfs的副本数oop
Hbase 的数据是存储在 hdfs 上的,Hbase的副本数是默认读取hdfs的配置进行副本备份的,因此须要修改hdfs上的副本数据。spa
2.删除重复数据xml
修改hdfs-site.xml的副本数,只能对之后的数据有效,不能修改已经存储的文件备份数,因此须要删除多余的数据。blog
3.负载均衡hadoop
能够增长新的存储节点,而且执行负载均衡策略。将数据均匀的分布到多个数据节点中,最大化的利用数据磁盘。ci
4.开启hbase表压缩it
Hbase数据采用的列式存储,占用空间较大,指定压缩方式能够很好的减小磁盘的占用。
3、操做步骤
1.修改hdfs副本数
a) 经过CDH的web界面修改:
b) 经过hdfs-site.xml修改
2.删除重复数据
该问题网上有不少回答,我这里使用的强制修改备份的方法。
//将HDFS上的数据仅保留一份备份 hadoop fs -setrep -R 1 /
// HDFS会为每个用户建立一个回收站目录:/user/用户名/.Trash/,每个被用户经过Shell删除的文件/目录,在系统回收站中都一个周期,也就是当系统回收站中的文件/目录在一段时间以后没有被用户回复的话,HDFS就会自动的把这个文件/目录完全删除,以后,用户就永远也找不回这个文件/目录了。若是磁盘占用依旧很大,须要去回收厂手动删除。 |
3.负载均衡
修改存储节点后,使用hdfs用户shell命令执行:hdfs balancer
4.对现有表修改压缩方式
disable 'testcompression' //首先将表下线 alter 'testcompression', NAME => 'f1', COMPRESSION => 'SNAPPY' //修改表属性,指定压缩方式为SNAPPY enable 'testcompression' //启用表 desc 'testcompression' //验证是否已启用压缩放肆 major_compact 'testcompression' //执行大合并 |
4、查看结果