HBase数据备份

来源:互联网 发布:苹果版手机淘宝 编辑:程序博客网 时间:2024/05/01 10:24

在使用hbase时,为了防止数据的丢失,必须对数据进行备份;

Hbase数据数据备份按状态来备份的话有两种形式:离线备份和在线备份

现在我们采用在线备份中的一种:

(1)首先进入$HBASE_HOME目录,比如我们HBASE_HOME目录是/usr/local/hbase

        执行命令  cd /usr/local/hbase

(2)执行命令 bin/hbase   org.apache.hadoop.hbase.mapreduce.Export  image1  hfds://ns1/data/imageCopy

           命令解析:  org.apache.hadoop.hbase.mapreduce.Export     引用该类来执行数据的导出

                                            image      要备份hbase里的表

                          hfds://ns1/data/imageCopy    表示存储到hadoop文件存储系统的/data/imageCopy

                           ns1    这是由于hadoop采用了热备,所以ns1关联hadoop的两个namenode节点,

                                     如果配置的是单节点namenode,则这个值应该是具体的主机名或者ip地址


(3)当hbase的数据丢失的时候,可以把在hadoop里的备份重新导入hbase,

     备份数据拷贝到hbase的时候,hbase表的名字可以不相同,但是表的结构必须相同,比如我备份的数据的表的格式是  只有一个列族data

        1)先执行以下命令进入hbase操作

    /usr/local/hbase/bin/hbase  shell

 

    
[root@yitian1 ~]# /usr/local/hbase/bin/hbase shell
2016-03-22 15:30:53,409 INFO  [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.96.2-hadoop2, r1581096, Mon Mar 24 16:03:18 PDT 2014


    2)执行以下命令创建一个hbase表

       create   'imageCopy' ,  'data'

      命令解析:'imageCopy'  表示要创建的表名

                         'data'  表示要创建的表的列族名字

     


 


(4)把数据导入hbase的imageCopy表

     退出hbase  shell环境

     执行命令   quit


     导入数据执行以下命令

    /usr/local/hbase/bin/hbase    org.apache.hadoop.hbase.mapreduce.Import     imageCopy   hdfs://ns1/data/image1

    命令解析:

         imageCopy表示要把数据导入的表

        hdfs://ns1/data/image1  表示hadoop存储的数据源


     以下是成功执行数据导入的部分信息:



 

(5)进入hbase的shell,通过执行scan  'imageCopy'命令来查看是否成功导入数据

    

     


  




 

 

0 0
原创粉丝点击