前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >storm开发tips

storm开发tips

作者头像
jiewuyou
发布2022-09-29 17:46:12
1340
发布2022-09-29 17:46:12
举报
文章被收录于专栏:数据人生数据人生

storm和MapReduce框架是类似的,但在生成数据时,往往是增量更新。因为Trident的出现,开发一套实时数据程序非常方便。本人将介绍小米统计storm开发过程中使用的一些优化点。

acker数据设置适中

为了保证数据流被正确的消耗,storm通过acker来跟踪各个数据流,并维持各个数据流的应答。acker设置过小,对任务应答会处理不过来。acker设置过大,会消耗比较多的资源。根据需要可以设置几十个

对应参数:topology.acker.executors

超时时间不要设置过长

设置过长,会导致之前没commit的数据导致该offset之后的数据被重新处理。如果设置时间为6个小时,那么6个小时前一个数据没有被commit,可能导致这6个小时内的数据都被重新消耗一次。

减少shuffle的数据

shuffle过程,会极大的增加网络IO,开发过程中应该尽量减少shuffle的数据量。如果可能,最好在一台节点上处理所有能处理的任务,不要将不必要的数据通过shuffle分发到下一个过程处理。

trident接口的异常处理

用trident写storm程序时,实现继承类的接口时,如果抛出异常,该bolt对应线程会挂掉,并打印出异常信息,对应的消息会被重试,同时重启一个bolt。所以对于已知的异常,一定要处理

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • acker数据设置适中
  • 超时时间不要设置过长
  • 减少shuffle的数据
  • trident接口的异常处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档