以下是Ubuntu下Hadoop性能调优的实践要点,涵盖硬件、系统、配置及监控等方面:
/etc/sysctl.conf,如调整vm.swappiness=10减少内存交换,优化网络参数(如net.core.rmem_max)提升传输效率。systemctl disable关闭非核心服务,减少系统资源占用。dfs.block.size(如128MB~256MB),减少小文件带来的元数据压力。dfs.replication(通常3副本),平衡存储与容错成本。mapreduce.map.memory.mb/reduce.memory.mb(建议256MB~1024MB),匹配集群资源。mapreduce.map.output.compress=true,选择snappy等高效压缩算法。yarn.nodemanager.resource.memory-mb为节点总内存的80%~90%,避免资源浪费。yarn.scheduler.maximum-allocation-mb与节点内存一致,防止任务超分配。hadoop-env.sh配置HADOOP_HEAPSIZE(如4GB~16GB),并针对DataNode/NameNode单独调整(如NameNode可设为服务器内存的50%)。-XX:+UseG1GC,并设置-XX:MaxGCPauseMillis=200控制停顿时间。-Xloggc:/path/to/gc.log),分析Full GC频率,必要时调整新生代/老年代比例。hdfs-site.xml验证dfs.datanode.data.dir配置)。yarn-site.xml中配置多队列(如default、high_priority),通过yarn.scheduler.capacity控制资源占比,优先保障关键任务。/var/log/hadoop下的NameNode/DataNode日志,排查异常(如磁盘IO过高、GC频繁)。TestDFSIO等工具模拟负载,验证配置效果,逐步调整参数至最优。yarn.scheduler)在不同版本中可能存在差异。参考来源: