Hive数据备份和恢复
本文说明如何通过把Hive中的数据备份到磁盘中,并从磁盘中恢复到Hive中。
1,把Hive中的表数据备份到磁盘中。
备份示例:
use GRC_BIGDATA;insert overwrite local directory '/root/grc_bigdata/backup/src_companyinfo' ROWFORMAT DELIMITED FIELDS TERMINATEDBY'|'STOREDASTEXTFILEselect*fromsrc_companyinfo;
以上语句说明,把src_companyinfo表中的数据以‘|’为分隔符号,并备份到“/root/grc_bigdata/backup/src_companyinfo”目录中。
备份之后的目录结构如下:
[root@cdh-node3src_companyinfo]#ll 总用量
11580-rw-r--r--1 root root 8482661 11月11 19:38 00
0000_0-rw-r--r--1 root root 2261124 11月11 19:38 00
0001_0-rw-r--r--1 root root 1109324 11月11 19:38 000002_0
在Hue中浏览的src_xtbillmx2013_st的目录结构如下:
从以上结果可以看出,数据文件输出的个数与表在Hive中存储的文件个数不一定一致。
2,把磁盘中的文件恢复到Hive中。
先在hive中执行建表脚本:
CREATE TABLE IFNOT EXIST Ssrc_xtbillmx2013_st (twbmoneyfdouble, cxbzdouble, paixudouble, ywlxid string, swbzdouble)ROWFORMAT DELIMITED FIELDS TERMINATEDBY'|'STOREDASTEXTFILE;
然后在Hive中执行如下导入命令:
use GRC_BIGDATA;LOAD DATA LOCALINPATH'/root/grc_bigdata/backup/src_xtbill2013_st'OVERWRITEINTOTABLEsrc_xtbill2013_st;
3,在Hive中备份46个表、一共552GB的数据到Linux文件系统,一共耗时55386 秒,大概15.4个小时。
从Linux文件系统中恢复以上数据,耗时41217秒,大概11.4个小时。