Ubuntu上Hadoop资源分配优化指南
一 基线容量与资源边界
yarn node -list -all、yarn application -listhdfs dfsadmin -reportjps二 YARN内存与CPU分配
yarn.nodemanager.resource.memory-mb:节点可分配给容器的总内存(MB)。yarn.scheduler.maximum-allocation-mb:单个容器可申请的最大内存(MB)。yarn.nodemanager.resource.cpu-vcores:节点可分配给容器的总虚拟核数。yarn.scheduler.maximum-allocation-vcores:单个容器可申请的最大虚拟核数。maximum-allocation-mb/vcores设置为与单容器上限一致或略高,避免过度申请。cpu-vcores≈4–5。<property><name>yarn.nodemanager.resource.memory-mb</name><value>19456</value></property><property><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value></property><property><name>yarn.nodemanager.resource.cpu-vcores</name><value>5</value></property><property><name>yarn.scheduler.maximum-allocation-vcores</name><value>4</value></property>三 HDFS与存储分配
dfs.blocksize:默认128MB;大文件/长任务可适当增大以减少NameNode元数据与任务数;小文件多则不宜过大。dfs.replication:默认3;可靠性优先可保持3,成本敏感可评估2,但需权衡故障恢复与读取性能。dfs.namenode.handler.count:提高NameNode RPC并发处理线程数,缓解元数据压力(结合堆内存与CPU调整)。dfs.datanode.handler.count:提升DataNode请求处理能力,配合网络与磁盘I/O能力。dfs.datanode.data.dir配置为多个目录(多盘分散I/O)。四 操作系统与网络优化
net.ipv4.tcp_nodelay=1、net.ipv4.tcp_window_scaling=1,适度增大TCP缓冲区与队列,降低Shuffle与传输时延。net.topology.script.file.name),优化数据本地性与跨机架流量;大规模集群建议使用10Gbps及以上互联。五 监控验证与常见瓶颈
TestDFSIO -write/-read评估读写吞吐;NNBench评估NameNode压力。TeraSort评估排序与Shuffle性能;结合业务作业进行回归。