在 Hive 中,“备份数据”通常包含两部分:元数据(Metadata)备份 和 实际数据(HDFS 数据)备份。下面按常见场景给你系统讲一下。
Hive 的表结构、分区信息、库信息都存在 元数据库(通常是 MySQL / PostgreSQL)。
以 MySQL 为例:
# 备份整个 Hive 元数据库
mysqldump -h metastore_host -u hive -p hive_metastore > hive_metastore_$(date +%F).sql
恢复:
mysql -u hive -p hive_metastore < hive_metastore_2026-01-21.sql
✅ 优点:最完整、最安全
✅ 适合:生产环境常规备份
Hive 表数据一般在 HDFS 上(如 /user/hive/warehouse)。
hdfs dfs -cp /user/hive/warehouse /backup/hive/warehouse_$(date +%F)
或跨集群:
hdfs dfs -distcp hdfs://clusterA/user/hive/warehouse hdfs://clusterB/backup/hive
Hive 自带逻辑备份方式:
-- 导出表
EXPORT TABLE db_name.table_name TO '/backup/hive/table_name';
-- 导入表
IMPORT TABLE db_name.table_name FROM '/backup/hive/table_name';
✅ 好处:
❌ 缺点:
CREATE TABLE db_name.table_bak
AS
SELECT * FROM db_name.table_name;
适合:
INSERT OVERWRITE TABLE db_name.table_bak
SELECT * FROM db_name.table_name;
EXPORT TABLE db_name.table_name PARTITION(dt='2026-01-21')
TO '/backup/hive/table_name/dt=2026-01-21';
或 HDFS 层:
hdfs dfs -cp /user/hive/warehouse/table_name/dt=2026-01-21 /backup/hive/
| 内容 | 推荐方式 |
|---|---|
| 元数据 | 定期 mysqldump / PG dump |
| 全量数据 | distcp 到备份集群 |
| 单表/分区 | EXPORT / IMPORT |
| 日常容灾 | HDFS Snapshot |
hdfs dfsadmin -allowSnapshot /user/hive/warehouse
hdfs dfs -createSnapshot /user/hive/warehouse snap_20260121
✅ 非常适合快速回滚
Hive 备份 = 元数据备份 + HDFS 数据备份
如果你能告诉我:
我可以给你一套可直接执行的备份脚本。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。