以下是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)在不同版本中可能存在差異。參考來源: