CDH中对Hadoop进行扩容的步骤
一、添加新节点(横向扩容)
-
新节点基础配置
- 网络与主机名:修改新节点的IP地址和主机名,确保与集群其他节点在同一网络并更新所有节点的
/etc/hosts文件。 - 防火墙设置:关闭防火墙、禁止防火墙开机自启。
- SSH免密登录:生成新节点的SSH密钥并分发到NameNode,确保集群节点间可无密码通信。
- 时间同步:配置NTP服务或改用chrony确保时间同步。
- JDK安装:确保所有节点都安装了JDK。
- 关闭(禁用) SELINUX。
- 关闭(禁用)透明大页面。
- 永久关闭 swap
- 网络与主机名:修改新节点的IP地址和主机名,确保与集群其他节点在同一网络并更新所有节点的
-
Cloudera Manager(CM)配置
- 添加主机到CM:在CM控制台中,通过“添加主机”功能输入新节点IP,CM会自动验证并安装Agent。
- 分配角色:为新节点分配DataNode、NodeManager等角色,CM会自动同步配置并启动服务。
-
HDFS与YARN配置更新
- 更新
dfs.hosts文件:在NameNode的HDFS配置中指定允许连接的DataNode列表,并执行hdfs dfsadmin -refreshNodes刷新节点列表。 - 更新
slaves文件:将新节点主机名添加到slaves文件,确保后续集群重启时自动加载新节点。
- 更新
-
验证与负载均衡
- 检查集群状态:通过CM或Web UI确认新节点的DataNode和NodeManager状态为正常。
- 执行Balancer:运行
hdfs balancer命令,均衡数据分布以避免热点问题。
二、扩展磁盘空间(纵向扩容)
-
新增硬盘操作
- 物理挂载磁盘:在虚拟机或物理机上添加新硬盘,重启后使用
fdisk分区并格式化为XFS或EXT4文件系统。 - 持久化挂载:在
/etc/fstab中配置自动挂载,例如:并执行UUID=<磁盘UUID> /dfs/dn xfs defaults 0 0mount -a加载新磁盘。
- 物理挂载磁盘:在虚拟机或物理机上添加新硬盘,重启后使用
-
HDFS数据目录扩展
- 修改
hdfs-site.xml:在DataNode的配置中添加新磁盘挂载路径(如/dfs/dn)到dfs.datanode.data.dir属性。 - 重启DataNode服务:通过CM或命令行重启DataNode,使新磁盘生效。
- 修改
-
单节点磁盘均衡(Hadoop 3+)
- 启用磁盘均衡:执行
hdfs diskbalancer -plan <节点IP>生成均衡计划,并通过hdfs diskbalancer -execute执行。
- 启用磁盘均衡:执行
注意事项
- 版本兼容性:确保新节点的操作系统、JDK和Hadoop版本与集群一致。
- Hadoop 2.x限制:若使用Hadoop 2.x,新增磁盘需手动迁移数据,因缺乏单节点内磁盘均衡功能。
- 监控与测试:扩容后通过CM监控资源使用率,并执行读写测试验证性能稳定性。
关键操作示例
- 刷新节点列表:
hdfs dfsadmin -refreshNodes # 更新HDFS节点
yarn rmadmin -refreshNodes # 更新YARN节点 - 磁盘均衡执行:
hdfs diskbalancer -plan <DataNode_IP> -out /tmp/plan.json hdfs diskbalancer -execute /tmp/plan.json
通过上述步骤可安全完成CDH集群的横向(节点)和纵向(磁盘)扩容,确保数据分布的均衡性和服务稳定性。
本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/p/18782653

浙公网安备 33010602011771号