storm shell命令源码分析-shell_submission.clj

2014-09-04
阅读 6 分钟
3k
当我们在shell里执行storm shell命令是会调用shell_submission.clj里的main函数。shell_submission.clj如下:

storm事件管理器EventManager源码分析-event.clj

2014-08-31
阅读 2 分钟
2.6k
storm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数"。我们可以将"事件处理函数"添加到EventManager的阻塞队列中,EventManager的事件处理线程不断地从阻塞队列中获取"事件处理函数"并执行。

Storm在zookeeper上的目录结构

2014-08-30
阅读 5 分钟
9.2k
Storm的所有的状态信息都保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任务: 使得nimbus可以监控整个storm集群的状态,从而可以重启一些挂掉的task。 ZooKeeper使得整个storm集群十分的健壮-—任何一台工作机器挂掉都没有关系,只要重启然后从zookeeper上面重新获取状态信息就可以了。那Storm在zookee...

storm操作zookeeper源码分析-cluster.clj

2014-08-26
阅读 16 分钟
4.7k
storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中)。 backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState。 clojure中的protocol可以看成java中的接口,封装了一组方法。ClusterState协议中封装了一组与zookeeper进行交互的基础函数,如获取...

storm定时器timer源码分析-timer.clj

2014-08-24
阅读 7 分钟
4k
storm定时器与java.util.Timer定时器比较相似。java.util.Timer定时器实际上是个线程,定时调度所拥有的TimerTasks;storm定时器也有一个线程负责调度所拥有的"定时任务"。storm定时器的"定时任务"是一个vector类型的数据[time, callback, uuid],内有会有三个值,分别是时间、函数、和uuid,很好理解,时间表示该定时任...