开发手册 欢迎您!
软件开发者资料库

Apache Storm - 集群架构

Apache Storm Cluster Architecture - 从简介,核心概念,集群架构,工作流,分布式消息系统,安装,工作示例,Trident,Twitter中的Apache Storm,Yahoo!简单而简单的步骤学习Apache Storm。财务,应用。

Apache Storm的一个主要亮点是它是一个容错,快速且没有"单点故障"(SPOF)分布式应用程序.我们可以根据需要在尽可能多的系统中安装Apache Storm,以增加应用程序的容量.

让我们看一下Apache Storm集群的设计方式及其内部架构.下图描绘了集群设计.

Zoo<a href=keeper Framework"/>

Apache Storm有两种类型的节点, Nimbus (主节点)和 Supervisor (工作节点). Nimbus是Apache Storm的核心组件. Nimbus的主要工作是运行Storm拓扑. Nimbus分析拓扑并收集要执行的任务.然后,它会将任务分配给可用的主管.

主管将有一个或多个工作进程.主管将任务委派给工作进程.工作进程将根据需要生成尽可能多的执行程序并运行该任务. Apache Storm使用内部分布式消息系统进行nimbus和主管之间的通信.

组件描述
NimbusNimbus是Storm集群的主节点.群集中的所有其他节点都称为工作节点.主节点负责在所有工作节点之间分配数据,将任务分配给工作节点并监视故障.
Supervisor遵循nimbus给出的指令的节点称为Supervisor. 主管有多个工作进程,它管理工作进程以完成由nimbus分配的任务.
Worker process工作进程将执行与特定拓扑相关的任务.工作进程本身不会运行任务,而是创建执行程序并要求它们执行特定任务.工作进程将有多个执行程序.
Executor执行程序什么都不是但是由工作进程产生的单个线程.执行程序运行一个或多个任务,但仅针对特定的喷口或螺栓.
Task任务执行实际数据处理.所以,它是一个喷口或一个螺栓.
ZooKeeper framework

Apache ZooKeeper是一个集群(节点组)使用的服务,用于在它们之间进行协调,并使用强大的同步技术维护共享数据. Nimbus是无状态的,因此它依赖于ZooKeeper来监视工作节点状态.

ZooKeeper帮助管理员与nimbus进行交互.它负责维护灵气和主管的状态.

风暴本质上是无国籍的.即使无状态本质有其自身的缺点,它实际上有助于Storm以最佳和最快的方式处理实时数据.

风暴不完全无国籍虽然.它将其状态存储在Apache ZooKeeper中.由于该状态在Apache ZooKeeper中可用,因此可以重新启动失败的nimbus并使其在离开的位置工作.通常, monit 等服务监控工具将监控Nimbus并在发生故障时重新启动它.

Apache Storm还有一个名为 Trident拓扑的高级拓扑使用状态维护,它还提供像Pig这样的高级API.我们将在接下来的章节中讨论所有这些功能.