- 浏览: 289531 次
- 性别:
- 来自: 北京
最新评论
-
Ann-phei:
wooding老师,有没有出书计划呀,是否方便加我QQ详聊呀 ...
2016年书架整理 -
可乐瓶里的小辣椒:
Storm目录贴 -
可乐瓶里的小辣椒:
...
TCP编号系统 -
woodding2008:
tivan 写道反压的你有进行测试过吗?有做功能测试,没有做性 ...
Storm1.0.x新功能调研 -
tivan:
反压的你有进行测试过吗?
Storm1.0.x新功能调研
文章列表
Storm任务常见问题总结
- 博客分类:
- Storm
内存泄漏[OOM]
容器类使用不当,导致对象无限增加。
线程泄漏
修复前后对比,正常情况下100-200个线程之间就足够了。
通过命令快速查看进程的线程数量 , ps hH p <pid> | wc -l,这个命令查看一个进程(用H选项)的线程数
for i in `ps aux | grep -v grep | grep java | awk '{print $2}'` ; do echo $i "-->" `ps hH p $i | wc -l` ; done
81109 --> 29
81112 ...
简介
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/defaults.yaml
集群配置:http://storm.apache.org/releases/current/Setting-up-a-Storm-cluster.html
运行任务:http:// ...
Storm Worker进程挂起导致漂移
- 博客分类:
- Storm
storm任务的worker漂移【worker重新分配】通常因为OOM、过长的FullGC以及zookeeper负载过高等原因会导致worker中的executor心跳信息无法更新到zookeeper时发生,这个场景与上面描述的不同,属于操作系统内核Bug导致。
问题描述
dataVVCount 6月份4-6号发生了3次worker飘移,最近一次是port=5723的worker发生飘移。
飘移的worker都发生在a01/a02两台机器
环境检查
a01/a02操作系统Centos6.6,内核2.6.32-302.el6.x86_64【与其他机器不一致】
通过 ...
Storm平台监控方案[ 下 ]
- 博客分类:
- Storm
监控选型
监控目标确定后,需要选择合适平台来实现数据收集、展示、以及告警。
经过调研发现小米运维部开源出来的Openfalcon设计巧妙,组件足够松散,扩容方便,经过大规模数据考验,周边生态比较完善。数据展示部分做得比较粗糙,不够美观,控制起来不是很方便,果断选择展示效果更胜一筹的Grafana,Grafana有比较绚的展示效果,而且有可以自动化的api使用,很容易实现定制以及程序化生成Dashboard,这里很感谢快网同学为Grafana与Openfalcon系统桥接插件做出的努力。
遇到的坑
Openfalcon的dashboard等个别组件依赖python,安装比较困难 ...
Storm平台监控方案[ 上 ]
- 博客分类:
- Storm
监控的初衷
社区版的storm除去storm UI可以提供一点信息外,实际上任务完全运行在一个黑盒子里,不仅不知道任务的运行情况,即使任务有问题时也无法及时通知用户来处理,事后排查问题又非常困难。为了解决这些 ...
为什么zookeeper会导致磁盘IO高
由于早期的storm版本心跳信息严重依赖zookeeper,心跳风暴会导致zookeeper的事务日志频繁的写磁盘,带来的问题首当其冲的是磁盘IO会爆掉。
优化思路
将zookeeper事务的日志放入内存中,降低对磁盘的依赖,受内存空间容量限制,需要控制事务日志大小。
这个方案的风险就是一旦机房断电会导致zookeeper中的部分数据丢失,所以特别重要的数据不建议这样做,SSD会是个不错的选择。
方案步骤
事务日志指向内存文件系统dataLogDir=/dev/shm
关闭自动事务日志的管 ...
ZooKeeper测试
- 博客分类:
- Zookeeper
测试环境
测试版本
java version "1.7.0_10" 64位
zookeeper 3.4.5 xmx2G
zookeeper Server 3台
192.168.100.53 服务端口2181
192.168.100.54 服务端口2181
192.168.100.55 服务端口2181
64G内存,12核
功能测试
事件消费者
...
方法说明:
/** * Executes the given tasks, returning a list of Futures holding * their status and results when all complete. * {@link Future#isDone} is {@code true} for each * element of the returned list. * Note that a <em>completed</em> task could have * termin ...
方法描述:
/**
* Executes the given tasks, returning the result
* of one that has completed successfully (i.e., without throwing
* an exception), if any do. Upon normal or exceptional return,
* tasks that have not completed are cancelled.
* The results of this met ...
Storm消息可靠处理
- 博客分类:
- Storm
一个消息(tuple)从spout发送出来,可能导致成百上千消息基于此消息创建,这些消息构成一个树状结构,称之为“tuple tree”,如下图:
同时满足了下面两个条件,storm会认为消息被完整的处理了,如果在指 ...
RedisCluster
- 博客分类:
- Redis
Redis集群是Redis提供分布式数据库方案,集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能。
节点
一个Redis集群通常由多个节点(node)组成,在刚开始的时候,每个节点都是互相独立的 ...
Zookeeper Session机制
- 博客分类:
- Zookeeper
1、zookeeper session是什么
客户端与服务端的任何交换操作都与会话相关,包括:临时节点的生命周期,客户端的请求顺序执行以及Watcher通知机制。
2、客户端操作
2.1、Zookeeper客户端一次创建会话的过程。
2.2、构造会话请求
long sessId = (seenRwServerBefore) ? sessionId : 0;
ConnectRequest conReq = new ConnectRequest(0, lastZxid,sessionTimeout, sessId, sessionPasswd);
outgoin ...
在Redis中,用户可以通过执行SLAVEOF命令或设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则称为从服务器(slave)。假设有两个Redis实例,127.0.0.1:6379和127.0.0.1:6380,6379设置为主,6380作为从,进行读写数据测试。
6380>SLAVEOF 127.0.0.1 6379
6379>SET key “test”
6380>GET key
6379>DEL key
6379>EX ...
Storm Worker网络连接泄漏
- 博客分类:
- Storm
2016-06-11 21:40:22 b.s.d.nimbus [INFO] Executor dataRealYkvvcount-214-1464683013:[544 544] not alive
2016-06-11 21:40:22 b.s.s.EvenScheduler [INFO] Available slots: (["8033393c-e639-41a5-a565-066e6bd1748b" 5723]
storm任务worker频繁发生executor not alive,worker & supervisor日志中没有发现其他错误 ...
Storm常用配置参数
- 博客分类:
- Storm
storm.zookeeper.connection.timeout
storm.zookeeper.session.timeout
ZooKeeper客户端连接/session超时时间
nimbus.monitor.freq.secs
nimbus检查心跳和重分配任务的时间间隔.注意如果是机器宕掉nimbus会立即接管并处理。
supervisor.heartbeat.frequency.secs
supervisor发送心跳间隔
supervisor.monitor.frequency.secs
supe ...