Hive数据备份和恢复

本文说明如何通过把Hive中的数据备份到磁盘中,并从磁盘中恢复到Hive中。

1,把Hive中的表数据备份到磁盘中。
备份示例:

use GRC_BIGDATA;
insert overwrite local directory '/root/grc_bigdata/backup/src_companyinfo' ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE  select * from src_companyinfo;

以上语句说明,把src_companyinfo表中的数据以‘|’为分隔符号,并备份到“/root/grc_bigdata/backup/src_companyinfo”目录中。
备份之后的目录结构如下:

[root@cdh-node3 src_companyinfo]# ll
总用量 11580
-rw-r--r-- 1 root root 8482661 11月 11 19:38 000000_0
-rw-r--r-- 1 root root 2261124 11月 11 19:38 000001_0
-rw-r--r-- 1 root root 1109324 11月 11 19:38 000002_0

在Hue中浏览的src_xtbillmx2013_st的目录结构如下:
Hive数据备份和恢复_第1张图片

从以上结果可以看出,数据文件输出的个数与表在Hive中存储的文件个数不一定一致。

2,把磁盘中的文件恢复到Hive中。
先在hive中执行建表脚本:

CREATE TABLE IF NOT EXISTS src_xtbillmx2013_st 
(
twbmoneyf          double,                                      
cxbz                    double,                                      
......                      
paixu                   double,                                      
ywlxid                  string,                                      
swbz                    double
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE;

然后在Hive中执行如下导入命令:

use GRC_BIGDATA;
LOAD DATA LOCAL INPATH '/root/grc_bigdata/backup/src_xtbill2013_st' OVERWRITE INTO TABLE src_xtbill2013_st;

3,在Hive中备份46个表、一共552GB的数据到Linux文件系统,一共耗时55386 秒,大概15.4个小时。
从Linux文件系统中恢复以上数据,耗时41217秒,大概11.4个小时。

你可能感兴趣的:(Hive)