我想了解 Mesos 中不同角色的权重概念。我为 role1 提供了 2.0 的权重,为 role2 的权重为 5.0,并在 mesos 集群中启动了 Spark 框架,并要求相同数量的资源。我没有看到为这两个角色分配资源的方式有任何变化。因此,我想知道赋予权重的重要性,并展示一个使用权重进行资源预留的示例。
来自TYPED_TEST(MasterAllocatorTest, RebalancedForUpdatedWeights)
此测试可确保根据更新的权重正确重新平衡资源分配。
- 启动 Mesos master。
- 使用相同的资源注册三个代理。
- 提前时钟以强制代理注册。
- 群集资源总数(3 个代理):
cpus=6, mem=3072
。 -
框架1 使用默认权重 (1.0) 的
role1
注册, 所有资源都将提供给该框架,因为它是唯一的 到目前为止正在运行的框架。 -
Framework2向同样使用默认权重的
role2
注册。 由于所有资源都有未完成的报价,它不会获得任何报价 注册时到框架 1。role1 share = 1 (cpus=6, mem=3072) Framework1 share = 1 role2 share = 0 Framework2 share = 0
-
预计报价将被取消。
- 将
role2
的权重更新为 2.0。updateWeights
将撤销所有未完成的报价,撤销的报价资源将仅可用于更新后的权重一次 调用另一个分配。 -
触发批处理分配。
role1 share = 0.33 (cpus=2, mem=1024) Framework1 share = 1 role2 share = 0.66 (cpus=4, mem=2048) Framework2 share = 1