您的位置:首页 > 其它

HBASE的备份策略(数据迁移)

2017-12-05 16:11 176 查看
1.利用hbase本身提供的接口执行导出表操作
导出操作:./hbase org.apache.hadoop.hbase.mapreduce.Driver export
表名"hdfs://192.168.x.x:9000/111"   本地路径或者hdfs的路径
导入操作:./hbase org.apache.hadoop.hbase.mapreduce.Driver import表名(已经建好的表)"hdfs://192.168.x.x:9000/111"   本地路径或者hdfs的路径
2.网络不通的情况下执行复制根目录操作
① 在源hbase停掉的情况下从源hbase中复制hbase数据库表到本地(该目录即hbase-site.xml中配置的hbase.rootdir)
在hadoop bin下        执行操作
./hadoop fs -get "hdfs://master:9000/hbase" /home/neokylin/222hbase,其中"hdfs://master:9000/hbase"
也可以是本地目录,本地目录时不加引号
② 远程复制到目标hbase的hbase.rootdir路径下
在目标主机上执行操作scp -r neokylin@192.168.x.x:/home/neokylin/
hbase  /opt/hbase(注意修改目标hbase中hbase-site.xml的hbase.rootdir)
③ 格式化hadoop,重启hadoop和hbase,在hbase
shell 下执行list
可以看到源hbase中所建的表,然而并不能浏览数据
④ 修复.meta,即表的元数据文件
    在hbase下执行操作
bin/hbase hbck -fixMeta
⑤ 重新分配数据到各RegionServer
在hbase下执行操作bin/hbase hbck -fixAssignments
注:实际在执行的过程中直接将hbase的根目录文件复制到迁移目标主机hbase.rootdir目录下,启动hadoop和hbase
,进入hbase shell,执行list、scan和命令即可看到表数据(几次尝试4、5可能不需要执行)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: