amazon-web-services - emr-6.0.0-beta2 HiveLLAP 低 vCore 分配和利用率
问题描述
我有一个 21 节点的 Hive LLAP EMR 集群。Hive LLAP 守护程序不消耗可用的集群 VCPU 分配。160 个内核可用于 YARN,但每个 LLAP 守护程序仅使用 1 个 vCore。每个节点有 64 GB 内存和 8 个 vCore。每个节点运行 1 个 LLAP 守护程序并为其分配 70% 的内存,但只有 1 个 vCore。一些属性:
yarn.nodemanager.resource.cpu-vcores=8;
yarn.scheduler.minimum-allocation-vcores=1;
yarn.scheduler.maximum-allocation-vcores=128;
hive.llap.daemon.vcpus.per.instance=4;
hive.llap.daemon.num.executors=4;
为什么守护进程没有分配超过 1 个 vcore ?执行程序是否能够使用可用的 vcore 或只能使用分配给守护程序的 1 个 vcore。
解决方案
如果你在 YARN ui 中看到这个,可能你必须添加这个
yarn.scheduler.capacity.resource-calculator: org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
我也有同样的困惑。实际上,DefaultResourceCalculator
在 Yarn UI 中使用时,它只计算内存使用情况,在后台它可能使用了超过 1 个核心,但您会看到只使用了 1 个核心。另一方面DominantResourceCalculator
,计算核心和内存以进行资源分配,并显示核心和内存的实际数量。
您可以启用神经节或查看 EMR 指标以了解更多详细信息。
推荐阅读
- kql - 来自任何包含“名称”字样的行的 KQL
- android - 如何在 Kotlin 上为按钮设置 BackgroundColor?
- python - 计算在 False 布尔值之间组合在一起的 True 布尔值的数量并在列表中返回
- sql-server - 在 SQL Server 的 string_agg 函数中使用 distinct
- angular - 如何使用日历正式创建自定义验证
- javascript - Tinymce删除编辑器问题
- python - 所以我试图做到这一点,这样你就可以看到已经在机器人上运行的命令的数量,但我得到了一个错误
- android - “E/ViewRootImpl:sendUserActionEvent() mView 返回”,而我尝试在自动完成搜索栏中输入(Google Places API)
- django - 录制用户的声音并将其保存到 Django 中的 db
- python - 简单的 Python 猜谜游戏