Apache storm 风暴管理者,工人,内存分配
我有3个节点的风暴集群:supervisors-2,Nimbus-1。3个节点有30 Gb的Ram和4个cpu核。在我配置的配置中:Apache storm 风暴管理者,工人,内存分配,apache-storm,Apache Storm,我有3个节点的风暴集群:supervisors-2,Nimbus-1。3个节点有30 Gb的Ram和4个cpu核。在我配置的配置中: supervisor.slots.ports : 8 (6700-6708) supervisor.childopts :-Xmx4096m _JAAS_PLACEHOLDER ui.childopts :-Xmx1024m _JAAS_PLACEHOLDER nimbus.childopts :-Xmx6144m _JAAS_PLACEHOLDER 我想
supervisor.slots.ports : 8 (6700-6708)
supervisor.childopts :-Xmx4096m _JAAS_PLACEHOLDER
ui.childopts :-Xmx1024m _JAAS_PLACEHOLDER
nimbus.childopts :-Xmx6144m _JAAS_PLACEHOLDER
我想知道:
为了能够通过每个组件(螺栓/喷嘴)设置请求的资源(RAM和CPU)以及每个节点上的可用资源,您可以使用。通过这种方式,您可以指定每个节点上的可用RAM和CPU,并确定每个工作进程应分配多少资源 按构成部分开列的所需资源 设置内存加载(堆上的数字):
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
.shuffleGrouping("word").setMemoryLoad(512.0);
builder.setBolt("exclaim2", new HeavyBolt(), 1)
.shuffleGrouping("exclaim1").setCPULoad(450.0);
setCPULoad(双倍金额):
builder.setBolt("exclaim1", new ExclamationBolt(), 3)
.shuffleGrouping("word").setMemoryLoad(512.0);
builder.setBolt("exclaim2", new HeavyBolt(), 1)
.shuffleGrouping("exclaim1").setCPULoad(450.0);
工作节点中的可用资源
将此参数添加到storm.yaml
supervisor.memory.capacity.mb:[金额]
supervisor.cpu.capacity:[金额]
有关如何完成调度过程的更多详细信息,您可以阅读这意味着8个端口8个工作进程,2个节点16个工作进程!我说的对吗…我能举个小例子来更好地理解。。。我想了解更多关于Ram和Cpu利用率的信息。当我们带3名工人时。使用了多少内存?同样,cpu?@Anji RAM利用率和cpu利用率完全基于您的业务逻辑。这意味着这取决于你给工人们的工作量。例如,如果一个worker具有存储1000000字符串对象的业务逻辑,那么您可能需要X GB的堆内存,当您增加到存储2000000对象时,use必须将您的堆增加到Y GB(其中Y>X)。@Anji In simple,我可以说,在所有worker中评论您的所有业务逻辑,并通过JVisualVM/Jconsole进行分析,这样您就可以得出一个worker生存需要多少RAM和CPU利用率。然后取消对业务逻辑的注释,并通过JVisualVM/Jconsole进行分析,并比较偏差。这样您就可以清楚地了解RAM和CPU的使用情况。