在实际使用Hbase的时候,我们经常会将生产环境的数据进行备份,或者将数据
拷贝到测试环境中,那么,如何进行进行Hbase表的数据备份呢?常用的方法有两种:
1)基于Hbase snapshot进行数据快速备份
2)基于Hbase提供的类对Hbase中某张表进行备份
本文仅围绕第二种方法进行展开。
主要步骤如下:
一、在HDFS中创建文件夹
hadoop fs -mkdir /bak_table
此步骤仅为创建一个存放Hbase表信息的容器,可忽略。
二、进入hbase bin目录下,将Hbase中表复制到HDFS中
hbase org.apache.hadoop.hbase.mapreduce.Export emp /bak_table/emp
此处,emp是Hbase中要导出的表名,/bak_table/emp是导出到HDFS中的位置。
三、进入hadoop bin目录下,将HDFS中的文件拷贝到本地linux路径
hadoop fs -get /bak_table/emp ~/
将文件通过Xftp拷贝到桌面之后大致是这样的
四、进入目标hadoop的bin目录下,将linux中的本地文件拷贝到HDFS中
hadoop fs -put ~/tables/emp /bak_table/
这里,~/tables是本地linux文件,/bak_table/是HDFS文件路径
五、进入hbase shell命令下,创建需要导入数据的表
create 'emp', 'personal data'
创建表时,至少需要指定一个列簇
六、将HDFS中的文件,导入到指定的Hbase表中
hbase org.apache.hadoop.hbase.mapreduce.Import emp /bak_table/emp
上述中,emp是Hbase中的表名,/bak_table/emp是HDFS文件路径
至此,Hbase的导出导入操作已经完成。