Storm并发度怎么设置(storm,开发技术)

时间:2024-05-03 13:37:28 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Storm%E5%B9%B6%E5%8F%91%E5%BA%A6%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE

  Storm架构:master/slave

  主节点:Nimbus

  负责在集群上进行任务(Topology)的分发与资源的调度以及监控

  工作节点:Supervisor

  接收到任务请求后,启动一个或多个Worker进程来处理任务;默认情况下,一个Supervisor最多启动4个Worker

  工作进程:Worker

  在Supervisor中的子进程,存在着若干个Spout和Bolt线程,来负责Spout和Bolt组件处理任务(实际是开启的executor线程)

  作业:Topologies(死循环,不会结束)

  Spout:获取数据的组件

  Bolt:处理数据的组件

  Stream:Spout和Bolt之间数据流动的通道

  Tuple:

  1)Stream的最小组成单位,Spout向Bolt发送一次数据叫一个Tuple

  2)同一个Stream中Tuple的类型相同,不同的Stream中可能相同/不同

  3)一个key-value形式的Map

  数据流分发策略(Stream groupings):

  解决Spout和Bolt之间数据传输(发送Tuple元组)的问题

  1)shuffleGrouping:

  随机派发Stream中的Tuple到Bolt中

  2)fieldsGrouping:

  根据字段的哈希值与Bolt个数进行取模操作然后进行分组发送,一个节点是一个Worker, 一个Bolt是一个task, 全部节点的Spout或Bolt的个数叫并发度。

  Storm并发度设置:

  1.Worker并发度:

  首先按照集群规模和集群的物理位置来设定

  一般会把Worker均分到每一个节点里, 一个supervisor默认设置一个Worker

  2.Spout数量设定:

  Spout总数默认等于Kafka(消息中间件)对应Topic的分区数,提高吞吐速度

  一般一个Worker设置一个Spout

  3.Bolt1数量设定:

  首先根据数据量和处理数据的时间来设定

  4.Bolt2数量设定:

  首先根据数据量和处理数据的时间来设定,因为Bolt1传过来的中间结果数据已经减少很多,Bolt2的数量可以酌情减少。

  容错机制:异或方式<相同为,不同为1>

  整个过程中的tupleId按顺序两两异或到最后

  若结果为,则数据正确,否则错误

  出现数据运算失败的两种情况:

  execute(){

  1.异常(数据异常)

  }

  Ⅰ.

  1.比如对订单信息做处理, 处理成功后, 把订单信息ID存储到Redis(set)

  2.信息发送时, 判断是否处理过此信息

  execute(){

  if()

  else()

  }

  Ⅱ.

  消息的可靠性保障和acker机制: open / nextTuple / ack / fail/ close

  Ⅰ.Spout类:

  Ⅱ.acker任务:

  Ⅲ.移除可靠性:

本文:Storm并发度怎么设置的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java中的对象流和序列化怎么用下一篇:

41 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18