hadoop - 在我们的发现集群上提高纱线容器利用率所需的建议
问题描述
当前设置
- 我们有 10 个节点的发现集群。
- 该集群的每个节点都有 24 个内核和 264 GB 内存 为后台进程保留一些内存和 CPU,我们计划使用 240 GB 内存。
- 现在,当涉及到容器设置时,因为每个容器可能需要 1 个核心,所以我们最多可以有 24 个容器,每个容器都有 10GB 内存。
- 通常集群有 1-2 GB 内存的容器,但我们受到可用内核的限制,或者我可能遗漏了一些东西
问题陈述
由于我们的集群被数据科学家和分析师广泛使用,只有 24 个容器是不够的。这会导致严重的资源争用。
有什么办法可以增加容器的数量吗?
我们正在考虑的选项
- 如果我们要求团队在一个文件中运行许多 tez 查询(不是单独的),那么我们将最多保留一个容器。
要求
- 有没有其他方法可以管理我们的发现集群。
- 是否有可能减小容器尺寸。
- vcore(因为它是一个逻辑概念)可以由多个容器共享吗?
解决方案
Vcores 只是一个逻辑单元,与 CPU 核心无关,除非您将YARN 与 CGroups 一起使用并已yarn.nodemanager.resource.percentage-physical-cpu-limit
启用。大多数任务很少受 CPU 限制,但更常见的是受网络 I/O 限制。因此,如果您要查看集群的整体 CPU 利用率和内存利用率,您应该能够根据浪费的(备用)容量调整容器的大小。
您可以使用许多工具来衡量利用率,但sar
,ganglia
并且grafana
是显而易见的工具,但您也可以查看 Brendan Gregg 的Linux 性能工具以获取更多想法。
推荐阅读
- flutter - MacOS 新手 - 无法从 CMD 运行颤振命令?
- discord.py - 我无法在某些不和谐频道中激活我的代码
- python - 如何在没有分隔符的熊猫的情况下拆分列
- amazon-cloudfront - 如何将 lambda 连接到 CloudFront?AWS CDK JS
- vue.js - 是否有必要为一个页面中的单个调用创建一个 ui 组件?
- flutter - VideoPlayerController Flutter 中的位置
- firebase - 登录后未导航到主页
- gradle - 现有项目的 Intellij Gradle 模块依赖项显示编译错误
- google-sheets - 谷歌表格通过具有第一个单元格地址和长度来获取范围
- python - 如何使用视频标签将视频从 localhost 流式传输到 Web 浏览器?