1. 程式人生 > >關於mapreduce 幾個引數的解釋

關於mapreduce 幾個引數的解釋

    以map任務為例,Container其實就是在執行一個指令碼檔案,而指令碼檔案中,會執行一個 Java 的子程序,這個子程序就是真正的 Map Task,mapreduce.map.java.opts 其實就是啟動 JVM 虛擬機器時,傳遞給虛擬機器的啟動引數,而預設值 -Xmx200m 表示這個 Java 程式可以使用的最大堆記憶體數,一旦超過這個大小,JVM 就會丟擲 Out of Memory 異常,並終止程序。而 mapreduce.map.memory.mb 設定的是 Container 的記憶體上限,這個引數由 NodeManager 讀取並進行控制,當 Container 的記憶體大小超過了這個引數值,NodeManager 會負責 kill 掉 Container。在後面分析 yarn.nodemanager.vmem-pmem-ratio 這個引數的時候,會講解 NodeManager 監控 Container 記憶體(包括虛擬記憶體和實體記憶體)及 kill 掉 Container 的過程。