在实际使用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拷贝到桌面之后大致是这样的

hbase导入文件 hbase上传文件_linux


四、进入目标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的导出导入操作已经完成。