hadoop - 在我们的发现集群中提高 yarn 容器利用率的建议
当前设置
,我们有10个节点发现集群。 该集群的每个节点都有24个核心和264 GB内存,为后台进程保留一些内存和CPU,我们计划使用240 GB内存。 现在,在谈到容器设置时,由于每个容器可能需要1个核心,因此
最多可以有24个容器,每个容器具有10GB内存。 通常,群集的容器具有1-2 GB的内存,但是我们受到可用的内核的限制,或者我可能缺少 问题陈述作为我们的集群已被数据科学家和分析师广泛使用,仅拥有24个容器是不够的。这导致大量的资源争用。 有什么方法可以增加容器数量? 我们正在考虑的选项
如果我们要求团队运行多个tez查询(不单独进行),而是在一个文件中运行,那么我们最多将保留一个容器。 请求还有其他方法可以管理我们的发现集群。 是否有可能减小容器大小。 vcore(因为这是一个逻辑概念)可以被多个容器共享吗?
除非您使用YARN with CGroups并启用了yarn.nodemanager.resource.percentage-physical-cpu-limit
,否则Vcore只是一个逻辑单元,与CPU内核无关。大多数任务很少受CPU约束,而更常见的是受网络I / O约束。因此,如果要查看群集的总体CPU使用率和内存使用率,则应该能够根据浪费的(备用)容量来调整容器的大小。
您可以使用许多工具来衡量利用率,但是sar
,ganglia
和grafana
是显而易见的工具,但是您也可以查看Brendan Gregg的Linux Performance tools了解更多想法。
https://stackoverflow.com/questions/55255515/