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人立場,如涉及侵權,請及時告知。
相關文章
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- java記憶體間互動規則Java記憶體
- Pytorch視訊記憶體動態分配規律探索PyTorch記憶體
- 動態記憶體分配記憶體
- 記憶體的分配與釋放,記憶體洩漏記憶體
- java-方法記憶體分配Java記憶體
- go記憶體分配器Go記憶體
- java基礎-記憶體分配Java記憶體
- C語言-記憶體分配C語言記憶體
- 記憶體分配策略學習記憶體
- 深度理解glibc記憶體分配記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- JavaScript中記憶體使用規則--堆和棧JavaScript記憶體
- Java記憶體模型以及happens-before規則Java記憶體模型APP
- JAVA記憶體模型和Happens-Before規則Java記憶體模型APP
- oracle undo分配規則Oracle
- 【Java】 記憶體分配全面淺析Java記憶體
- JVM GC 與 記憶體分配策略JVMGC記憶體
- C++動態記憶體分配C++記憶體
- 記憶體分配問題處理記憶體
- mimalloc記憶體分配程式碼分析記憶體
- C語言的記憶體分配C語言記憶體
- C中的記憶體分配模型記憶體模型
- [20210126]探究oracle記憶體分配.txtOracle記憶體
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- jvm:記憶體模型、記憶體分配及GC垃圾回收機制JVM記憶體模型GC
- 使用CRM軟體系統建立的分配規則
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- 圖解Go語言記憶體分配圖解Go記憶體
- Android O 8.0 以上 bitmap記憶體分配Android記憶體
- v8記憶體分配淺談記憶體
- curl 中減少記憶體分配操作記憶體
- JVM 之 記憶體分配與回收策略JVM記憶體
- 深入理解golang:記憶體分配原理Golang記憶體
- Netty 中的記憶體分配淺析Netty記憶體
- Java記憶體區域與分配策略Java記憶體
- 【記憶體管理】頁面分配機制記憶體
- MySQL OOM 系列一 Linux記憶體分配MySqlOOMLinux記憶體