Storm教程

Storm 集群架构

Apache Storm 的主要亮点之一是它是一个容错、快速且没有"单点故障"(SPOF) 的分布式应用程序。我们可以根据需要在尽可能多的系统中安装 Apache Storm,以增加应用程序的容量。
我们来看看Apache Storm集群是如何设计的,以及它的内部架构。下图描述了集群设计。
Zookeeper 框架
Apache Storm 有两种类型的节点, Nimbus(主节点)和 Supervisor(工作节点)。 Nimbus 是 Apache Storm 的核心组件。 Nimbus 的主要工作是运行 Storm 拓扑。 Nimbus 分析拓扑并收集要执行的任务。然后,它将任务分配给可用的主管。
主管将拥有一个或多个工作进程。主管将任务委托给工作进程。工作进程将根据需要产生尽可能多的执行程序并运行任务。 Apache Storm 使用内部分布式消息系统进行 nimbus 和主管之间的通信。
组件 说明
Nimbus Nimbus 是 Storm 集群的主节点。集群中的所有其他节点都称为工作节点。主节点负责在所有工作节点之间分配数据,为工作节点分配任务并监控故障。
Supervisor 遵循 nimbus 给出的指令的节点称为监督者。 supervisor 有多个工作进程,它管理工作进程以完成 nimbus 分配的任务。
Worker process 工作进程将执行与特定拓扑相关的任务。工人 process 不会自己运行任务,而是创建 executors 并要求它们执行特定任务。一个工作进程将有多个执行程序。
Executor 执行器只不过是由工作进程产生的单个线程。执行器运行一个或多个任务,但只针对特定的 spout 或 bolt。
Task 任务执行实际的数据处理。所以,它要么是一个喷口,要么是一个螺栓。
ZooKeeper framework
Apache ZooKeeper 是集群(节点组)使用的一项服务,用于在它们之间进行协调并通过强大的同步技术维护共享数据。 Nimbus 是无状态的,所以它依赖 ZooKeeper 来监控工作节点的状态。
ZooKeeper 帮助 supervisor 与 nimbus 进行交互。负责维护nimbus和supervisor的状态。
Storm 本质上是无状态的。尽管无状态特性有其自身的缺点,但它实际上帮助 Storm 以尽可能最好和最快的方式处理实时数据。
Storm 并非完全无状态。它将其状态存储在 Apache ZooKeeper 中。由于状态在 Apache ZooKeeper 中可用,因此可以重新启动失败的 nimbus 并使其从离开的地方开始工作。通常, monit 等服务监控工具会监控 Nimbus 并在出现任何故障时重新启动它。
Apache Storm 也有一个名为 Trident Topology 的高级拓扑,具有状态维护功能,它还提供了像 Pig 一样的高级 API。我们将在接下来的章节中讨论所有这些功能。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4