1、在hadoop里面運行程序的時候,查看某個任務的具體信息如下:
[hadoop@master monitor]$ yarn application -list

如上圖,這里面的Aggregate Resource Allocation : 38819 MB-seconds, 104 vcore-seconds是什么意思呢?
例如,我有一個單節點集群,其中,我已將每個容器的內存要求設置為:1228 MB(由config:yarn.scheduler.minimum-allocation-mb確定)和每個容器的vCore為1 vCore(由config確定: yarn.scheduler.minimum-allocation-vcores)。我已將:yarn.nodemanager.resource.memory-mb設置為9830 MB。因此,每個節點總共可以有8個容器(9830/1228 = 8)。因此,對於我的集群:VCores-Total = 1(節點)* 8(容器)* 1(每個容器的vCore)= 8
內存總數= 1(節點)* 8(容器)* 1228 MB(每個容器的內存)= 9824 MB = 9.59375 GB = 9.6 GB
下圖顯示了我的群集指標:現在讓我們看看“MB-seconds”和“vcore-seconds”。根據代碼中的描述(ApplicationResourceUsageReport.java):MB-seconds:應用程序分配的聚合內存量(以兆字節為單位)乘以應用程序運行的秒數。vcore-seconds:應用程序分配的聚合數量的vcores乘以應用程序運行的秒數。描述是自我解釋的(記住關鍵詞:聚合)。讓我用一個例子解釋一下。我運行了一個DistCp作業(產生了25個容器),我得到了以下內容:聚合資源分配:10361661 MB-seconds,8424 vcore-seconds
現在,讓我們粗略計算每個容器花費的時間:對於內存:
10361661 MB-seconds = 10361661/25(容器)/ 1228 MB(每個容器的內存)= 337.51秒= 5.62分鍾
對於CPU
8424 vcore-seconds = 8424/25(容器)/ 1(每容器vCore)= 336.96秒= 5.616分鍾
這表明平均每個容器需要5.62分鍾才能執行。希望這說清楚。您可以執行某項工作並自行確認。
