本文详细介绍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:
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备份
# 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备份
# 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备份
# 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’
Part04-生产案例与实战讲解
4.1 DistCp备份
4.1.1 实战案例
# 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. 演练总结
– 记录问题
– 优化流程
– 完善预案
Part05-风哥经验总结与分享
5.1 最佳实践
最佳实践:
- 定期备份:按策略定期备份
- 异地备份:本地+异地备份
- 定期演练:定期恢复演练
- 备份验证:验证备份完整性
- 监控告警:备份监控告警
5.2 常见坑点
1. 只备份不验证
– 现象:备份了但恢复失败
– 原因:备份损坏
– 避坑:定期验证
2. 没有异地备份
– 现象:本地故障无法恢复
– 原因:只有本地备份
– 避坑:异地备份
3. 保留时间太长
– 现象:需要历史数据丢失
– 原因:备份保留太短
– 避坑:合理保留策略
4. 没有演练
– 现象:真故障时手忙脚乱
– 原因:没有演练过
– 避坑:定期演练
5.3 检查清单
## 备份检查
– [ ] 备份策略制定
– [ ] 备份执行成功
– [ ] 备份存储安全
– [ ] 备份保留合理
– [ ] 备份验证完成
## 恢复检查
– [ ] 恢复流程文档
– [ ] 定期恢复演练
– [ ] 恢复时间达标
– [ ] 恢复数据完整
– [ ] 演练记录完整
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
