hive的数据导入导出,备份恢复

加载HDFS文件数据到表:

LOAD DATA INPATH "hdfs_source_path" OVERWRITE INTO TABLE tbl_nm;

加载本地文件数据到表:

LOAD DATA LOACL INPATH "loacl_source_path" OVERWRITE INTO TABLE tbl_nm;

将数据导出至本地路径下:

insert overwrite local directory '/localpath/to/stoage/' select * from tbl_nm;

将数据导出至本地路径下,可以指定存储格式与分隔符等:

insert overwrite local directory '/localpath/to/stoage/' row format delimited fields terminated by ','  select * from tbl_nm;

Export和Import:

hive自带了数据的备份和恢复命令,不止数据,包括表结构也可以一同导出:

这里的path是HDFS的路径,我这里将表导出然后删除之后再恢复:

Export:

export table tab_nm to '/hdfs_path/to/storage';

再看一下这个目录下是什么样子的:

可以看到导出后的目录下,有一个_metadata元数据文件存储hive表的元数据以及一个data目录存储hive表数据。

执行export命令就是将表结构存储在_metadata文件,并且直接将hive数据文件复制到备份目录。

Import:

执行import命令,选择刚才导出的hdfs目录即可,注意这里的新表原来是不存在的,在import的时候会根据_metadata文件里的信息自动建表,方便做hive表的备份恢复或者迁移操作。

import table tab_nm from '/hdfs_path/to/storage';

猜你喜欢

转载自blog.csdn.net/wsdc0521/article/details/102861722