1. 首页 > Hadoop教程 > 正文

大数据教程FG191-Hadoop集群扩容与缩容实战

本文详细介绍Hadoop集群扩容与缩容实战,包括新增节点、数据均衡、移除节点、节点退役等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com

Part01-基础概念与理论知识

1.1 扩容缩容概述

扩容是指增加节点,提高集群能力;缩容是指减少节点,节省资源。更多视频教程www.fgedu.net.cn

扩容缩容目标:

  • 提高集群能力
  • 降低资源浪费
  • 适应业务变化
  • 优化成本

1.2 扩容缩容原因

扩容缩容原因:

# 扩容原因
1. 业务增长
– 数据量增长
– 计算量增长
– 用户量增长

2. 性能瓶颈
– 响应慢
– 任务积压
– 资源不足

3. 高可用
– 提高冗余
– 提高容错

# 缩容原因
1. 业务减少
– 数据量减少
– 计算量减少

2. 资源浪费
– 利用率低
– 成本高

3. 硬件淘汰
– 硬件过保
– 性能落后

1.3 扩容缩容类型

扩容缩容类型:

风哥提示:扩容分为垂直扩容(升级配置)和水平扩容(增加节点);缩容同理。Hadoop推荐水平扩容。更多学习教程公众号风哥教程itpux_com

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 dfs.hosts.exclude
/bigdata/app/hadoop/etc/hadoop/dfs.exclude

# 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

风哥提示:新增节点后要做数据均衡;移除节点前要先退役,等数据迁移完再停止。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 DataNode扩容

4.1.1 实战案例

# DataNode扩容实战
# 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 实战案例

# NodeManager扩容实战
# 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 dfs.hosts.exclude
/bigdata/app/hadoop/etc/hadoop/dfs.exclude

# 4. 配置yarn-site.xml yarn.resourcemanager.nodes.exclude-path
/bigdata/app/hadoop/etc/hadoop/yarn.exclude

# 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

生产环境建议:扩容缩容选择业务低峰期操作。退役节点要等数据迁移完成再停止。数据均衡要限制带宽,避免影响业务。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 最佳实践

最佳实践:

  • 提前规划:提前规划容量
  • 维护窗口:业务低峰操作
  • 数据备份:操作前备份
  • 逐步操作:一次操作一台
  • 监控观察:操作后监控观察

5.2 常见坑点

# 常见坑点
1. 配置不同步
– 现象:新节点启动失败
– 原因:配置不一样
– 避坑:同步所有配置

2. 不退役直接停
– 现象:数据丢失风险
– 原因:没退役就停
– 避坑:先退役后停止

3. 不做均衡
– 现象:数据分布不均
– 原因:没做Balancer
– 避坑:扩容后做均衡

4. 不限带宽
– 现象:业务受影响
– 原因:均衡占满带宽
– 避坑:限制均衡带宽

5.3 检查清单

# 检查清单
## 扩容检查
– [ ] 新节点准备完成
– [ ] 配置文件同步
– [ ] 免密配置完成
– [ ] 服务启动成功
– [ ] 数据均衡完成

## 缩容检查
– [ ] 退役文件配置
– [ ] 节点已退役
– [ ] 数据迁移完成
– [ ] 服务已停止
– [ ] 集群状态正常

风哥提示:扩容缩容是常见操作。新增节点要配置同步、服务启动、数据均衡;移除节点要先退役、等数据迁移、再停止。操作后要监控观察,确保一切正常。学习交流加群风哥微信: itpux-com

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

联系我们

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

微信号:itpux-com

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