温馨提示×

centos hdfs备份怎么配置

小樊
39
2026-10-15 04:28:41
栏目: 智能运维

在 CentOS 上配置 HDFS 备份,一般可以从**系统层(快照/拷贝)和HDFS 自身机制(副本/DistCp/快照)**两个维度来做。下面按常见场景给你一套实用配置思路。


一、HDFS 自身备份(推荐优先做)

1. 副本机制(最基础)

HDFS 默认就有副本机制,先确认副本数:

hdfs dfsadmin -report

修改副本数(如改为 3):

<!-- hdfs-site.xml -->
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>

对已有数据补副本:

hdfs dfs -setrep -R 3 /

2. HDFS 快照(Snapshot)

适合误删恢复。

启用快照:

hdfs dfsadmin -allowSnapshot /data
hdfs dfs -createSnapshot /data snap_20260121

查看快照:

hdfs dfs -ls /data/.snapshot

恢复:

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

3. DistCp 跨集群备份(生产常用)

适合异地/灾备。

hadoop distcp hdfs://nn1:9000/data hdfs://nn2:9000/backup/data

可加参数:

hadoop distcp -update -delete hdfs://src hdfs://dst

可配合 crontab 定时执行。


二、CentOS 系统层备份

1. NameNode 元数据备份(非常重要)

NameNode 数据目录:

/etc/hadoop/hdfs-site.xml
# dfs.namenode.name.dir

手动备份:

cp -r /dfs/nn /backup/nn_$(date +%F)

建议:

  • 每天定时
  • 异地拷贝一份

2. 使用 rsync 备份到远程

rsync -avz /dfs/nn/ backup@backup-server:/hdfs_backup/nn/

3. 使用快照(LVM / 文件系统)

如果是 XFS/EXT4:

lvcreate --size 10G --snapshot --name hdfs_snap /dev/vg/hdfs

三、定时备份示例(crontab)

crontab -e
0 2 * * * /usr/bin/hadoop distcp hdfs://localhost:9000/data hdfs://backup:9000/backup/data
0 3 * * * /usr/bin/rsync -az /dfs/nn/ backup@remote:/hdfs_backup/nn/

四、典型备份架构建议

  • 本地:副本 + 快照
  • 同城:DistCp 到备用集群
  • 异地:rsync / 对象存储(S3/OBS)

如果你能告诉我:

  • 单集群还是多集群
  • 是否用 CDH / HDP / 原生 Apache
  • 备份频率要求(天/小时)

我可以给你一份可直接用的配置文件 + 脚本。

0 踩