了解消息的Storm处理流程

时间:2014-02-22 06:37:09

标签: apache-storm

1.我有一个拓扑结构(1个喷口和3个螺栓)和3个机器(1个nimbus和2个工作节点)。我是想在所有3个节点上运行拓扑还是在nimbus上运行就足够了?是不是nimbus会将代码分发给其他节点?

2.我的喷口是否会在nimbus或任何工作节点上运行?

3. 3个螺栓在3个独立的节点上运行或在同一节点上运行?是不是会受到雨云的照顾?

4.我们如何跟踪节点中螺栓的处理?

5.是否可以使用任何文档来了解在Storm中处理邮件的完整流程?

3 个答案:

答案 0 :(得分:0)

数目:

  1. Nimbus只维护拓扑。像部署主jar等任务是nimbus所做的,但是nimbus本身不进行任何与拓扑相关的处理。所以你肯定需要工作节点。拥有多个工作节点总是好的,这样风暴拓扑可以抵御任何失败的工作者。启动nimbus节点时,需要指定nimbus服务器,然后自动选择要在此工作节点上运行的拓扑jar。

  2. 正如第一点所述,nimbus只是一个管理任务的经理,只有工作节点才会运行spout。

  3. 对于您的第三个问题,我建议您阅读此http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/

  4. 在开始风暴处理时查看storm-ui,它会告诉您管道中的每个步骤是如何执行的,因此您可以在查看后调整每个步骤的并行度。

  5. 详细了解风暴请浏览github上的风暴教程https://github.com/nathanmarz/storm/wiki/_pages

答案 1 :(得分:0)

  

我有一个拓扑结构(1个喷口和3个螺栓)和3个机器(1个nimbus和2个工作节点)。我是想在所有3个节点上运行拓扑还是在nimbus上运行就足够了?

使用多个节点允许您在群集中分配负载,所以这肯定有利于拥有多个节点而不是一个。并且在节点发生故障的情况下,nimbus将能够将任务重新分配给另一台机器。但是,可以在单个节点中设置风暴,并且所有内容都可以在一台计算机上运行。

  

nimbus是否会负责将代码分发给其他节点?

  

我的喷口将在nimbus或任何工作节点上运行

从属节点负责运行或执行拓扑,它们运行一个名为Supervisor的守护进程

  

3个螺栓在3个独立的节点上运行或在同一节点上运行?是不是会受到nimbus的照顾?

Nimbus(主节点)负责分配.Nimbus负责在集群周围分配代码,为机器分配任务以及监控故障。

  

我们如何跟踪节点中螺栓的处理?

Storm提供了一个基于Web的用户界面,可以选择在主节点上运行(运行Nimbus守护程序)。 Storm UI通过显示群集级别和拓扑级别诊断来提供群集状态的基本概述。可以使用以下命令启动相同的操作

    # cd /path/to/storm/install/dir
    # bin/storm ui

默认情况下,它会在8080端口上收听,并且可以使用浏览器中的http://nimbus_host:8080/网址进行查看。

  

是否有任何文档可用于了解Storm中处理邮件的完整流程?

Storm Wiki页面是学习和理解风暴工​​作的好地方。您还可以关注basic tutorial了解详情

答案 2 :(得分:0)

nimbus负责分配作业,但所有代码(包括喷口或螺栓)都将在工作节点上运行。

您应该能够通过风暴UI跟踪螺栓的进度。另外,您可以记录一些消息以检查数据的处理流程。