Linux中Hadoop如何扩展
小樊
42
2025-11-14 23:31:19
Linux中Hadoop扩展实操指南
一、扩展策略与规划
- 扩展方式
- 水平扩展:新增 DataNode/NodeManager 节点,适合容量与并发快速增长场景。
- 纵向扩展:提升单机 CPU/内存/磁盘,适合计算或存储密集型瓶颈的单点优化。
- 云与容器化:在云上按需增减节点,或用 Kubernetes/Docker 管理 Hadoop 集群,提升弹性与资源利用率。
- 规划要点
- 明确业务增长带来的 数据量、并发作业数、计算需求。
- 规划 计算节点数、存储节点容量、网络带宽与延迟,避免热点与瓶颈。
- 保持 操作系统、JDK、Hadoop 版本一致,减少兼容性问题。
二、扩容前准备
- 基础环境
- 安装并统一 JDK 与 Hadoop 版本;配置 SSH 免密登录(主节点到新节点)。
- 所有节点配置 /etc/hosts 主机名解析,保持 NTP 时间同步。
- 关闭或放行防火墙,开放 HDFS 8020、YARN 8088 等端口,确保节点互通。
- 配置一致性
- 同步 core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 等配置到新节点。
- 若启用白名单,更新 dfs.hosts;如使用 workers/slaves 文件,添加新节点主机名。
三、添加新节点的标准流程
- 安装与配置
- 在新节点安装 Hadoop,设置 JAVA_HOME/HADOOP_HOME,环境变量写入 /etc/profile 或 ~/.bashrc 并生效。
- 将主节点的 Hadoop 配置拷贝到新节点,保持目录结构与权限一致。
- 加入集群
- 在主节点的 workers/slaves 文件中追加新节点主机名;如使用白名单,将新节点加入 dfs.hosts。
- 在新节点启动服务:
- HDFS:$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
- YARN:$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
- 刷新节点列表并验证:
- HDFS:hdfs dfsadmin -refreshNodes,随后 hdfs dfsadmin -report
- YARN:yarn rmadmin -refreshNodes,随后 yarn node -list
- 数据均衡
- 执行 hdfs balancer -threshold 10(阈值可按集群实际调整),使数据在新老节点间均衡分布。
四、单节点磁盘扩容
- 操作系统层
- 新增磁盘或扩展虚拟磁盘后,使用 fdisk -l 确认设备;格式化新分区(如 mkfs.ext4 /dev/sdb1)。
- 创建挂载点并挂载(如 /data/hadoop),写入 /etc/fstab 实现开机自动挂载。
- HDFS 层
- 将新目录加入 hdfs-site.xml 的 dfs.datanode.data.dir,多个目录以逗号分隔。
- 重启 DataNode 使新磁盘生效,随后执行 hdfs balancer 重新均衡数据。
五、验证与运维要点
- 状态与可视化
- HDFS:hdfs dfsadmin -report 或访问 http://:9870
- YARN:http://:8088/cluster/nodes
- 提交测试作业验证(如 pi 示例)并检查日志是否有异常。
- 高可用与下线
- 生产环境建议启用 NameNode HA(ZooKeeper + ZKFC)避免单点故障。
- 需要下线节点时,将节点加入 dfs.hosts.exclude,执行 hdfs dfsadmin -refreshNodes 与 yarn rmadmin -refreshNodes,待数据迁移完成后停服务。