hbase在线平滑迁移region数据

hbase regionserver 下线,做数据迁移。 这个方法可以在线上平滑迁移。

hbase 版本: 1.2.4

####n首先 关闭 hbase 的 balance

1
hbase(main)> balance_switch false

将新的regionserver节点上线

1
hbase-daemon.sh start regionserver

之后就可以迁移数据了。

到新的region server上执行 下面命令。
使用hbase自带的rb脚本,在hbase bin目录下面
unload:转移rs上的region;load:将所有region转移到此rs

1
hbase org.jruby.Main ${HBASE_HOME}/bin/region_mover.rb unload  regionserver00.hostname.com

  • 在需要迁移到的机器上执行, 如要将regionserver00.hostname.com上的数据迁移到regionserver03.hostname.com机器上, 那么就在regionserver03.hostname.com机器上执行命令,hostname写regionserver00.hostname.com

等待任务完成。

之后就可以把数据迁移走的节点下线了

1
hbase-daemon.sh stop regionserver

最后在开启hbase的balance

1
hbase(main)> balance_switch true

这样就完成了数据迁移。 之后需要的就是更新同步hbase 配置文件中的regionservers 文件。

感谢您的支持!