Storm supervisors,workers分配内存
Storm supervisors,workers allocation of Memory
我有 3 个节点的风暴集群:supervisors-2,Nimbus-1。 3 个节点有 30 Gb 内存和 4 个 cpu 核心。在我配置的配置中:
supervisor.slots.ports : 8 (6700-6708)
supervisor.childopts :-Xmx4096m _JAAS_PLACEHOLDER
ui.childopts :-Xmx1024m _JAAS_PLACEHOLDER
nimbus.childopts :-Xmx6144m _JAAS_PLACEHOLDER
我想知道:
- 这个插槽如何作用于监管节点?在我看来,我们为每个主管节点分配了 8 个端口。这意味着我将为集群获得多少工人?
- 对于 supervisor childopts,它配置了 4 Gb 的 Ram。这是什么意思?同样灵气儿童选择?
- 假设如果我是 运行 具有 3 个工作人员的拓扑结构,那么使用的 Ram 和 CPU 核心是什么?
如何计算特定拓扑
的 Ram 利用率和 CPU
- 8 个端口 -> 8 个工人。每个工作人员都分配了一个端口。
- supervisor.childopts 被传递给主管进程。 nimbus.childopts 也是如此。
- worker 可能 运行 在不同的机器上。每个工人都是一个单独的进程。你可以记下每个进程的memory/cpu。
为了能够设置每个组件(bolt/spout)请求的资源(RAM & CPU)和每个节点上的可用资源,您可以使用this scheduler。通过这种方式,您可以在每个节点上指定可用 RAM 和 CPU,并确定每个资源应分配给每个工作进程的数量。
组件请求的资源
setMemoryLoad(堆上的数字):
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
.shuffleGrouping("word").setMemoryLoad(512.0);
设置CPU加载(双倍数量):
builder.setBolt("exclaim2", new HeavyBolt(), 1)
.shuffleGrouping("exclaim1").setCPULoad(450.0);
工作节点中的可用资源
将此参数添加到 storm.yaml
supervisor.memory.capacity.mb: [amount<Double>]
supervisor.cpu.capacity: [amount<Double>]
有关如何完成调度过程的更多详细信息,您可以阅读 this article
我有 3 个节点的风暴集群:supervisors-2,Nimbus-1。 3 个节点有 30 Gb 内存和 4 个 cpu 核心。在我配置的配置中:
supervisor.slots.ports : 8 (6700-6708)
supervisor.childopts :-Xmx4096m _JAAS_PLACEHOLDER
ui.childopts :-Xmx1024m _JAAS_PLACEHOLDER
nimbus.childopts :-Xmx6144m _JAAS_PLACEHOLDER
我想知道:
- 这个插槽如何作用于监管节点?在我看来,我们为每个主管节点分配了 8 个端口。这意味着我将为集群获得多少工人?
- 对于 supervisor childopts,它配置了 4 Gb 的 Ram。这是什么意思?同样灵气儿童选择?
- 假设如果我是 运行 具有 3 个工作人员的拓扑结构,那么使用的 Ram 和 CPU 核心是什么? 如何计算特定拓扑 的 Ram 利用率和 CPU
- 8 个端口 -> 8 个工人。每个工作人员都分配了一个端口。
- supervisor.childopts 被传递给主管进程。 nimbus.childopts 也是如此。
- worker 可能 运行 在不同的机器上。每个工人都是一个单独的进程。你可以记下每个进程的memory/cpu。
为了能够设置每个组件(bolt/spout)请求的资源(RAM & CPU)和每个节点上的可用资源,您可以使用this scheduler。通过这种方式,您可以在每个节点上指定可用 RAM 和 CPU,并确定每个资源应分配给每个工作进程的数量。
组件请求的资源
setMemoryLoad(堆上的数字):
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
.shuffleGrouping("word").setMemoryLoad(512.0);
设置CPU加载(双倍数量):
builder.setBolt("exclaim2", new HeavyBolt(), 1)
.shuffleGrouping("exclaim1").setCPULoad(450.0);
工作节点中的可用资源
将此参数添加到 storm.yaml
supervisor.memory.capacity.mb: [amount<Double>]
supervisor.cpu.capacity: [amount<Double>]
有关如何完成调度过程的更多详细信息,您可以阅读 this article