CDH 6.3.2 异构集群优化实施文档

目录

[1. 集群硬件现状与优化策略](#1. 集群硬件现状与优化策略)

[2. 操作系统级优化 (Linux Base)](#2. 操作系统级优化 (Linux Base))

[2.1 基础监控工具安装](#2.1 基础监控工具安装)

[2.2 核心内核参数调整 (所有节点)](#2.2 核心内核参数调整 (所有节点))

[3. HDFS 存储层优化](#3. HDFS 存储层优化)

[3.1 开启机架感知 (Rack Awareness) 或 磁盘平衡](#3.1 开启机架感知 (Rack Awareness) 或 磁盘平衡)

[3.2 优化 DataNode 内存 (Heap Size)](#3.2 优化 DataNode 内存 (Heap Size))

[4. YARN 资源调度优化 (核心难点)](#4. YARN 资源调度优化 (核心难点))

[4.1 创建角色组 (Role Group)](#4.1 创建角色组 (Role Group))

[4.2 配置内存参数 (yarn.nodemanager.resource.memory-mb)](#4.2 配置内存参数 (yarn.nodemanager.resource.memory-mb))

**背景:**现有 CDH 集群部署文档普遍脱离实际硬件规格,各组件参数几乎全部采用出厂默认值,亟需针对 HDFS、Yarn、Hive 等核心服务进行差异化调优。

1. 集群硬件现状与优化策略

现集群属于典型的异构集群(机器配置不统一),最大的风险在于"木桶效应"(性能被最差的机器拖累)或"配置溢出"(按大机器配置导致小机器宕机)。

分组名称 包含节点 物理内存 关键特征 优化策略
大内存组 (BigMem) nd1, nd2, nd3, nd4, nd5, nd6 ~32 GB 资源较充裕 主力计算节点,拉满 YARN 内存配置。
小内存组 (SmallMem) nd11, nd12, nd13, nd14, nd15, nd16 ~13.5 GB (其中 nd13 仅 11.6 GB) 资源极度紧张 必须以 nd13 为基准,降低配置保命。

2. 操作系统级优化 (Linux Base)

在修改 CDH 组件前,必须确保底座稳固。

2.1 基础监控工具安装

针对 CentOS 7 缺失常用工具的问题:

bash 复制代码
# 修复 yum python2 兼容性问题后
yum install epel-release -y
yum install net-tools sysstat iotop htop nload -y

2.2 核心内核参数调整 (所有节点)

  • Swappiness (交换分区):

    • 目标: 避免 Hadoop 使用磁盘 Swap,导致性能骤降。

    • 操作 : sysctl vm.swappiness=1 (临时); 修改 /etc/sysctl.conf 添加 vm.swappiness=1 (永久)。

  • Transparent Huge Pages (THP):

    • 目标: 关闭透明大页,防止 CPU 占用过高。

    • 检查 : cat /sys/kernel/mm/transparent_hugepage/enabled 应输出 [never]

3. HDFS 存储层优化

针对大量小文件和磁盘容错的配置。

配置项 (Cloudera Manager) 原值 推荐值 解释/后果
HDFS 块大小 (dfs.blocksize) 32 MiB 128 MiB 严重级别:高。32M 会导致元数据爆炸,拖慢 NameNode。修改后仅对新文件生效。
DataNode 失败卷容忍 (dfs.datanode.failed.volumes.tolerated) 0 1 允许坏一块盘而不宕机,生产环境必备。

同时针对异构集群,HDFS 的核心在于"不要让小机器撑死,不要让大机器闲死"。

3.1 开启机架感知 (Rack Awareness) 或 磁盘平衡

如果你的 nd11-16 磁盘也很小,数据很快会写满。

  • 优化项:定期执行 HDFS Balancer。

  • 操作 :CM -> HDFS -> 重新平衡。注意:设置阈值(Threshold)为 10%。

  • 高级技巧:如果小机器磁盘空间极小,可以在 dfs.datanode.du.reserved(保留磁盘空间)中,为小机器组单独设置更大的保留值(例如保留 20G),强迫数据更多写入大磁盘机器。

3.2 优化 DataNode 内存 (Heap Size)

  • 现状:默认可能只有 1GB。

  • 风险:写入大量文件时,DataNode 容易 OOM。

  • 策略(利用角色组)

    • nd11-16:保持 1GB 或 1.5GB(内存太小,不敢多给)。

    • nd1-nd6 :在 HDFS DataNode 角色组中新建组,将 Heap Size 调至 4GB。这能提升大节点处理并发读写的能力。

4. YARN 资源调度优化 (核心难点)

目标 :通过 "角色组 (Role Groups)" 技术,让大机器多出力,小机器不崩溃。原来的资源分配不均匀,导致大内存的机子资源浪费。

4.1 创建角色组 (Role Group)

  1. 进入 YARN -> 角色组 (页面顶部蓝色链接)。

  2. 确保只有以下两个 NodeManager 组(多余的 Group 1/2/3 请清空主机后删除)

  • NodeManager Default Group : 放入小内存节点 (nd11 - nd16)。
  • NodeManager-BigMem-32G (新建): 放入大内存节点 (nd1 - nd6)。

4.2 配置内存参数 (yarn.nodemanager.resource.memory-mb)

这是 YARN 能调度的总内存。

  • NodeManager Default Group (针对小机器):

    • 设置值 : 8 GiB

    • 计算逻辑: 11.6G(nd13物理) - 1.5G(系统) - 2G(DataNode) = 8.1G -> 取整 8G。

  • NodeManager-BigMem-32G (针对大机器):

    • 设置值 : 12 GiB

    • 计算逻辑: 32G(物理) - 12G(系统) - 4G(DataNode) - 4G(其他) = 12G -> 保守取 12G。

相关推荐
talle20211 天前
Hadoop分布式文件系统【HDFS】
大数据·hadoop·hdfs
星火开发设计2 天前
深入浅出HDFS:分布式文件系统核心原理与实践解析
大数据·数据库·hadoop·学习·hdfs·分布式数据库·知识
鲨莎分不晴4 天前
大数据的“数字金库”:HDFS 核心原理与操作指令全解
大数据·hadoop·hdfs
鹿衔`7 天前
Hadoop HDFS 核心机制与设计理念浅析文档
大数据·hadoop·hdfs
CXH72811 天前
YARN 资源调度与队列配置全解析
yarn
jiedaodezhuti12 天前
HDFS纠删码:以算法换冗余,实现海量数据存储的降本增效
大数据·hadoop·hdfs
郑泰科技15 天前
hbase 避坑F:\hbase\hadoop\sbin>start-dfs.cmd 系统找不到文件 hadoop。
大数据·数据库·hadoop·hdfs·hbase
AI_567818 天前
从“单文件存储”到“PB级集群”——HDFS如何让大数据“躺平”存储
大数据·hadoop·hdfs
是阿威啊21 天前
【第二站】本地hadoop集群配置yarn模式
大数据·linux·hadoop·yarn