distcp解决HDFS部分Datanode空间占用率高的问题

1.确定要distcp的目录

Hadoop集群一般是逐步扩容的, 对于老的静态数据就会集中存储在老的Datanode上,导致老的Datanode的空间占用率很高。
找出陈旧的静态数据目录使用distcp命令拷贝到新目录是一种“ 安全 ”的做法。
找出陈旧的静态数据目录的标准:
目录创建时间和里面内容的最后修改时间;
业务方确认,discp中间避免导入;
大小适中,尽量在一个时间窗口(1-7天)可以结束;

2.这里选择如下路径

3.开始distcp

su - hdfs
nohup hadoop distcp hdfs://getui-bi-storage/data_result/app hdfs://getui-bi-storage/data_result/app_new &

4.distcp监控

在yarn的任务列表可以查看:
MR任务具体执行情况:

5.distcp stop方法

方式一:CDH页面
方式二:命令行
yarn application -list找出applicationid
yarn application -kill application_1507729982008_9645
即可。

6.distcp结束后数据校验

6.1 比较目录大小

6.2 读取一个文件

hadoop fs -copyToLocal /data_result/app_new/actived/20151231/part-r-00188.gz /tmp
gunzip part-r-00188.gz
more part-r-00188

6.3 检验文件的权限和属主

7.性能分析

移动数据:63.8T 191.5T
耗时: 39hrs, 13mins, 43sec
移动数据速度(GB/h): 1.6T * 3 = 4.8T

balancer每小时移动数据200GB左右,distcp 比balancer快20倍左右。

8.删除废弃数据

hadoop fs -mv hdfs://getui-bi-storage/data_result/app hdfs://getui-bi-storage/data_result/app_old    # 修改原来目录的文件名
hadoop fs -mv hdfs://getui-bi-storage/data_result/app_new hdfs://getui-bi-storage/data_result/app  # distcp之后的目录替换原来的目录
hadoop fs -rm -R hdfs://getui-bi-storage/data_result/app_old      # 删除老的文件目录


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值