Hbase数据库备份和恢复

使用 HBase本身提供的接口进行数据的导入和导出

操作步骤:

        1.##导出数据
        ### hdfs 用户执行如下命令 su hdfs 
        hbase org.apache.hadoop.hbase.mapreduce.Export TEST_Hbase  /tmp/TEST_Hbase
        hbase org.apache.hadoop.hbase.mapreduce.Export TEST_HbaseTest /tmp/TEST_HbaseTest

        2.### 将hdfs 文件取本地Linux
        hadoop fs -get /tmp/TEST_Hbase  /opt/
        hadoop fs -get /tmp/TEST_HbaseTest   /opt/

        --传输---

        03.### 将导出的Linux本地文件压缩发到HDFS文件系统下                 /tmp/ 路径下
            hadoop fs -put  /opt/TEST_HbaseTest   /tmp/TEST_HbaseTest
            hadoop fs -put  /opt/TEST_Hbase   /tmp/TEST_Hbase

        04.##建表--然后导入数据
        ###导入数据 格式./hbase org.apache.hadoop.hbase.mapreduce.Export 表名    数据文件位置
        hbase org.apache.hadoop.hbase.mapreduce.Import TEST_HbaseTest   /tmp/TEST_HbaseTest
        hbase org.apache.hadoop.hbase.mapreduce.Import TEST_Hbase   /tmp/TEST_Hbase

HBase数据的导入导出

            1、导出:
            hbase org.apache.hadoop.hbase.mapreduce.Driver export 表名 导出存放路径
            其中数据文件位置可为本地文件目录,也可以分布式文件系统hdfs的路径。
            当其为前者时,直接指定即可,也可以加前缀file:///
            而当其为后者时,必须明确指明hdfs的路径,例如hdfs://192.168.1.200:9000/path#HDFS连接 default.FS对应的地址
                fs.default.name
            2、导入:表必须事先创建完成
            hbase org.apache.hadoop.hbase.mapreduce.Driver import 表名 要导入的文件路径
            同上,其中数据文件位置可为本地文件目录,也可以分布式文件系统hdfs的路径。
            另外,该接口类还提供了一些其它的方法,例如表与表之间的数据拷贝,导入tsv文件等,可回车键查看
            /hbase org.apache.hadoop.hbase.mapreduce.Driver import "action:useraction" "hdfs://172.19.100.191:8020/tmp/TEST_USERACTIONLEVEL_SPARK/part-m-00000"

            3.说明
                Exportfs的参数为hdfs上的路径时,该路径必须不能已经存在,否则会报错
                Import的表必须是hbase中已经创建好的,否则会报错。
                Import操作必须是使用Export出的数据才可以,要不然会报错 not a SequenceFile

附录:

    01.打包--压缩--Linux命令
        tar
            压缩  gzip    bzip2   compress 
            压缩命名

            解压缩命令
                tar   -xzvf   TEST_USER.tar.gz

                        -x是解开
                        -z这个参数来调用gzip    -j:有bz2属性的 
                        -v:显示所有过程 
                        -f指定包的文件名--放在最后
        02.Hbase表操作
        查看数据导入是否成功
            hbase shell
            list
            describe 'TEST_HbaseTest'  
            scan "TEST_HbaseTest",{LIMIT=>5}
            count  "TEST_HbaseTest" , {INTERVAL => 1000, CACHE => 5000}

        清空表
            truncate   "TEST_HbaseTest"

        hbase删除表
                首先
                        disable 'lj_test',
                然后
                        drop 'lj_test'                      
        hbase创建表
            create 'TEST_HbaseTest',{NAME=>'info',COMPRESSION=>'SNAPPY'}

参考:

HBase数据的导入导出 http://blog.csdn.net/baolibin528/article/details/46064721

blogroll

social