Storm并发度怎么设置
导读:本文共2733.5字符,通常情况下阅读需要9分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Storm架构:master/slave 主节点:Nimbus 负责在集群上进行任务(Topology)的分发与资源的调度以及监控 工作节点:Supervisor 接收到任务请求后,启动一个或多个Worker进程来处理任务;默认情况下,一个Supervisor最多启动4个Worker 工作进程:Worker 在Supervisor中的子进程,存在... ...
目录
(为您整理了一些要点),点击可以直达。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并发度怎么设置的详细内容,希望对您有所帮助,信息来源于网络。