温馨提示×

linux hadoop如何备份数据

小樊
36
2026-08-25 01:17:34
栏目: 智能运维

在 Linux 环境下,Hadoop 数据备份常见做法取决于你是备份 HDFS 上的数据,还是Hadoop 集群的元数据/配置。下面按常见场景系统说明。


一、HDFS 数据备份(最常见)

✅ 方式 1:使用 distcp(官方推荐,跨集群/同集群)

distcp(Distributed Copy)是 Hadoop 自带的分布式拷贝工具,适合大规模数据备份。

1️⃣ 同集群备份(不同目录)

hadoop distcp hdfs://namenode:8020/source/path hdfs://namenode:8020/backup/path

2️⃣ 跨集群备份(最常用)

hadoop distcp hdfs://src-cluster:8020/data hdfs://dst-cluster:8020/backup/data

✅ 优点:

  • 并行复制,速度快
  • 支持增量(结合 -update
  • 生产环境首选

✅ 常用参数:

-update        # 增量同步
-overwrite     # 覆盖目标
-p             # 保留权限、时间等
-m 10          # 指定 map 数量

✅ 方式 2:HDFS 快照(Snapshot)

适合短时间、快速备份与恢复

1️⃣ 允许目录创建快照

hdfs dfsadmin -allowSnapshot /data

2️⃣ 创建快照

hdfs dfs -createSnapshot /data backup_2026_01_21

3️⃣ 查看快照

hdfs dfs -ls /data/.snapshot

4️⃣ 恢复数据

hdfs dfs -cp /data/.snapshot/backup_2026_01_21/file /data/

✅ 优点:

  • 秒级创建
  • 不占额外空间(仅记录差异)

❌ 缺点:

  • 不是真正的异地备份
  • 不适合长期归档

✅ 方式 3:直接拷贝到本地或远程服务器

适合小数据量

hdfs dfs -get /data /backup/local/

或结合 rsync

rsync -avz /backup/local/ user@backup-server:/backup/hadoop/

❌ 不适合 TB/PB 级别数据


✅ 方式 4:HDFS 数据导出到对象存储(云备份)

如 S3、OSS、MinIO

hadoop distcp hdfs://namenode:8020/data s3a://bucket/backup/

✅ 适合:

  • 异地容灾
  • 云迁移

二、Hadoop 元数据备份(非常重要)

✅ NameNode 元数据

路径一般在:

$HADOOP_HOME/data/dfs/name

手动备份:

cp -r dfs/name /backup/namenode-meta

自动备份(推荐):

  • 配置多个 dfs.namenode.name.dir
  • 使用 NFS 或远程目录

✅ 配置文件备份

$HADOOP_HOME/etc/hadoop/

建议备份:

  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml

三、HBase / Hive 数据备份(如适用)

HBase

hbase backup create full hdfs://backup/hbase

或:

hbase snapshot

Hive

  • 备份 warehouse 目录
  • 导出元数据(MySQL / PostgreSQL)

四、推荐备份策略(生产环境)

类型 推荐方式
HDFS 大数据 distcp
短期恢复 HDFS 快照
异地容灾 distcp → 远程 HDFS / S3
元数据 多目录 + 定期冷备
配置 Git / 定期打包

五、示例:完整备份方案

# 1. HDFS 数据
hadoop distcp -update hdfs://namenode:8020/db hdfs://backup-nn:8020/backup/db

# 2. NameNode 元数据
cp -r dfs/name /backup/meta/name-$(date +%F)

# 3. 配置
tar czf hadoop-conf-$(date +%F).tar.gz $HADOOP_HOME/etc/hadoop/

六、常见错误

❌ 只备份数据目录,不备份 NameNode 元数据
❌ 快照当长期备份
❌ distcp 使用单线程 cp


如果你愿意,可以告诉我:

  • ✅ Hadoop 版本
  • ✅ 是否跨集群
  • ✅ 数据规模(TB/PB)
  • ✅ 是否上云

我可以给你定制一套备份方案

0