美文网首页
03-Apache Stom 的几个核心概念

03-Apache Stom 的几个核心概念

作者: 且听风吟_aab8 | 来源:发表于2019-08-14 10:55 被阅读0次

    Apache Storm的几个核心概念:

    core_concept.jpg

    Tuple:

    Tuple是Storm中的主要数据结构。它是有序元素的列表。默认情况下,Tuple支持所有数据类型。通常,它被建模为一组逗号分隔的值,并传递到Storm集群。

    Stream:

    流是元组的无序序列。

    Spouts:

    Spout是流的源。通常,Storm从原始数据源(如Twitter Streaming API,Apache Kafka队列,Kestrel队列等)接受输入数据。否则,您可以编写spouts以从数据源读取数据。“ISpout”是实现spouts的核心接口,一些特定的接口是IRichSpout,BaseRichSpout,KafkaSpout等。

    Bolts:

    Bolts是逻辑处理单元。Spouts将数据传递到Bolts和Bolts过程,并产生新的输出流。Bolts可以执行过滤,聚合,加入,与数据源和数据库交互的操作。Bolts接收数据并发射到一个或多个Bolts。 “IBolt”是实现Bolts的核心接口。一些常见的接口是IRichBolt,IBasicBolt等。

    Apache Storm集群架构:

    zookeeper_framework.jpg

    Nimbus(主节点):

    Nimbus是Storm集群的主节点。集群中的所有其他节点称为工作节点。主节点负责在所有工作节点之间分发数据,向工作节点分配任务和监视故障。

    Supervisor(工作节点)

    遵循指令的节点被称为Supervisors。Supervisor有多个工作进程,它管理工作进程以完成由nimbus分配的任务。

    Worker process(工作进程)

    工作进程将执行与特定拓扑相关的任务。工作进程不会自己运行任务,而是创建执行器并要求他们执行特定的任务。工作进程将有多个执行器。

    Executor(执行者)

    执行器只是工作进程产生的单个线程。执行器运行一个或多个任务,但仅用于特定的spout或bolt。

    Task(任务):

    任务执行实际的数据处理。所以,它是一个spout或bolt。

    ZooKeeper framework(ZooKeeper框架)

    Apache的ZooKeeper的是使用群集(节点组)自己和维护具有强大的同步技术共享数据之间进行协调的服务。Nimbus是无状态的,所以它依赖于ZooKeeper来监视工作节点的状态。ZooKeeper的帮助supervisor与nimbus交互。它负责维持nimbus,supervisor的状态。

    Storm是无状态的。但是它把状态存储在Apache ZooKeeper中。由于状态在Apache ZooKeeper中可用,故障的网络可以重新启动,并从它离开的地方工作。通常,像monit这样的服务监视工具将监视Nimbus,并在出现任何故障时重新启动它。

    Apache stom的 工作流程:

    1. 最初,nimbus将等待“Storm拓扑”提交给它。
    2. 一旦提交拓扑,它将处理拓扑并收集要执行的所有任务和任务将被执行的顺序。
    3. 然后,nimbus将任务均匀分配给所有可用的supervisors。
    4. 在特定的时间间隔,所有supervisor将向nimbus发送心跳以通知它们仍然运行着。
    5. 当supervisor终止并且不向心跳发送心跳时,则nimbus将任务分配给另一个supervisor。
    6. 当nimbus本身终止时,supervisor将在没有任何问题的情况下对已经分配的任务进行工作。
    7. 一旦所有的任务都完成后,supervisor将等待新的任务进去。
    8. 同时,终止nimbus将由服务监控工具自动重新启动。
    9. 重新启动的网络将从停止的地方继续。同样,终止supervisor也可以自动重新启动。由于网络管理程序和supervisor都可以自动重新启动,并且两者将像以前一样继续,因此Storm保证至少处理所有任务一次。
    10. 一旦处理了所有拓扑,则网络管理器等待新的拓扑到达,并且类似地,管理器等待新的任务。

    Storm集群中有两种模式:

    1. 本地模式 -此模式用于开发,测试和调试,因为它是查看所有拓扑组件协同工作的最简单方法。在这种模式下,我们可以调整参数,使我们能够看到我们的拓扑如何在不同的Storm配置环境中运行。在本地模式下,storm拓扑在本地机器上在单个JVM中运行。
    2. 生产模式 -在这种模式下,我们将拓扑提交到工作Storm集群,该集群由许多进程组成,通常运行在不同的机器上。如在storm的工作流中所讨论的,工作集群将无限地运行,直到它被关闭。

    Windows环境下Apache Storm 启动:

    启动Apache zookeep

    zkCli.cmd
    zkServer.cmd
    

    启动Apache Storm

    storm.py nimbus
    storm.py supervisor
    storm.py ui
    

    相关文章

      网友评论

          本文标题:03-Apache Stom 的几个核心概念

          本文链接:https://www.haomeiwen.com/subject/chiwjctx.html