storm笔记20190109

老吴2019-01-09 14:12后端2078浏览


版权声明:本篇文章为原创文章,转载请注明出处。https://yao2san.com/article/1833

  • parallelism_hint : executor数量,即线程数。

  • numTasks : task数量,即Spout或Bolt实例数。

  • executor的数量要小于等于task的数量,否则有线程空闲。

  • 默认情况下,一个supervisor节点会启动4个worker进程,

每个worker进程会启动1个executor,每个executor启动1个task。

  • 调整并行度一般是调整executor数量,task的数量在启动时就确定好了,无法改变。

分组策略(world-count为例):

TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("【spout】",new WordSrcSpout(),1).setNumTasks(1);//task数影响最终统计结果(仅限于本程序,因为将数据源放在了spout中,多个spout会多次发送)
builder.setBolt("【split】",new WordsSplitBolt(),2).shuffleGrouping("【spout】").setNumTasks(2);
builder.setBolt("【count】",new WordsCountBolt(),2).fieldsGrouping("【split】",new Fields("word")).setNumTasks(2);
builder.setBolt("【report】",new ReportBolt(),1).setNumTasks(1).globalGrouping("【count】");//全局分组,默认发给task-id最小的task

  • 日志格式

      //__acker的taskId为1,__system的taskId为-1
      //后面方括号里的表示taskId,例如[1 1]表示一个taskId为1,[2 4]表示有三个task,id为2,3,4
      10673 [SLOT_1027] INFO  o.a.s.d.executor - Loading executor __acker:[1 1]
      10673 [SLOT_1024] INFO  o.a.s.d.executor - Loading executor 【count】:[2 3]
      10695 [SLOT_1027] INFO  o.a.s.d.executor - Loaded executor tasks __acker:[1 1]
      10697 [SLOT_1024] INFO  o.a.s.d.executor - Loaded executor tasks 【count】:[2 3]
      10948 [SLOT_1027] INFO  o.a.s.d.executor - Finished loading executor __acker:[1 1]
      10953 [SLOT_1024] INFO  o.a.s.d.executor - Finished loading executor 【count】:[2 3]
    

    参考:https://www.cnblogs.com/ierbar0604/p/4887203.html

    task-id和component-id获取:参考TopologyContext属性

赞一个! (0)

文章评论(如需发表图片,请转至留言)