CentOS下Hadoop资源管理
小樊
41
2025-11-26 04:19:11
CentOS 下 Hadoop 资源管理实战指南
一 架构与核心组件
- 资源管理由 YARN(Yet Another Resource Negotiator) 统一负责,核心角色包括:
- ResourceManager(RM):全局资源调度与队列管理。
- NodeManager(NM):单节点资源隔离与容器生命周期管理。
- ApplicationMaster(AM):每个作业的任务编排与资源申请。
- 调度器用于在多租户/多作业场景分配资源,常用有 FIFO、Capacity Scheduler、Fair Scheduler。
- 在 CentOS 7/8 上部署 Hadoop 通常需准备 JDK 8、配置 SSH 免密、并按需安装 Ambari 做可视化运维。
二 调度器选型与适用场景
- FIFO:按提交顺序执行,部署简单;在并发/多租户下易出现资源饥饿与低效。
- Capacity Scheduler:为队列预设配额,适合有明确资源保障与隔离的多租户场景。
- Fair Scheduler:在资源公平与集群利用率之间折中,适合共享集群与差异化需求。
- 调度器在 yarn-site.xml 中通过 yarn.resourcemanager.scheduler.class 指定,并配合队列配置文件生效。
三 关键配置步骤
- 基础环境
- 安装 JDK 8,配置 /etc/profile:
export JAVA_HOME=...; export PATH=$PATH:$JAVA_HOME/bin
- 配置 SSH 免密,同步 /etc/hosts,建议关闭 firewalld/SELinux 或按需放行端口。
- Hadoop 配置要点
- core-site.xml:设置默认文件系统,如 fs.defaultFS=hdfs://namenode:9000
- hdfs-site.xml:配置 dfs.replication、dfs.namenode.name.dir、dfs.datanode.data.dir
- yarn-site.xml:启用 yarn.nodemanager.aux-services=mapreduce_shuffle,指定 yarn.resourcemanager.hostname
- 调度器配置:在 yarn-site.xml 设置调度器类;如使用 Capacity/Fair,同步配置 capacity-scheduler.xml/fair-scheduler.xml 与队列规则
- 启动与验证
- 格式化 NameNode:
hdfs namenode -format
- 启动服务:
start-dfs.sh、start-yarn.sh
- 验证:
yarn node -list 查看节点资源;访问 ResourceManager Web UI 与 NameNode Web UI 检查状态与容量。
四 容量规划与参数建议
- 容量与配额
- 依据节点 内存/CPU/磁盘 总量与业务峰值,为 YARN 容器 与 队列 设定合理上限与保障;队列间使用 Capacity/Fair 策略实现隔离与公平。
- 存储与数据布局
- 启用 HDFS 存储策略:
dfs.storage.policy.enabled=true,按 HOT/WARM/COLD 将数据分布到不同介质,提升性价比。
- 开启 机架感知,使副本跨机架分布,降低单机架故障风险并优化写入/读取路径。
- 系统层优化
- 磁盘 I/O 调度器:根据负载选择 CFQ/Deadline/NOOP/BFQ;高并发写入可优先 Deadline/BFQ。
- 网络:适度增大 TCP 缓冲区、优化 时延/带宽;合理规划 副本数(默认 3) 与 块大小,平衡吞吐与恢复速度。
五 监控 运维与高可用
- 监控与日常运维
- 使用 ResourceManager Web UI、NameNode Web UI 观察 集群资源使用、队列状态、作业运行;结合日志定位瓶颈。
- 借助 Ambari 做配置管理、告警与健康检查,降低运维复杂度。
- 高可用与容灾
- NameNode HA:配合 ZooKeeper 与 ZKFC 实现主备切换,保障元数据服务连续性。
- ResourceManager HA:启用 ZKRMStateStore 持久化状态,故障自动切换,减少作业中断。
- NameNode 多目录:将元数据写入多块磁盘提升可靠性;DataNode 多目录/JBOD 扩展容量与灵活性。