记一次替换Hadoop/HDFS/HBASE的磁盘

记一次替换Hadoop/HDFS/HBASE的磁盘

1. 需求

近几个月业务增长很快,数据量也大幅增长,但是存储数据的磁盘眼看就要满载,因此需要迁移数据,并且要满足以下几个需求:

  1. 由于用的云服务器,磁盘是要收钱的,所以原来的盘腾出来不再续费,只用替换的是10p的云存储。
  2. 线上数据是不断流动的,不能停服务,不能影响线上数据的正常查询,动态替换。
  3. 数据一致性必须保证。

2. 方案

参考了(百度了)很多资料后的解决思路:
利用Hadoop副本的机制,集群的副本数是3,先停一个节点的datanode,因为其他两个副本都在其他节点上,不影响hadoop的正常运行,然后修改datanode的磁盘存储目录重启,最后进行副本补全,等副本100%补全后进行下一台节点的磁盘替换。

3. 测试环境实施

  1. 首先准备一块磁盘格式化后挂载到需要替换磁盘的机器上。
  2. 强制停止该节点datanode。kill -9 PID(datanode)
  3. 修改该节点Hadoop中的hdfs-site.xml配置文件,更换成新磁盘数据存储路径
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>file:///xdata/hadoop/hdfs/data</value>
</property>
  1. 启动datanode hadoop-daemon.sh start datanode
  2. 检验磁盘是否成功替换:http://ip:50070
    在这里插入图片描述
  3. 运行Hadoop sbin目录下start-balancer.sh脚本, 重新平衡数据,执行完后不断刷新上面的页面就会发现新磁盘的占用量不断上升。默认同步较慢,可以重新设置带宽提高迁移速度。
hdfs dfsadmin -setBalancerBandwidth 67108864
sbin/start-balancer.sh -threshold 5
  1. 通过观察http://ip:50070/fsck这个网页来确保副本是否同步完成,ip如果高可用是活跃节点的ip,如果访问页面打印的日志中某个目录被拒绝访问,就执行hdfs dfs -chmod -R 755 目录给这个目录授权,同步较慢,可以在start-balancer.sh后面添加相应的参数提高执行效率,直到网页的所有副本同步完成,即下图的平均副本数达到3。
    在这里插入图片描述
  2. 等上面数据恢复完后替换下一个节点的磁盘,重复上面的步骤。
  3. 待验证的问题,迁移过程能不能进行hdfs的正常读写使用,会不会造成hbase数据不一致。

4. 参考资料

从Hadoop集群中移除一块磁盘的操作

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿憨憨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值