本文详细介绍Hadoop集群扩容与缩容实战,包括新增节点、数据均衡、移除节点、节点退役等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com
Part01-基础概念与理论知识
1.1 扩容缩容概述
扩容是指增加节点,提高集群能力;缩容是指减少节点,节省资源。更多视频教程www.fgedu.net.cn
- 提高集群能力
- 降低资源浪费
- 适应业务变化
- 优化成本
1.2 扩容缩容原因
扩容缩容原因:
1. 业务增长
– 数据量增长
– 计算量增长
– 用户量增长
2. 性能瓶颈
– 响应慢
– 任务积压
– 资源不足
3. 高可用
– 提高冗余
– 提高容错
# 缩容原因
1. 业务减少
– 数据量减少
– 计算量减少
2. 资源浪费
– 利用率低
– 成本高
3. 硬件淘汰
– 硬件过保
– 性能落后
1.3 扩容缩容类型
扩容缩容类型:
Part02-生产环境规划与建议
2.1 扩容计划
扩容计划:
1. 需求分析
– 数据量预测
– 计算量预测
– 资源需求
2. 方案设计
– 扩容节点数
– 节点配置
– 网络规划
3. 时间计划
– 准备时间
– 实施时间
– 验证时间
4. 回滚方案
– 回滚条件
– 回滚步骤
– 回滚验证
2.2 准备工作
准备工作:
- 硬件:服务器、网络、存储
- 软件:操作系统、JDK、Hadoop
- 配置:主机名、网络、用户
- 备份:配置备份、数据备份
from bigdata视频:www.itpux.com
2.3 风险评估
风险评估:
1. 扩容风险
– 数据不均衡
– 性能波动
– 服务不稳定
2. 缩容风险
– 数据丢失
– 服务中断
– 数据重平衡
3. 缓解措施
– 维护窗口操作
– 先测试后生产
– 备份数据
– 监控观察
Part03-生产环境项目实施方案
3.1 新增节点
3.1.1 新增DataNode和NodeManager
# 1. 新节点准备
# 操作系统安装
# JDK安装
# Hadoop安装
# 配置文件同步
# 用户创建
# 目录创建
# 2. 配置文件
# 同步以下文件
# core-site.xml
# hdfs-site.xml
# yarn-site.xml
# mapred-site.xml
# hadoop-env.sh
# workers
# 3. 添加到workers
echo “fgedu-dn04.fgedu.net.cn” >> $HADOOP_HOME/etc/hadoop/workers
# 4. 配置免密SSH
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@fgedu-dn04
# 5. 启动DataNode
ssh fgedu-dn04 “$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode”
# 6. 启动NodeManager
ssh fgedu-dn04 “$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager”
# 7. 验证
jps
hdfs dfsadmin -report
yarn node -list
3.2 数据均衡
3.2.1 数据均衡
# 1. 启动Balancer
hdfs balancer
# 2. 指定阈值
hdfs balancer -threshold 5
# 3. 限制带宽
hdfs balancer -Ddfs.datanode.balance.bandwidthPerSec=10485760
# 4. 查看均衡状态
hdfs dfsadmin -report
# 观察各节点使用率
# 5. 停止Balancer
# 按Ctrl+C停止
# 6. 后台运行
nohup hdfs balancer -threshold 5 > /bigdata/logs/balancer.log 2>&1 &
# 7. 验证均衡
hdfs dfsadmin -report
# 各节点使用率差异在阈值内
3.3 移除节点
3.3.1 节点退役
# 1. 创建退役文件
cat > $HADOOP_HOME/etc/hadoop/dfs.exclude << 'EOF' fgedu-dn04.fgedu.net.cn EOF # 2. 配置hdfs-site.xml
# 3. 刷新NameNode
hdfs dfsadmin -refreshNodes
# 4. 查看退役状态
hdfs dfsadmin -report
# 观察节点状态变为Decommissioned
# 5. 等待数据迁移
# 等待所有块复制完成
# 6. 停止DataNode
ssh fgedu-dn04 “$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode”
# 7. 停止NodeManager
ssh fgedu-dn04 “$HADOOP_HOME/sbin/yarn-daemon.sh stop nodemanager”
# 8. 从workers移除
sed -i ‘/fgedu-dn04/d’ $HADOOP_HOME/etc/hadoop/workers
# 9. 验证
hdfs dfsadmin -report
yarn node -list
Part04-生产案例与实战讲解
4.1 DataNode扩容
4.1.1 实战案例
# 1. 新节点准备
# 安装操作系统
# 配置网络
# 配置主机名
# 2. 安装JDK
tar -zxf jdk-8u301-linux-x64.tar.gz -C /bigdata/app/
ln -s /bigdata/app/jdk1.8.0_301 /bigdata/app/jdk
# 3. 安装Hadoop
tar -zxf hadoop-3.3.6.tar.gz -C /bigdata/app/
ln -s /bigdata/app/hadoop-3.3.6 /bigdata/app/hadoop
# 4. 同步配置
cd /bigdata/app/hadoop/etc/hadoop/
scp fgedu-nn01:/bigdata/app/hadoop/etc/hadoop/*.xml .
scp fgedu-nn01:/bigdata/app/hadoop/etc/hadoop/workers .
scp fgedu-nn01:/bigdata/app/hadoop/etc/hadoop/hadoop-env.sh .
# 5. 创建目录
mkdir -p /bigdata/fgdata/hdfs/data
mkdir -p /bigdata/logs/hadoop
chown -R hadoop:hadoop /bigdata
# 6. 配置免密
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@fgedu-dn04
# 7. 启动DataNode
ssh fgedu-dn04 “$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode”
sleep 30
# 8. 验证
hdfs dfsadmin -report
# 新节点应该出现在列表中
# 9. 启动均衡
hdfs balancer -threshold 5
4.2 NodeManager扩容
4.2.1 实战案例
# 1. 启动NodeManager
ssh fgedu-dn04 “$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager”
sleep 30
# 2. 验证
yarn node -list
# 新节点应该出现在列表中
# 3. 测试
# 提交测试任务
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 2 10
# 4. 观察任务
# 在ResourceManager UI查看
# 任务应该在新节点上运行
4.3 节点退役
4.3.1 实战案例
# 1. 创建退役文件
cat > $HADOOP_HOME/etc/hadoop/dfs.exclude << 'EOF' fgedu-dn04.fgedu.net.cn EOF # 2. 配置yarn退役 cat > $HADOOP_HOME/etc/hadoop/yarn.exclude << 'EOF' fgedu-dn04.fgedu.net.cn EOF # 3. 配置hdfs-site.xml
# 4. 配置yarn-site.xml
# 5. 刷新NameNode
hdfs dfsadmin -refreshNodes
# 6. 刷新ResourceManager
yarn rmadmin -refreshNodes
# 7. 查看状态
hdfs dfsadmin -report
# 节点状态变为Decommission In Progress
# 8. 等待退役完成
watch hdfs dfsadmin -report
# 等待状态变为Decommissioned
# 9. 停止服务
ssh fgedu-dn04 “$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode”
ssh fgedu-dn04 “$HADOOP_HOME/sbin/yarn-daemon.sh stop nodemanager”
# 10. 验证
hdfs dfsadmin -report
yarn node -list
Part05-风哥经验总结与分享
5.1 最佳实践
最佳实践:
- 提前规划:提前规划容量
- 维护窗口:业务低峰操作
- 数据备份:操作前备份
- 逐步操作:一次操作一台
- 监控观察:操作后监控观察
5.2 常见坑点
1. 配置不同步
– 现象:新节点启动失败
– 原因:配置不一样
– 避坑:同步所有配置
2. 不退役直接停
– 现象:数据丢失风险
– 原因:没退役就停
– 避坑:先退役后停止
3. 不做均衡
– 现象:数据分布不均
– 原因:没做Balancer
– 避坑:扩容后做均衡
4. 不限带宽
– 现象:业务受影响
– 原因:均衡占满带宽
– 避坑:限制均衡带宽
5.3 检查清单
## 扩容检查
– [ ] 新节点准备完成
– [ ] 配置文件同步
– [ ] 免密配置完成
– [ ] 服务启动成功
– [ ] 数据均衡完成
## 缩容检查
– [ ] 退役文件配置
– [ ] 节点已退役
– [ ] 数据迁移完成
– [ ] 服务已停止
– [ ] 集群状态正常
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
