gpt4 book ai didi

hadoop - yarn : How to utilize full cluster resources?

转载 作者:可可西里 更新时间:2023-11-01 14:22:49 25 4
gpt4 key购买 nike

所以我有一个带有 7 个工作节点的 cloudera 集群。

  • 30GB 内存
  • 4 个 vCPU

以下是我发现的一些配置(来自 Google)对于调整我的集群性能很重要。我正在运行:

  • yarn.nodemanager.resource.cpu-vcores => 4
  • yarn.nodemanager.resource.memory-mb => 17GB(为操作系统和其他进程预留)
  • mapreduce.map.memory.mb => 2GB
  • mapreduce.reduce.memory.mb => 2GB
  • 运行 nproc => 4(可用处理单元数)

现在我担心的是,当我查看我的 ResourceManager 时,我看到可用内存为 119 GB,这很好。但是,当我运行繁重的 sqoop 作业并且我的集群处于峰值时,它仅使用 ~59 GB 内存,剩下 ~60 GB 内存未使用。

我看到的一种解决未使用内存问题的方法是将 map|reduce.memory 增加到 4 GB,这样我们每个节点最多可以使用 16 GB。

另一种方法是增加容器的数量,我不确定该怎么做。

  • 4 个核心 x 7 个节点 = 28 个可能的容器。 3 个正在被其他进程使用,目前只有 5 个可用于 sqoop 作业。

在这种情况下,提高集群性能的正确配置应该是什么?我可以增加容器的数量,比如每个核心 2 个容器吗?是否推荐?

如果您对集群配置有任何帮助或建议,我们将不胜感激。谢谢。

最佳答案

如果您的输入数据分为 26 个拆分,YARN 将创建 26 个映射器来并行处理这些拆分。

如果您有 7 个节点和 2 GB 映射器用于 26 个拆分,则重新分区应该类似于:

  • 节点 1:4 个映射器 => 8 GB
  • 节点 2:4 个映射器 => 8 GB
  • 节点 3:4 个映射器 => 8 GB
  • 节点 4:4 个映射器 => 8 GB
  • 节点 5:4 个映射器 => 8 GB
  • 节点 6:3 个映射器 => 6 GB
  • Node7:3 个映射器 => 6 GB
  • 总计:26 个映射器 => 52 GB

因此,如果所有映射器同时运行,则 map reduce 作业中使用的总内存将为 26x2=52 GB。也许如果你通过 reducer(s) 和 ApplicationMaster 容器添加内存用户,你可以在某个时候达到 59 GB,正如你所说的..

如果这是您所看到的行为,并且在这 26 个映射器之后完成了工作,那么就没有错。您只需要大约 60 GB 就可以通过将任务分散到所有节点来完成您的工作,而无需等待容器槽释放自己。其他免费的 60 GB 只是等待,因为您不需要它们。增加堆大小只是为了使用所有内存不一定会提高性能。

已编辑:

但是,如果您仍有大量映射器等待安排,那么可能是因为您的安装配置也使用 vcores 计算容器分配。这不是 Apache Hadoop 中的默认设置,但可以配置:

yarn.scheduler.capacity.resource-calculator : The ResourceCalculator implementation to be used to compare Resources in the scheduler. The default i.e. org.apache.hadoop.yarn.util.resource.DefaultResourseCalculator only uses Memory while DominantResourceCalculator uses Dominant-resource to compare multi-dimensional resources such as Memory, CPU etc. A Java ResourceCalculator class name is expected.

由于您将 yarn.nodemanager.resource.cpu-vcores 定义为 4,并且每个映射器默认使用 1 个 vcore,因此每个节点一次只能运行 4 个映射器。

在这种情况下,您可以将 yarn.nodemanager.resource.cpu-vcores 的值加倍到 8。它只是一个任意值,它应该使映射器的数量加倍。

关于hadoop - yarn : How to utilize full cluster resources?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com