HBase 使用HDFS底层文件来进行数据迁移
4、如果实在上传上去的文件属主属组又问题就用命令去更改hadoop的文件。3、把数据传到被恢复集群的HDFS上(需要切换hbase用户)根据region目录中的.regioninfo,生成meta表。上传的数据是没有 .regioninfo信息的,需要恢复。5、恢复HBase元数据( .regioninfo信息)上传数据前需要检查属主属组是否和HDFS上面一致。2、 把数据传到需要恢复数据的集群的
·
1、下载原来的hbase集群的表数据
这一步骤,先将hbase 表的数据从旧集群下载到本地
hbase 表的默认HDFS路径通常为 /hbase/data/<name_space>/<table_name>
hadoop fs -get /apps/hbase/data/data/test_media
2、 把数据传到需要恢复数据的集群的hbase
scp -r hbase/test_media $ip:/data1
3、把数据传到被恢复集群的HDFS上(需要切换hbase用户)
上传数据前需要检查属主属组是否和HDFS上面一致。
hadoop fs -copyFromLocal /data1/test_media /apps/hbase/data/data/
4、如果实在上传上去的文件属主属组又问题就用命令去更改hadoop的文件。
su hdfs
hadoop fs -chown -R hbase:hdfs /apps/hbase/data/data/
上传的数据是没有 .regioninfo信息的,需要恢复。
5、恢复HBase元数据( .regioninfo信息)
只做检查
su hbase
hbase hbck
根据region目录中的.regioninfo,生成meta表
hbase hbck -fixMeta
把meta表中记录的region分配给regionserver
hbase hbck -fixAssignments
修复.regioninfo文件
hbase hbck -fixHdfsOrphans
在检查
hbase hbck
总结:
最好将全部的文件都put到新集群后在修复元数据
新集群不需要提前创建同名表
.tabledesc 和 .tmp 也需要发送到新集群上,别忘记了
更多推荐
已为社区贡献1条内容
所有评论(0)