CentOS Hadoop 运维有哪些要点
小樊
39
2025-12-31 12:27:33
CentOS 上 Hadoop 运维要点
一 基础环境与集群前提
- 保持系统与安全基线:使用受支持的 CentOS 版本或规划迁移至 Rocky Linux / RHEL / Ubuntu;安装并固定 Java 版本,禁用不必要服务,规范 umask 与目录权限。
- 时间同步与健康基线:全集群启用 NTP,节点间时间偏差建议不超过 30 秒;按需配置 DNS / 主机名解析 与 SSH 免密,便于批量运维。
- 网络与防火墙:规划 管理网/数据网 分离,放通 HDFS/YARN 相关端口(如 9870/8088 等),避免业务与管理互相干扰。
- 高可用与安全:部署 HA NameNode + ZooKeeper;启用 Kerberos 认证与 ACL 权限控制,最小化暴露面。
二 日常监控与健康检查
- 命令行巡检:
- HDFS:
hdfs dfsadmin -report(容量与 DataNode 状态)、hdfs fsck /(完整性)、hdfs balancer -t 10%(均衡阈值 10%)。
- YARN:
yarn node -list(节点状态)、yarn logs -applicationId <app_id>(作业日志)。
- Web 界面:
- NameNode:http://:9870;ResourceManager:http://:8088。
- 第三方监控:
- Ambari / Cloudera Manager(集群可视化与告警)、Ganglia(性能趋势)、Prometheus + Grafana(指标采集与可视化)、Zabbix(企业级监控)、JMX(如 jconsole/VisualVM 连接 NameNode/DataNode 的 JMX 端口)。
三 配置与性能优化
- 关键参数:
- HDFS:
dfs.replication(副本数)、dfs.blocksize(块大小)、dfs.namenode.handler.count(NameNode 并发)、dfs.datanode.handler.count(DataNode 并发)。
- YARN:根据业务与节点资源调整 容器内存/核数 与 调度策略,减少抢占与排队。
- 存储与容错:在容量与可靠性间平衡 副本 与 纠删码(Erasure Coding);启用 HDFS 回收站 降低误删风险。
- 垃圾回收与内存:结合负载特征优化 JVM GC 策略,避免 长 GC 暂停;为 NameNode/ResourceManager 合理分配堆内存。
- 数据布局与访问:提升 数据本地性、减少 小文件 数量,优化 RPC/传输 与缓存策略。
四 备份恢复与容灾
- 元数据备份:定期执行
hdfs dfsadmin -fetchImage fsimage.backup 获取 NameNode 镜像;结合 HA 与 ZooKeeper 实现故障自动切换。
- 数据与配置:对 重要目录/表 使用 HDFS 快照;定期备份 配置文件 与 关键脚本;验证恢复流程与 RPO/RTO。
- 可用性保障:规划 跨机架/跨机房 部署,完善 监控告警 与 应急预案,定期演练故障切换与恢复。
五 扩容缩容与日常维护
- 动态扩容:
- 准备新节点(系统、网络、用户、SSH、JDK 一致);在 include/exclude 中增删节点;
- 刷新 NameNode 与 ResourceManager 节点列表;启动 DataNode/NodeManager;
- 执行
hdfs balancer -t 10% 均衡数据。
- 优雅缩容:
- 在 exclude 标记退役节点并刷新;等待 复制/块恢复 完成;
- 停止退役节点进程,更新 include/exclude/slaves 配置并再次刷新;执行均衡。
- 日常维护:
- 日志与临时目录清理(如
hadoop.tmp.dir、mapred.local.dir);
- 定期 文件系统检查 与 块副本一致性 校验;
- 规范 变更评审/灰度/回滚 流程,变更前在测试环境验证。