Apache storm 风暴管理者,工人,内存分配

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 我想

我有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 
我想知道:

  • 此插槽如何作用于主管节点?在我看来,我们为每个监控节点分配了8个端口。这意味着集群将有多少工人
  • 对于supervisor childopts,配置为4 Gb的Ram。这是什么意思?类似的灵光儿童选择
  • 假设我正在运行一个由3个工人组成的拓扑结构,那么使用的Ram和CPU内核是什么? 如何计算特定拓扑的Ram利用率和CPU
  • 8个端口->8个工人。为每个工人分配一个端口
  • supervisor.childopts将传递给supervisor进程。nimbus.childopts也是如此
  • 工人可能在不同的机器上运行。每个工人都是一个独立的过程。您可以注意每个进程的内存/cpu
    为了能够通过每个组件(螺栓/喷嘴)设置请求的资源(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的使用情况。