将A服务器的文件挂载到B服务器上,同时彻底删除HDFS上的文件来增加磁盘空间

硬盘挂载:将A服务器的文件挂载到B服务器上

场景:由于hdfs数据量过多,导致磁盘可用空间不足,需要删除过期的数据腾出空间,同时又要将被删除的数据进行备份处理,以免后期复用

需要删除的文件的hdfs目录:bin/hdfs dfs -ls /ibc/datalogs/apachelogs/archive/2018/201801*

删除的文件需要挂载备份到此目录下:/home/bigdata/mnt/backup

解释:

/ibc/datalogs/apachelogs/archive/2018/201801*  ---此目录为将要删除的hdfs文件目录

/home/bigdata/mnt/backup    --文件挂载的目录

1.首先在bigdata用户下,创建目录mnt/backup    -- 即为 /home/bigdata/mnt/backup

2.切换到root用户,cd /home/bigdata/mnt/backup目录后,输入mount 10.10.3.201:/vol/bd_backup .

解释:

10.10.3.201:/vol/bd_backup --即为B服务器的目录地址,也就是挂载的服务器地址目录

3.挂载完之后,输入命令 df -h

去验证是否已经挂载成功,以及实时的查看挂载情况,磁盘使用以及剩余量

 

4.由于使用的是root用户去挂载的,所以此时该目录 /home/bigdata/mnt/backup 所属用户以及用户组为root,下一步将mnt目录的用户或用户组权限改为nobody,同时赋予777权限,此时backup目录的权限依然是root

 

5.再次切换到bigdata用户下,切换到hdfs目录执行命令:

 bin/hdfs dfs -get /ibc/datalogs/apachelogs/archive/2018/201801* /home/bigdata/mnt/backup

此时控制台会打印“WARN hdfs.DFSClient: DFSInputStream has been closed already”,说明挂载备份已经开始了

 

6.这时切换到/home/bigdata/mnt/backup目录下,可以看到hdfs数据已经加载进来了

 

7.配置B服务器重启后,挂载的数据不会丢失,这里是将挂载的路径写进去,重启后自动加载

 

8.由于我们执行挂载操作的目的是为了清理A服务器上过期的文件,此时过期的文件是hdfs上的2018年1月到6月的日志数据,需要使用命令去删除:

 [bigdata]: bin/hdfs dfs -rm -r /ibc/datalogs/apachelogs/archive/2018/201801*

 [bigdata]: bin/hdfs dfs -rm -r /ibc/datalogs/apachelogs/archive/2018/201802*

 [bigdata]: bin/hdfs dfs -rm -r /ibc/datalogs/apachelogs/archive/2018/201803*

 [bigdata]: bin/hdfs dfs -rm -r /ibc/datalogs/apachelogs/archive/2018/201804*

 [bigdata]: bin/hdfs dfs -rm -r /ibc/datalogs/apachelogs/archive/2018/201805*

9.删除完成后,确认一下文件是否成功从磁盘上删除,可以去网页上查看一下节点信息,发现集群中的磁盘空间并没有增加,实际上我们删除的文件还存在磁盘上,只是数据存在回收站

 

10.进入回收站,找到删除的文件彻底从回收站移除

 bin/hdfs dfs -ls /user/bigdata/.Trash/191025092901/ibc/datalogs/apachelogs/archive

11.再次确认磁盘空间是否增加,发现集群中各服务器磁盘空间可用量增到90G左右,但是发现10.10.4.3这台服务器只有11.2G可用,此时还需做一下负载均衡操作

 

12.hdfs负载均衡,执行命令:sbin/start-balancer.sh -threshold 5

--此处的‘5’代表阈值 5%,意思就是每台机器的磁盘可用量相差在5%以内 

13.执行完之后再次查看确认,发现原先只有11G空间的服务器现在已经又70多G可用了

猜你喜欢

转载自www.cnblogs.com/jasontsui71/p/11750934.html