Linux上Hadoop集群如何扩容
小樊
45
2025-12-14 14:44:31
Linux上Hadoop集群扩容实操指南
一 扩容总览与准备
- 明确扩容目标:优先新增DataNode扩展HDFS容量;若需提升计算资源,同步新增NodeManager加入YARN。
- 基础环境一致性:新节点与现有集群保持一致的Hadoop版本、Java版本、系统时间同步(NTP),并确保节点间网络互通、主机名可解析(建议统一配置**/etc/hosts**)。
- 安全与连通:建议配置SSH免密(NameNode到新节点、新节点到NameNode),并关闭防火墙/SELinux或按需放通端口,避免节点注册受阻。
- 目录与权限:在新节点预先创建HDFS数据目录(如dfs.datanode.data.dir指定路径),并设定正确的用户与权限,避免启动失败。
二 扩容步骤 HDFS与YARN
- 配置主机解析与免密
- 在所有节点的**/etc/hosts中加入新节点IP与主机名;在NameNode执行对新节点的ssh-copy-id**,并在新节点对NameNode回拷公钥,确保双向免密。
- 分发配置与软件
- 将现有集群的core-site.xml、hdfs-site.xml、yarn-site.xml以及Hadoop安装目录与环境变量分发到新节点,保持配置一致;在新节点执行source /etc/profile使环境变量生效。
- 配置白名单与workers(推荐)
- 在hdfs-site.xml配置白名单:
dfs.hosts/opt/hadoop/etc/hadoop/whitelist.hosts
在yarn-site.xml配置节点包含文件:
yarn.resourcemanager.nodes.include-path/opt/hadoop/etc/hadoop/include
将新节点主机名写入对应文件,便于受控加入。
- 启动新节点服务
- 在新节点启动守护进程:
- HDFS:执行hadoop-daemon.sh start datanode(或start-dfs.sh,若使用脚本统一启动)
- YARN:执行yarn-daemon.sh start nodemanager(或start-yarn.sh)
- 刷新节点列表并验证
- 刷新并查看节点状态:
- HDFS:hdfs dfsadmin -refreshNodes 与 hdfs dfsadmin -report(确认新节点状态为Live)
- YARN:yarn rmadmin -refreshNodes 与 yarn node -list(确认新NodeManager已注册)
- 数据均衡
- 启动均衡器并观察进度:
- 启动:start-balancer.sh 或 hdfs balancer -threshold 5(阈值可按需调小,默认约10%)
- 监控:hdfs balancer -status
- 提速(可选):在hdfs-site.xml调高dfs.balance.bandwidthPerSec(如10485760即约10MB/s),加速块迁移。
三 扩容后的配置与性能调优
- 副本与块大小
- 结合容量与可靠性评估dfs.replication(常见为3);若新增节点为大容量磁盘,可适当增大dfs.blocksize(如256MB或更高),减少小文件带来的元数据压力。
- 线程与连接
- 根据节点规模与并发量,适度提升dfs.namenode.handler.count与dfs.datanode.handler.count,改善NameNode与DataNode的并发处理能力。
- 均衡策略
- 初次扩容后尽快执行均衡;带宽受限时先设定合理的阈值与带宽,在业务低峰期运行,避免影响在线任务。
四 常见问题与快速排查
- 新节点未出现在报告
- 检查**/etc/hosts与DNS解析、网络连通性与防火墙**;确认SSH免密已双向打通;核对白名单/workers/include是否已包含新节点并已执行**-refreshNodes**。
- DataNode启动失败
- 核对dfs.datanode.data.dir目录是否存在且权限正确;查看**$HADOOP_HOME/logs/下的DataNode**日志定位具体报错(如磁盘、权限、配置不一致等)。
- 均衡速度很慢
- 调整dfs.balance.bandwidthPerSec提升带宽;适当降低**-threshold**让分布更均衡(但耗时更长);在业务低峰期执行。