hadoop 記憶體分配規則

我就是曹總發表於2019-05-11

背景:由於hadoop是分散式叢集,對機器資源分配極為重要,分配過大,記憶體溢位,分配過小,執行緩慢

Hadoop的記憶體配置有兩種方法:
利用手動安裝hadoop的幫助指令碼;手動計算yarn和mapreduce記憶體大小進行配置.此處只記錄指令碼計算方法:
用wget命令從hortonworks上下載指令碼
python hdp-configuration-utils.py <options>
wget  http://public-repo-1.hortonworks.com/HDP/tools/2.1.1.0/hdp_manual_install_rpm_helper_files-2.1.1.385.tar.gz
解壓檔案,執行hdp-configuration-utils.py指令碼,執行以下命令
引數主要有以下幾個:
Option
 Description
-c CORES
 The number of cores on each host.
-m MEMORY    
 The amount of memory on each host in GB.
-d DISKS
 Thenumber of disks on each host.
-k HBASE
"True"if HBase is installed, "False" if not.      
其中:Core的數量可以通過nproc命令計算;記憶體大小可以通過free –m命令來計算;磁碟的數量可以同過lsblk –s或sudo fdisk –l命令來檢視。

python hdp-configuration-utils.py  -c 24 -m 16 -d 8 -k False

計算好每個選項需要的值,執行命令。例如:

將返回如下結果:

Using cores=24 memory=16GB disks=8 hbase=False
Profile: cores=24 memory=14336MB reserved=2GB usableMem=14GB disks=8    
Num Container=14
Container Ram=1024MB
Used Ram=14GB
Unused Ram=2GB
yarn.scheduler.minimum-allocation-mb=1024
yarn.scheduler.maximum-allocation-mb=14336
yarn.nodemanager.resource.memory-mb=14336
mapreduce.map.memory.mb=1024
mapreduce.map.java.opts=-Xmx768m
mapreduce.reduce.memory.mb=2048
mapreduce.reduce.java.opts=-Xmx1536m
yarn.app.mapreduce.am.resource.mb=1024
yarn.app.mapreduce.am.command-opts=-Xmx768m
mapreduce.task.io.sort.mb=384
tez.am.resource.memory.mb=2048
tez.am.java.opts=-Xmx1536m
hive.tez.container.size=1024
hive.tez.java.opts=-Xmx768m
hive.auto.convert.join.noconditionaltask.size=134217000

最後可以參考以上結果來配置mapred-site.xml和yarn-site.xml檔案中引數的值。



我就是曹總最後編輯於:4年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章