这里写目录标题
1. 引言
2. 迁移Hbase的表文件
2.1 将hbase集群1表table1文件拉取到临时硬盘中
hadoop fs -copyToLocal /hbase/data/test/table1 /mnt/hbase_table/table1
2.2 将临时硬盘挂载到hbase集群2所在的服务器中
2.3 将表table1文件上传到hbase集群2中
# 如果集群2中也有对应的表文件,那么要先删除掉,再上传
hadoop fs -rmr /hbase/data/test/table1
hadoop fs -copyFromLocal /mnt/hbase_table/table1 /hbase/data/test/table1
3. 生成元数据
在HBase中原本是提供了修复工具HBCK,但是在2.0之后修复命令均不可用,官方虽然在github提供了HBCK2,但是对于HBase版本需求为最低2.0.3,那么为啥我们2.1.0也不能用呢???? 这就有点坑了,2.1.0这个版本有点特殊,具体为啥不能使用的原因我还没有找到,但是确实是用不了!!!
3.1 下载解压工具
hbase-meta-repair-master.zip
百度网盘地址:链接:https://pan.baidu.com/s/1nvUJ-40qYhKMuCIuuQPHAQ
提取码:bskv
3.2 更改工具中相关配置文件
1)application.properties(我的路径是:D:\learn\bigdata\hbase\hbase迁移表\hbase-meta-repair-master\src\main\resources\application.properties)
更改配置(ps:注意修改成自己的主机名,路径的话如果没有修改过,默认是这个):
zookeeper.address=wcb0:2181,wcb1:2181,wcb2:2181
zookeeper.nodeParent=/hbase
hdfs.root.dir=hdfs://wcb0:8020/hbase
2)core-site.xml 和 hdfs-site.xml (我的路径是:D:\learn\bigdata\hbase\hbase迁移表\hbase-meta-repair-master\src\main\resources\core-site.xml & hdfs-site.xml)
更改配置:
将文件内容改为自己集群的core-site.xml & hdfs-site.xml
3)pom.xml (我的路径是:D:\learn\bigdata\hbase\hbase迁移表\hbase-meta-repair-master\hbase-meta-repair-master\pom.xml)
更改配置:
更改hbase.version为你的版本 (如我的是2.1.0)
3.3 编译
cmd->cd D:\learn\bigdata\hbase\hbase迁移表\hbase-meta-repair-master ->mvn clean package
3.4 将编译好的jar包上传到master节点hbase的家目录下
jar包位置:D:\learn\bigdata\hbase\hbase迁移表\hbase-meta-repair-master\target\hbase-meta-repair-0.0.1.jar
3.5 生成元数据
位置:
在hbase的家目录下执行 (我的是:/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hbase)
执行:java -jar -Drepair.tableName={scheme:tableName} hbase-meta-repair-0.0.1.jar
ps:
1>. scheme 我的为test因为我导入的表之前放在hdfs集群中/hbase/data/test/目录下
2>. tableName 为你要迁移的表名
3>. 执行命令时 {} 不要带入
3.6 重启hbase
执行shell命令:
hbase shell
list
此时发现你的表导入成功!!!
执行 scan 'scheme:表名'
ok 正式迁移成功!!!