温馨提示×

如何备份Debian的Hadoop

小樊
33
2026-09-23 19:39:04
栏目: 智能运维

备份 Debian 上的 Hadoop 通常涉及 配置文件、元数据(NameNode)、数据本身以及可能的 Hive/调度相关组件。下面按「最常用、最安全」的方式给你一个完整思路。


一、先明确你备份什么

Hadoop 里需要关注的内容分三类:

  1. 配置文件(最重要、必备份)
    • /etc/hadoop/
    • /usr/local/hadoop/etc/hadoop/(取决于安装方式)
  2. HDFS 元数据(NameNode)
    • NameNode 的 dfs.namenode.name.dir
  3. HDFS 数据(可选)
    • DataNode 数据一般不单独备份(靠副本)
  4. 其他组件
    • Hive、HBase、YARN 状态(如有)

二、备份 Hadoop 配置文件(强烈建议)

# 停止 Hadoop(可选,但最安全)
stop-dfs.sh
stop-yarn.sh

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

✅ 建议:每天或每次配置变更后备份


三、备份 NameNode 元数据(核心)

1️⃣ 查看 NameNode 目录

hdfs getconf -confKey dfs.namenode.name.dir

示例输出:

file:///data/hadoop/dfs/name

2️⃣ 进入安全模式(防止写入)

hdfs dfsadmin -safemode enter

3️⃣ 备份元数据

tar czf nn-meta-$(date +%F).tar.gz /data/hadoop/dfs/name

4️⃣ 退出安全模式

hdfs dfsadmin -safemode leave

✅ 这是恢复集群最关键的部分


四、备份 HDFS 数据(可选方案)

方案 A:使用 distcp(推荐)

hadoop distcp hdfs://namenode:8020/ hdfs://backup-nn:8020/backup/

方案 B:直接拷贝 DataNode(不推荐)

仅适合测试环境。


五、备份 Hive / HBase(如有)

Hive

mysqldump -u root -p hive > hive-meta.sql

HBase

hbase snapshot create -n hbase_backup

六、自动化备份脚本示例(Debian)

#!/bin/bash
DATE=$(date +%F)
BACKUP_DIR=/backup/hadoop

mkdir -p $BACKUP_DIR

tar czf $BACKUP_DIR/hadoop-conf-$DATE.tar.gz /etc/hadoop
hdfs dfsadmin -safemode enter
tar czf $BACKUP_DIR/nn-meta-$DATE.tar.gz /data/hadoop/dfs/name
hdfs dfsadmin -safemode leave

加入 crontab:

0 2 * * * /root/backup_hadoop.sh

七、恢复 Hadoop(简略)

  1. 停止集群
  2. 解压配置
  3. 恢复 NameNode 元数据
  4. 格式化(仅在必要且明确时)
  5. 启动集群

八、建议总结

✅ 必备份

  • 配置文件
  • NameNode 元数据

⚠️ 可选

  • HDFS 数据
  • Hive / HBase

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

  • 单机还是集群?
  • 是否用 HDFS HA?
  • 是否使用 Docker / 云?

我可以直接给你针对性备份方案。

0 踩