Ubuntu Hadoop集群如何维护
导读:Ubuntu Hadoop 集群维护手册 一 日常巡检与监控 组件健康与容量 每日查看 HDFS NameNode Web UI(50070) 与 YARN ResourceManager Web UI(8088),关注:集群容量使用率...
Ubuntu Hadoop 集群维护手册
一 日常巡检与监控
- 组件健康与容量
- 每日查看 HDFS NameNode Web UI(50070) 与 YARN ResourceManager Web UI(8088),关注:集群容量使用率、DataNode 存活数、不健康/退役节点、应用排队与失败数。
- 检查 HDFS 块报告 与 缺失块/副本不足 告警,确保数据可用性。
- 日志与告警
- 统一收集与轮转 $HADOOP_HOME/logs 下各组件日志(NameNode、DataNode、ResourceManager、NodeManager、JournalNode 等),结合 Prometheus + Grafana 或 Ganglia 做指标可视化与阈值告警。
- 系统层面
- 监控 CPU、内存、磁盘 I/O、网络 使用率;检查 磁盘坏块 与 文件系统健康;确保 NTP 时间同步,避免分布式时序问题。
二 配置与性能调优
- HDFS 关键参数
- 块大小:根据作业与数据规模调整 dfs.blocksize(常见 128MB/256MB);大文件/长任务可适当增大以减少 NameNode 元数据与寻址开销。
- 副本因子:依据可靠性与成本设置 dfs.replication(常用 3);对冷数据可适度降低副本以节省存储。
- 并发与内存:按节点资源调节 dfs.namenode.handler.count、dfs.datanode.handler.count;优化 JVM GC 降低停顿。
- YARN 资源与容器
- 依据节点内存/CPU 设置 yarn.nodemanager.resource.memory-mb、yarn.nodemanager.resource.cpu-vcores;合理控制 yarn.scheduler.minimum-allocation-mb / maximum-allocation-mb,提升资源利用率与排队效率。
- 数据布局与 I/O
- 提升 数据本地性,减少跨节点网络;对中间数据与输出启用 压缩(如 Snappy/LZO) 降低 I/O 与网络传输;对大表/历史数据使用 HAR 归档或冷热分层。
- 网络与系统
- 使用 专用网络/高带宽低时延 互联;按需优化 TCP 内核参数(如 net.core.somaxconn、net.ipv4.tcp_max_syn_backlog);优先 SSD 提升 I/O。
三 安全与合规
- 身份与访问控制
- 创建 专用 hadoop 用户/用户组,禁用 root 运行;配置 SSH 密钥登录 替代口令;启用 防火墙(ufw) 仅开放必要端口(如 9000、50070、8088 等)。
- 启用 Kerberos 强认证;结合 HDFS ACL 与 Ranger/Sentry 实现细粒度授权;对敏感数据启用 传输/存储加密;开启 审计日志 满足合规。
- 持续加固
- 定期更新 Ubuntu 与 Hadoop 安全补丁;最小化端口与服务暴露面;对外部访问实施 源地址白名单 与 最小权限原则。
四 备份恢复与升级变更
- 备份策略
- 定期备份 NameNode 元数据(fsimage/edits) 与关键配置;对重要业务数据建立 多副本 + 离线/异地备份;验证备份可恢复性并保留 恢复演练记录。
- 升级与变更
- 采用 滚动升级/灰度发布 降低风险;变更前在 测试环境 验证,变更中保留 回滚方案 与 变更单;升级后核对 兼容性、参数默认值、服务健康。
- 灾难恢复
- 制定并演练 NameNode 故障切换、数据节点批量失效、数据中心级故障 等场景的 R& R 手册;明确 RPO/RTO 目标与责任分工。
五 常见维护任务 SOP
| 任务 | 操作要点 | 关键命令或界面 |
|---|---|---|
| 节点退役/上线 | 在 YARN 执行节点退役,等待数据迁移完成后下架;上线前确保磁盘/网络健康并加入白名单 | yarn rmadmin -refreshNodes;HDFS DataNode 启动/停止脚本 |
| 磁盘均衡 | 新增磁盘或容量不均时执行 HDFS Balancer | hdfs balancer -threshold 10 |
| 小文件治理 | 合并/归档小文件,使用 HAR 或 SequenceFile/Parquet 重写,减少 NameNode 压力 | hadoop archive -archiveName data.har -p /input /output |
| 空间回收 | 运行 HDFS fsck 排查缺失/损坏块;清理 Trash;调整 dfs.replication 与保留策略 | hdfs fsck /;hdfs dfs -expunge |
| 配置推送 | 使用 Ansible/Chef/Puppet 分发 core-site.xml/hdfs-site.xml/yarn-site.xml 等,滚动重启受影响的守护进程 | start-dfs.sh / start-yarn.sh(按角色滚动) |
| 时间同步 | 全集群启用 NTP,避免安全票据与日志时序异常 | timedatectl status;ntpd/chrony 服务 |
| 例行检查清单 | 每日:UI/容量/告警/日志;每周:磁盘/坏块/备份验证;每月:参数与容量规划复盘 | — |
提示
- 所有变更先在 测试/预发集群 验证,变更窗口内保留 回滚路径 与 监控告警;对生产作业使用 队列配额与优先级 避免维护期资源争用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Hadoop集群如何维护
本文地址: https://pptw.com/jishu/760180.html
