storm源码分析之不懂0406
xiaqian0917
这个作者很懒,什么都没留下…
展开
-
worker启动executor源码分析-executor.clj
worker启动executor源码分析-executor.clj在"supervisor启动worker源码分析-worker.clj"一文中,我们详细讲解了worker是如何初始化的。主要通过调用mk-worker函数实现的。在启动worker时,需要启动属于该worker的executor。executor是通过worker执行mk-executor函数进行初始化的。在m转载 2016-03-26 16:44:55 · 394 阅读 · 0 评论 -
storm启动supervisor源码分析-supervisor.clj
storm启动supervisor源码分析-supervisor.cljsupervisor是storm集群重要组成部分,supervisor主要负责管理各个"工作节点"。supervisor与zookeeper进行通信,通过zookeeper的"watch机制"可以感知到是否有新的任务需要认领或哪些任务被重新分配。我们可以通用执行bin/storm supervisor >/转载 2016-03-26 16:43:47 · 1152 阅读 · 0 评论 -
storm shell命令源码分析-shell_submission.clj
storm shell命令源码分析-shell_submission.clj当我们在shell里执行storm shell命令时会调用shell_submission.clj里的main函数。shell_submission.clj如下: shell_submission.clj ;; ns函数声明一个命名空间“backtype.storm.command.转载 2016-03-26 16:41:59 · 312 阅读 · 0 评论 -
storm定时器timer源码分析-timer.clj
storm定时器timer源码分析-timer.cljstorm定时器与java.util.Timer定时器比较相似。java.util.Timer定时器实际上是个线程,定时调度所拥有的TimerTasks;storm定时器也有一个线程负责调度所拥有的"定时任务"。storm定时器的"定时任务"是一个vector类型的数据[time, callback, uuid],内有会有三转载 2016-03-26 16:41:06 · 403 阅读 · 0 评论 -
storm操作zookeeper源码分析-cluster.clj
storm操作zookeeper源码分析-cluster.cljstorm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中)。backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState。clojure中的protocol可以转载 2016-03-26 16:38:48 · 376 阅读 · 0 评论 -
storm事件管理器EventManager源码分析-event.clj
storm事件管理器EventManager源码分析-event.cljstorm事件管理器定义在event.clj中,主要功能就是通过独立线程执行"事件处理函数"。我们可以将"事件处理函数"添加到EventManager的阻塞队列中,EventManager的事件处理线程不断地从阻塞队列中获取"事件处理函数"并执行。EventManager协议协议就是一组函数定义的集转载 2016-03-26 16:37:47 · 280 阅读 · 0 评论 -
3supervisor启动worker源码分析-worker.clj
supervisor启动worker源码分析-worker.cljsupervisor通过调用sync-processes函数来启动worker,关于sync-processes函数的详细分析请参见"storm启动supervisor源码分析-supervisor.clj"。sync-processes函数代码片段如下:sync-processes函数代码片段;;转载 2016-03-26 16:36:39 · 611 阅读 · 0 评论 -
storm源码分析2之任务分配--task assignment
storm源码分析之任务分配--task assignment在"storm源码分析之topology提交过程"一文最后,submitTopologyWithOpts函数调用了mk-assignments函数。该函数的主要功能就是进行topology的任务分配(task assignment)。mk-assignments函数定义如下:;; get existing a转载 2016-03-26 16:35:33 · 686 阅读 · 0 评论 -
storm源码分析1之topology提交过程
storm源码分析之topology提交过程storm集群上运行的是一个个topology,一个topology是spouts和bolts组成的图。当我们开发完topology程序后将其打成jar包,然后在shell中执行storm jar xxxxxx.jar xxxxxxxClass就可以将jar包上传到storm集群的nimbus上,并执行topology。本文主要分析下转载 2016-03-26 16:34:17 · 1792 阅读 · 0 评论 -
Storm在zookeeper上的目录结构
Storm在zookeeper上的目录结构storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中)。 backtype.storm.cluster定义了两个重要protocol:ClusterState和StormClusterState。clojure中的protocol可以看成java中的接口原创 2016-03-26 16:39:58 · 811 阅读 · 0 评论 -
storm启动nimbus源码分析-nimbus.clj
storm启动nimbus源码分析-nimbus.cljnimbus是storm集群的"控制器",是storm集群的重要组成部分。我们可以通用执行bin/storm nimbus >/dev/null 2>&1 &来启动nimbus。bin/storm是一个python脚本,在这个脚本中定义了一个nimbus函数: nimbus函数 def nimbus(k原创 2016-03-26 16:42:55 · 714 阅读 · 0 评论