记一次Strom任务失败导致的大量重复数据

问题:
大量的failed,导致storm大量重复数据。
原因:
spout的消息队列过大,bolt处理不过来,产生大量堆积。加上每条消息处理完成的最大默认时间是30S,如果30S没有处理完成就会认为失败。ack机制,不停的重复发送。


解决:
修改两个参数:
topology.message.timeout.secs: 30
topology.max.spout.pending:null 

如果30秒内消息没有被处理完成,则会被认为failed,如果开启了ack机制,将会不停的重新发送。
如果处理能力比较低的话,可以把该值调大。
#maximum amont of time a message has to complete before it is considered failed
topology.message.timeout.secs: 30


一个spout task最多发送的tuple数量,应用于单个的task,而不是整个的spouts或topology。
如果处理能力比较低的话,可以把这个值调小。
这个值的大小取决于bolt的处理能力。
bolt的处理能力的阈值可以通过界面UI观察,通过消息的failed开始的数量可以计算出。
topology.max.spout.pending:null 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值