1. 首页 > Hadoop教程 > 正文

大数据教程FG186-Hadoop备份恢复策略实战

本文详细介绍Hadoop备份恢复策略实战,包括HDFS、Hive、HBase备份,DistCp备份、数据恢复、灾备演练等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com

Part01-基础概念与理论知识

1.1 备份概述

备份是指将数据复制到其他位置,以便在数据丢失或损坏时恢复。更多视频教程www.fgedu.net.cn

备份目标:

  • 防止数据丢失
  • 快速恢复业务
  • 满足合规要求
  • 应对灾难场景

1.2 备份类型

备份类型:

# 备份类型
1. 全量备份
– 备份所有数据
– 恢复快
– 备份慢
– 占用空间大

2. 增量备份
– 只备份变化的数据
– 备份快
– 占用空间小
– 恢复慢

3. 差异备份
– 备份上次全量以来变化
– 介于两者之间

4. 快照备份
– 利用快照技术
– 快速备份
– 空间占用小

1.3 RPO/RTO

RPO/RTO:

风哥提示:RPO(Recovery Point Objective):最多丢失多少数据;RTO(Recovery Time Objective):多久恢复业务。更多学习教程公众号风哥教程itpux_com

Part02-生产环境规划与建议

2.1 备份策略

备份策略:

# 备份策略
1. 定期全量备份
– 每周日全量备份
– 保留4周

2. 每日增量备份
– 周一到周六增量
– 保留1周

3. 异地备份
– 本地备份 + 异地备份
– 防范区域灾难

4. 快照
– 每日快照
– 保留3天

2.2 备份存储

备份存储:

备份存储:

  • 本地磁盘:快速恢复
  • NAS/SAN:集中存储
  • 对象存储:廉价可靠
  • 异地:灾难恢复

from bigdata视频:www.itpux.com

2.3 保留策略

保留策略:

# 保留策略
1. 短期保留
– 日备份保留1周
– 用于快速恢复

2. 中期保留
– 周备份保留1个月
– 用于中期恢复

3. 长期保留
– 月备份保留1年
– 用于合规审计

Part03-生产环境项目实施方案

3.1 HDFS备份

3.1.1 DistCp备份

# HDFS备份
# 1. DistCp备份
hadoop distcp /user /backup/user_$(date +%Y%m%d)

# 2. 快照备份
hdfs dfsadmin -allowSnapshot /user
hdfs dfs -createSnapshot /user user_snapshot_$(date +%Y%m%d)

# 3. 查看快照
hdfs lsSnapshottableDir
hdfs dfs -ls /user/.snapshot/

# 4. 备份脚本
#!/bin/bash
# backup_hdfs.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/backup/hdfs
LOG_DIR=/backup/logs
mkdir -p $BACKUP_DIR $LOG_DIR
LOG_FILE=$LOG_DIR/backup_$DATE.log

echo “Start backup at $(date)” >> $LOG_FILE

hadoop distcp -update -delete /user $BACKUP_DIR/user_$DATE >> $LOG_FILE 2>&1

if [ $? -eq 0 ]; then
echo “Backup successful at $(date)” >> $LOG_FILE
else
echo “Backup failed at $(date)” >> $LOG_FILE
fi

# 添加到crontab
# 0 2 * * * /bigdata/scripts/backup_hdfs.sh

3.2 Hive备份

3.2.1 Hive备份

# Hive备份
# 1. 元数据备份
# 备份MySQL
mysqldump -u root -pfgedu123 metastore > /backup/hive/metastore_$(date +%Y%m%d).sql

# 2. 数据备份
hadoop distcp /user/hive/warehouse /backup/hive/warehouse_$(date +%Y%m%d)

# 3. 导出表
hive -e “EXPORT TABLE fgedudb.fgedu_table TO ‘/backup/hive/fgedu_table_$(date +%Y%m%d)'”

# 4. 备份脚本
#!/bin/bash
# backup_hive.sh
DATE=$(date +%Y%m%d)
BACKUP_DIR=/backup/hive
mkdir -p $BACKUP_DIR

# 备份元数据
mysqldump -u root -pfgedu123 metastore > $BACKUP_DIR/metastore_$DATE.sql

# 备份数据
hadoop distcp /user/hive/warehouse $BACKUP_DIR/warehouse_$DATE

3.3 HBase备份

3.3.1 HBase备份

# HBase备份
# 1. 快照备份
hbase snapshot create_snapshot ‘fgedu_table’, ‘fgedu_table_snapshot_$(date +%Y%m%d)’

