Debian下Hadoop常见性能瓶颈与定位路径
一 常见瓶颈分类
二 快速定位步骤
三 典型瓶颈与判断方法
| 瓶颈点 | 主要征兆 | 快速验证 | 优化方向 |
|---|---|---|---|
| 磁盘I/O | 写入/读取吞吐上不去,iostat持续高util | TestDFSIO读写、iostat -x 1 | 使用SSD、多磁盘并行(多dfs.datanode.data.dir)、增大HDFS块大小、优化Linux I/O调度 |
| 网络带宽/延迟 | 跨节点Shuffle慢、作业长尾、iperf带宽低 | iperf带宽/丢包、ping RTT | 提升网络带宽、降低网络延迟、优化数据本地化、减少跨机架传输 |
| 内存与Swap | 容器/进程被回收、GC频繁、系统抖动 | top/vmstat见swap、dmesg OOM | 增加内存、关闭swap、合理设置YARN容器内存与JVM堆 |
| NameNode/元数据 | 启动慢、UI响应慢、频繁Full GC | NameNode日志与GC日志、堆使用 | 增大NameNode堆、提升并发处理线程、优化HA与元数据落盘策略 |
| 数据倾斜 | 少数Reduce/Task耗时远超平均 | 作业Counter与日志、Shuffle数据量 | Salting、自定义Partitioner、Combiner、重分区/采样 |
| Shuffle与I/O | Shuffle读写高、磁盘/网络打满 | 作业Shuffle指标、iostat/ifstat | 调整mapreduce.task.io.sort.factor/mb、压缩Shuffle、合理并行度 |
| 操作系统限制 | 文件句柄/连接数不够、连接失败 | ulimit -n、netstat统计、系统日志 | 提升fs.file-max、net.core.somaxconn等内核与用户态限制 |
| 数据本地化不足 | 大量远程读、网络占用高 | Web UI本地/远程任务比例 | 数据均衡、机架感知、调度策略优化、提高本地磁盘命中率 |
四 针对性优化要点
五 最小验证流程