我是Hadoop的新手。运行作业时,该作业的总资源分配为251248654 MB-秒,24462 vcore-s。但是,当我找到有关群集的详细信息时,它显示总共有888个Vcores和总共15.90 TB内存。谁能告诉我这有何关系? MB秒和Vcore秒指的是什么作业。

在线上有什么 Material 可以了解这些吗?我尝试冲浪,一点都得到了正确的答案

最佳答案

VCores-Total: Indicates the total number of VCores available in the cluster
Memory-Total: Indicates the total memory available in the cluster.
例如我有一个单节点群集,在这里,我已将每个容器的内存要求设置为:1228 MB(由config:yarn.scheduler.minimum-allocation-mb决定),每个容器的vCores到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
下图显示了我的集群指标:
hadoop - YARN中工作的汇总资源分配-LMLPHP
现在,让我们看看“MB-seconds” “vcore-seconds”
根据代码中的描述(ApplicationResourceUsageReport.java):
MB-秒:应用程序已分配的内存总量(以兆字节为单位)乘以应用程序已运行的秒数。
vcore-seconds :应用程序已分配的vcore的总数乘以应用程序已运行的秒数。
描述是不言自明的(记住关键字:Aggregated)。
让我用一个例子解释一下。
我运行了一个DistCp作业(产生了25个容器),为此我得到了以下信息:
Aggregate Resource Allocation: 10361661 MB-seconds, 8424 vcore-seconds
现在,让我们对每个容器花费多少时间做一些粗略的计算:
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
这表示平均每个容器执行时间为5.62分钟。
我希望这一点很清楚。您可以执行作业并自行确认。

关于hadoop - YARN中工作的汇总资源分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33866888/

10-12 23:43