导论
最近发现生产Hadoop集群磁盘利用率达到了60%
,数据增长速度超出了预期。针对以上问题,提出了两种方案:
1、减少数据的副本
2、增加磁盘或节点
本文主要记录修改数据备份<dfs.replication>的过程。
步骤
1、修改hdfs-site.xml
文件
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
2、重启hdfs
./stop-dfs.sh
./start-dfs.sh
`注意`:一般重启集群的流程是:stop集群-修改配置文件-start集群。
我们的应用场景是HBase一直有数据写入,如果按照上面的流程,可能会出现HBase连接超时,从而导致数据丢失。
所以,采用了先改配置,再重启集群的方式。
3、验证
注意
:上传到HDFS的数据,便只有两个备份了,该操作只针对后面新增的数据,而之前已存在的数据仍然是三个备份。
4、修改已存在数据的备份
命令格式: hdfs fs -setrep [-R] [-w] <numReplicas> <path>
操作举例: hdfs dfs -setrep -R -w 2 /hbase
参数说明:
- -R:作用于目录下所有子目录的数据(向后兼容)
- -w:等待副本复制完成
- -rep:numReplicas,修改后的备份数
- -path:需要修改备份的HDFS上的目录下
命令执行过程中,会比较耗时,也有可能会中断(原因暂时不明
),中断后可多试几次,该命令执行的过程中不会影响数据的写入。
5、通过命令查看副本数情况
执行命令:hdfs fsck /
有上面可以看出,数据备份由3变成了2.5,说明语句产生了效果。
网友评论