hadoop 記憶體分配規則
背景:由於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人立場,如涉及侵權,請及時告知。
相關文章
- Oracle記憶體分配經驗法則Oracle記憶體
- log_buffer的記憶體分配規律記憶體
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- Java虛擬機器7:記憶體分配原則Java虛擬機記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- java記憶體間互動規則Java記憶體
- JVM 記憶體模型 記憶體分配,JVM鎖JVM記憶體模型
- 探索iOS記憶體分配iOS記憶體
- Java 記憶體分配策略Java記憶體
- java jvm 記憶體分配JavaJVM記憶體
- [C++]記憶體分配C++記憶體
- 動態記憶體分配記憶體
- Pytorch視訊記憶體動態分配規律探索PyTorch記憶體
- java基礎-記憶體分配Java記憶體
- C語言-記憶體分配C語言記憶體
- java-方法記憶體分配Java記憶體
- go記憶體分配器Go記憶體
- Java 堆疊記憶體分配Java記憶體
- 記憶體分配策略學習記憶體
- 記憶體分配的確定記憶體
- weblogic的記憶體分配Web記憶體
- 記憶體分配方式 (轉)記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- JavaScript中記憶體使用規則--堆和棧JavaScript記憶體
- Objective-C 記憶體管理之ARC規則Object記憶體
- oracle undo分配規則Oracle
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- C/C++—— 記憶體位元組對齊規則C++記憶體
- mimalloc記憶體分配程式碼分析記憶體
- C語言的記憶體分配C語言記憶體
- 深度理解glibc記憶體分配記憶體
- 記憶體分配問題處理記憶體
- 物件的建立與記憶體分配物件記憶體
- go是如何分配記憶體的?Go記憶體