Debian下Hadoop資源管理策略
YARN(Yet Another Resource Negotiator)是Hadoop資源管理的核心,其組件配置直接影響資源分配效率:
yarn.scheduler.minimum-allocation-mb
(最小容器內存,默認512MB)、yarn.scheduler.maximum-allocation-mb
(最大容器內存,默認8GB)、yarn.resourcemanager.hostname
(RM主機名)。yarn.nodemanager.resource.memory-mb
,默認8GB)、虛擬CPU核心數(yarn.nodemanager.resource.cpu-vcores
,默認8)、虛擬內存與物理內存的比值(yarn.nodemanager.vmem-pmem-ratio
,默認2.1,防止單個任務占用過多虛擬內存)。yarn.resourcemanager.am.max-attempts
(AM最大嘗試次數,默認2)、yarn.am.liveness-monitor.expiry-interval-ms
(AM存活監控過期時間,默認10分鐘)。YARN支持多種調度器,需根據集群場景選擇:
yarn.scheduler.capacity.root.default.capacity
設置為50%),保證高優先級隊列的資源保障。yarn.scheduler.fair.user-as-default-queue
設置為true,按用戶劃分隊列),避免資源饑餓。合理配置資源分配參數是提升集群利用率的關鍵:
mapreduce.map.memory.mb
、mapreduce.reduce.memory.mb
),如內存密集型任務可將reduce內存設置為map的2倍;同時需匹配YARN的最大容器內存(yarn.scheduler.maximum-allocation-mb
),避免超出限制。yarn.nodemanager.resource.cpu-vcores
(如8核節點可設置為8),并根據任務需求調整容器虛擬CPU核心數(yarn.scheduler.minimum-allocation-vcores
、yarn.scheduler.maximum-allocation-vcores
,如最小1核、最大4核)。spark.dynamicAllocation.enabled
(Spark作業)或YARN的動態資源分配功能,根據作業負載自動調整資源,提高集群利用率(如空閑時釋放資源,繁忙時分配更多資源)。yarn.log-aggregation-enable
設置為true),將各節點的運行日志收集至HDFS中央存儲(yarn.nodemanager.remote-app-log-dir
設置為/logs
),方便集中查看和分析;同時設置日志保留時間(yarn.log-aggregation.retain-seconds
,如7天),避免存儲溢出。ulimit -n
設置為65536)和網絡連接數(net.core.somaxconn
設置為1024),優化TCP參數(如增大緩沖區大小net.ipv4.tcp_rmem
、net.ipv4.tcp_wmem
),提升系統吞吐量。