# 2. 查看快照
hbase list_snapshots

# 3. 导出快照
hbase snapshot export_snapshot -snapshot fgedu_table_snapshot_20240408 -copy-to hdfs://backup-cluster/backup/hbase/

# 4. Export工具
hbase org.apache.hadoop.hbase.mapreduce.Export fgedudb.fgedu_table /backup/hbase/fgedu_table_$(date +%Y%m%d)

# 5. 备份脚本
#!/bin/bash
# backup_hbase.sh
DATE=$(date +%Y%m%d)
hbase snapshot create_snapshot ‘fgedu_table’, ‘fgedu_table_snapshot_$DATE’

风哥提示:备份重要数据一定要备份。DistCp是Hadoop常用的备份工具。要定期演练恢复测试,确保备份可用。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 DistCp备份

4.1.1 实战案例

# DistCp备份实战
# 1. 集群内备份
hadoop distcp /user /backup/user_20240408

# 2. 跨集群备份
hadoop distcp hdfs://cluster1/user hdfs://cluster2/backup/user_20240408

# 3. 带更新模式
hadoop distcp -update /user /backup/user

# 4. 带删除
hadoop distcp -update -delete /user /backup/user

# 5. 指定mapper数
hadoop distcp -m 20 /user /backup/user_20240408

# 6. 带宽限制
hadoop distcp -bandwidth 100 /user /backup/user_20240408

4.2 数据恢复

4.2.1 实战案例

# 数据恢复
# 1. HDFS恢复
hadoop distcp /backup/user_20240408 /user/

# 2. 快照恢复
hdfs dfs -cp /user/.snapshot/user_snapshot_20240408/* /user/

# 3. Hive恢复
mysql -u root -pfgedu123 metastore < /backup/hive/metastore_20240408.sql hadoop distcp /backup/hive/warehouse_20240408 /user/hive/warehouse/ # 4. Hive表导入 hive -e "IMPORT TABLE fgedudb.fgedu_table FROM '/backup/hive/fgedu_table_20240408'" # 5. HBase恢复 hbase snapshot clone_snapshot 'fgedu_table_snapshot_20240408', 'fgedu_table_restore' # 6. HBase Import hbase org.apache.hadoop.hbase.mapreduce.Import fgedudb.fgedu_table /backup/hbase/fgedu_table_20240408

4.3 灾备演练

4.3.1 实战案例

# 灾备演练
# 1. 演练计划
– 演练时间
– 演练场景
– 演练步骤
– 验证标准

# 2. 演练场景
– 场景1:误删除数据
– 场景2:集群故障
– 场景3:数据中心故障

# 3. 演练步骤
# 步骤1:宣布演练开始
# 步骤2:模拟故障
# 步骤3:执行恢复
# 步骤4:验证恢复验证
# 步骤5:演练总结

# 4. 演练总结
– 记录问题
– 优化流程
– 完善预案

生产环境建议:备份不是目的,恢复才是。一定要定期演练恢复,确保备份可用。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 最佳实践

最佳实践:

  • 定期备份:按策略定期备份
  • 异地备份:本地+异地备份
  • 定期演练:定期恢复演练
  • 备份验证:验证备份完整性
  • 监控告警:备份监控告警

5.2 常见坑点

# 常见坑点
1. 只备份不验证
– 现象:备份了但恢复失败
– 原因:备份损坏
– 避坑:定期验证

2. 没有异地备份
– 现象:本地故障无法恢复
– 原因:只有本地备份
– 避坑:异地备份

3. 保留时间太长
– 现象:需要历史数据丢失
– 原因:备份保留太短
– 避坑:合理保留策略

4. 没有演练
– 现象:真故障时手忙脚乱
– 原因:没有演练过
– 避坑:定期演练

5.3 检查清单

# 检查清单
## 备份检查
– [ ] 备份策略制定
– [ ] 备份执行成功
– [ ] 备份存储安全
– [ ] 备份保留合理
– [ ] 备份验证完成

## 恢复检查
– [ ] 恢复流程文档
– [ ] 定期恢复演练
– [ ] 恢复时间达标
– [ ] 恢复数据完整
– [ ] 演练记录完整

风哥提示:数据是企业的资产,备份是最后的防线。备份要做好,恢复要练好,才能在故障时快速恢复业务。备份不是万能的,但没有备份是万万不能的。学习交流加群风哥微信: itpux-com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息