bla*_*ury 15 hadoop hadoop-yarn
我是Hadoop的新手.当我运行一个作业时,我看到该作业的总资源分配为251248654 MB-seconds,24462 vcore-seconds.但是,当我找到有关群集的详细信息时,它显示有888个Vcores-total和15.90 TB Memory-total.谁能告诉我这是如何相关的?什么MB-second和Vcore-seconds指的是工作.
网上有什么资料可以了解这些吗?我试着冲浪,得到一个正确的答案
Man*_*lur 32
VCores-Total: Indicates the total number of VCores available in the cluster
Memory-Total: Indicates the total memory available in the cluster.
Run Code Online (Sandbox Code Playgroud)
例如,我有一个单节点集群,其中,我已将每个容器的内存要求设置为: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 (node) * 8 (containers) * 1 (vCore per container) = 8
Memory-Total = 1 (node) * 8 (containers) * 1228 MB (memory per container) = 9824 MB = 9.59375 GB = 9.6 GB
Run Code Online (Sandbox Code Playgroud)
现在让我们看看"MB-seconds"和"vcore-seconds".根据代码中的描述(ApplicationResourceUsageReport.java):
MB-seconds:应用程序分配的累计内存量(以兆字节为单位)乘以应用程序运行的秒数.
VCORE秒:聚合数应用程序已分配时间的应用程序已经运行的秒数vcores的.
描述是自我解释的(记住关键词:聚合).
让我用一个例子解释一下.我运行了一个DistCp作业(产生了25个容器),我得到了以下内容:
Aggregate Resource Allocation : 10361661 MB-seconds, 8424 vcore-seconds
Run Code Online (Sandbox Code Playgroud)
现在,让我们粗略计算每个容器花费的时间:
For memory:
10361661 MB-seconds = 10361661 / 25 (containers) / 1228 MB (memory per container) = 337.51 seconds = 5.62 minutes
For CPU
8424 vcore-seconds = 8424 / 25 (containers) / 1 (vCore per container) = 336.96 seconds = 5.616 minutes
Run Code Online (Sandbox Code Playgroud)
这表明平均每个容器需要5.62分钟才能执行.
希望这说清楚.您可以执行工作并自行确认.