暂无说说

storm组件

storm jiajun 3个月前 (09-24) 18次浏览 0个评论 扫描二维码

storm集群采用主从构架、主节点跟从节点之间的协调工作都是通过 ZooKeeper 集群来完成的。下面是storm集群的构架图:

Nimbus

Nimbus 是storm集群的主节点。在 nimbus 节点上存在一个叫 nimbus 的守护进程。nimbus 节点负责在不同的 worker 节点之间分发应用程序代码,将任务分配给不同的机器,监视任何故障任务,并根据需要重新启动它们。

Nimbus 是无状态的,它的所有数据都存储在 ZooKeeper 中。storm集群中只有一个 nimbus 节点。它被设计成 fail-fast,因此当 Nimbus 挂起时,可以重新启动,而不会对工作节点上已经运行的任务产生任何影响。这与 Hadoop 不同,在 Hadoop 中,如果 JobTracker 死了,所有运行的作业将处于不一致的状态,需要再次执行。

Supervisor

Supervisor 节点是 Storm 集群的工作节点。每个 Supervisor 节点运行一个 supervisor 守护进程,该守护进程负责创建、启动和停止 worker 进程,以执行分配给该节点的任务。与 Nimbus 一样,一个 Supervisor 守护进程也会 fail-fast,并将它的所有状态存储在 ZooKeeper 集群中,这样就可以在没有任何状态损失的情况下重新启动 supervisor。一个 supervisor 守护进程通常负责处理在该机器上运行的多个 worker 进程。

ZooKeeper 集群

在任何分布式应用程序中,各个进程都需要相互协调并共享一些配置信息。作为一个分布式应用程序,Storm 使用 ZooKeeper 集群来协调各种进程。与 Storm 集群相关的所有状态以及提交给 Storm 的各种任务都存储在 ZooKeeper 中。Nimbus 节点和 Supervisor 节点之间不直接通信,而是通过 ZooKeeper。由于所有的数据都存储在 ZooKeeper 中,所以 nimbus 守护进程和 supervisor 守护进程都可以在不影响集群的情况下被突然杀死。

 

 

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址