![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Storm
文章平均质量分 73
iteye_4064
这个作者很懒,什么都没留下…
展开
-
Storm Nimbus中的线程
nimbus计时器线程nimbus除主线程之外还有一个计数器线程,他主要有三个作用:调用mk-assignment方法启动新一轮任务的分配,调用do-cleanup方法清理storm元数据。这两项操作会每个nimbus.monitor.freq.secs执行一次,默认值:10秒。调用clean-inbox方法清理nimbus本地目录中的topoloyg的jar包。该操作每个nim...原创 2015-12-02 16:12:59 · 143 阅读 · 0 评论 -
Storm目录贴
目前我在Strom平台这些方面踩过坑,简单总结一下。 Storm平台监控[上]Storm平台监控[下]监控Storm Worker的系统资源情况Storm1.0.x新功能调研Storm任务常见问题总结Storm 反压机制Storm消息可靠处理Storm TickTuple 意外停止Storm Worker进程挂起导致漂移 Storm worker进程发生死锁Storm wor...原创 2016-10-02 02:35:05 · 97 阅读 · 0 评论 -
Storm任务常见问题总结
内存泄漏[OOM]容器类使用不当,导致对象无限增加。 线程泄漏修复前后对比,正常情况下100-200个线程之间就足够了。 通过命令快速查看进程的线程数量 , ps hH p <pid> | wc -l,这个命令查看一个进程(用H选项)的线程数for i in `ps aux | grep -v grep | grep java | aw...原创 2016-10-02 03:02:45 · 346 阅读 · 0 评论 -
Storm TickTuple 意外停止
Storm的滑动窗口TickTuple通常用来控制bolt定制执行入库操作,使用过程中遇到了TickTuple“意外停止”的情况。 场景描述Jiaodian任务共计使用12个worker,tick tuple间隔为5分钟。WebPvLogSpout & WebPvLogBolt的executor数量为12.WebPvLogSpout消费kafka topic,log...原创 2016-10-02 16:08:04 · 260 阅读 · 0 评论 -
Storm Worker端口冲突
storm任务启动过程中一个worker启动失败,通过supervisor日志发现一直在尝试启动,最后定位到时worker的端口被其他进程占用了导致启动失败,尤其是当机器上有大量短连接时会增加worker端口被占的几率。 解决办法其他服务避开worker端口通过内核参数配置将storm使用到的端口配置成以监听的方式启动 三种查看随机端口范...原创 2016-10-13 00:11:41 · 742 阅读 · 0 评论 -
HyperLogLog介绍
Redis HyperLogLog Redis 在 2.8.9 版本添加了 HyperLogLog 结构。Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。 在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB...原创 2016-10-24 00:36:55 · 427 阅读 · 0 评论 -
异常导致 Storm Worker 重启
spout一直报错导致worker重启2016-10-25 14:00:12 STDIO [ERROR] at com.mysql.jdbc.Util.getInstance(Util.java:386)2016-10-25 14:00:12 STDIO [ERROR] at com.mysql.jdbc.SQLError.createSQLException(SQLError.ja...原创 2016-10-26 01:16:10 · 619 阅读 · 0 评论 -
Storm Spout nextTuple策略
Storm从0.8.1之后,在Spout调用nextTuple方法时,如果没有emit tuple,那么默认需要休眠1ms,这个具体的策略是可配置的,因此可以根据自己的具体场景,进行设置,以达到合理利用cpu资源。 ISpoutWaitStrategy是Spout没有emit时等待策略的接口,目的是合理利用Cpu,默认提供了2个实现,一个什么也...原创 2016-11-03 21:00:51 · 1084 阅读 · 0 评论 -
Storm 反压机制
反压机制 Storm的反压机制不成熟直接带来的后果是洪峰流量或者流量预估不准确导致任务的worker OOM,频繁漂移。Storm1.0版本已经使用新的反压机制,社区解决方案:https://issues.apache.org/jira/browse/STORM-886https://github.com/apache/storm/pull/700 ...原创 2016-11-06 23:46:32 · 1150 阅读 · 0 评论 -
Storm Bolt中读取Tuple数据
Tuple接口有很多方法可以读取从上游组件发送过来的数据,这些方法可以分为2类。根据下标获取数据根据字段名获取数据读取数据方法public class TupleImpl extends IndifferentAccessMap implements Seqable, Indexed, IMeta, Tuple { private List<Ob...原创 2016-11-10 22:35:14 · 478 阅读 · 0 评论 -
百万用户同时在线之Strom任务设计
在线人数需求当天总在线人数同时在线人数同时在线人数统计周期1分钟 用户心跳数据采集登陆后前30秒每10秒汇报一次心跳登陆超过30秒每30秒汇报一次心跳Max心跳QPS=500W/30s=170W+ Strom任务设计使用Hyperloglog结构代替HashMap做过滤spout发送bolt使用localOrShuffleGrou...原创 2016-11-10 23:37:57 · 218 阅读 · 0 评论 -
Storm1.0.x新功能调研
简介storm1.0版本的重要功能都在1.0.0版本中发布,1.0.1版本中以fixed bug为主,调研使用1.0.1版本.storm1.0.0 :http://storm.apache.org/2016/04/12/storm100-released.html 默认配置:https://github.com/apache/storm/blob/v1.1.0/conf/defau...原创 2016-10-02 00:52:39 · 167 阅读 · 0 评论 -
Storm Worker进程挂起导致漂移
storm任务的worker漂移【worker重新分配】通常因为OOM、过长的FullGC以及zookeeper负载过高等原因会导致worker中的executor心跳信息无法更新到zookeeper时发生,这个场景与上面描述的不同,属于操作系统内核Bug导致。 问题描述dataVVCount 6月份4-6号发生了3次worker飘移,最近一次是port=5723的work...原创 2016-10-01 00:52:34 · 268 阅读 · 0 评论 -
Storm平台监控方案[ 下 ]
监控选型监控目标确定后,需要选择合适平台来实现数据收集、展示、以及告警。经过调研发现小米运维部开源出来的Openfalcon设计巧妙,组件足够松散,扩容方便,经过大规模数据考验,周边生态比较完善。数据展示部分做得比较粗糙,不够美观,控制起来不是很方便,果断选择展示效果更胜一筹的Grafana,Grafana有比较绚的展示效果,而且有可以自动化的api使用,很容易实现定制以及程序化生成D...原创 2016-09-28 01:14:14 · 664 阅读 · 1 评论 -
Storm Worker中的线程
worker中的每个计时器都对应一个java线程,使用计数器进行心跳保持以及获取元数据更新信息。创建woker mk-worker函数用于创建worker进程,主要工作包括: 启动相应计时器 创建worker中对应的executor 启动接收消息线程 worker心跳信息 do-heartbeat函数用户产生worker的心跳信息,这些信息被写入本地文...原创 2015-12-02 18:31:12 · 202 阅读 · 0 评论 -
Storm worker进程发生死锁
worker进程发生死锁[0.9.5]在0.9.5版本的storm发现netty通信过程中出现死锁,只发现过一次,发生频率较低。 死锁栈信息 Found one Java-level deadlock:============================="Thread-12-disruptor-worker-transfer-queue": wai...原创 2015-12-03 11:34:19 · 444 阅读 · 0 评论 -
Storm元数据总体交互
storm在zookeeper中存储结构 storm采用zookeeper存储nimbus、supervisor、worker以及executor之间共享的元数据,模块重启之后可以通过对应元数据恢复,所以storm是无状态的。 $rootPath/workerbeats/$topology_id/$node_port 存储由node和port指定worker的运行状态和...原创 2015-12-03 16:44:50 · 107 阅读 · 0 评论 -
Reading and Understanding the Storm UI [Storm UI explained]
http://www.malinga.me/reading-and-understanding-the-storm-ui-storm-ui-explained/ I tried to find a document that explains every parameter in the storm UI, but I did not find any. So I thoug...原创 2015-12-15 19:53:25 · 176 阅读 · 0 评论 -
监控Storm Worker的系统资源情况
storm平台是分布式的计算框架,任务运行状况跟踪起来会比较麻烦,通过在所有的supervisor的机器上部署进程采集脚本,并且将任务名字以及端口加入监控数据counter的tag中,以便于用来跟踪任务的运行情况。 监控效果 参考资料https://github.com/open-falcon/plugin/b...原创 2016-01-18 20:32:23 · 287 阅读 · 0 评论 -
Storm常用配置参数
storm.zookeeper.connection.timeoutstorm.zookeeper.session.timeout ZooKeeper客户端连接/session超时时间 nimbus.monitor.freq.secs nimbus检查心跳和重分配任务的时间间隔.注意如果是机器宕掉nimbus会立即接管并处理。 su...原创 2016-06-07 17:47:11 · 184 阅读 · 0 评论 -
Storm Worker网络连接泄漏
2016-06-11 21:40:22 b.s.d.nimbus [INFO] Executor dataRealYkvvcount-214-1464683013:[544 544] not alive2016-06-11 21:40:22 b.s.s.EvenScheduler [INFO] Available slots: (["8033393c-e639-41a5-a565-0...原创 2016-06-12 15:00:59 · 111 阅读 · 0 评论 -
Storm消息可靠处理
一个消息(tuple)从spout发送出来,可能导致成百上千消息基于此消息创建,这些消息构成一个树状结构,称之为“tuple tree”,如下图: 同时满足了下面两个条件,storm会认为消息被完整的处理了,如果在指定的时间内,一个消息衍生出来的tuple tree未被完全处理成功,则认为消息未被完整处理。这个超时时间可以通过任务参数Config....原创 2016-09-20 15:44:05 · 146 阅读 · 0 评论 -
解决zookeeper磁盘IO高的问题
为什么zookeeper会导致磁盘IO高由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉。 优化思路将zookeeper事务的日志放入内存中,降低对磁盘的依赖,受内存空间容量限制,需要控制事务日志大小。这个方案的风险就是一旦机房断电会导致zoo...原创 2016-09-27 00:15:06 · 1692 阅读 · 1 评论 -
Storm平台监控方案[ 上 ]
监控的初衷 社区版的storm除去storm UI可以提供一点信息外,实际上任务完全运行在一个黑盒子里,不仅不知道任务的运行情况,即使任务有问题时也无法及时通知用户来处理,事后排查问题又非常困难。为了解决这些问题,需要把任务运行的情况掌握起来。 监控的维度任务维度监控 组件处理耗时,单位:毫秒 任务组件tps worker处理耗时,单位:毫秒 wo...原创 2016-09-27 01:32:55 · 504 阅读 · 0 评论 -
2016年书架整理
书架上的书有很多,有的只看了目录,有的只看了很少的内容,为了避免成为目录党,整理一下2016年已经看过的书以及下一阶段要看的书,目的是督促自己要把看书计划落实下来,同时简单回顾一下看书过程中的收获。 第一部分是2016年已经看过的书:<<Java7并发编程与实战手册>> 这是一本书的内容非常偏重于练习,学习之前更好的选择是先看并发相关...原创 2017-01-01 00:22:08 · 165 阅读 · 0 评论