storm四之storm的工作流程

时间:2021-03-03 19:28:05

一个正常运行的Storm集群应该有一个nimbus和一个或多个supervisor

还有另一个重要的节点是Apache zookeeper,用于nimbussupervisor之间的协调。

现在让我们来仔细看看Apache Storm的工作流

 

1.最初,nimbus等待topology提交

2.一旦提交topology,nimbus将处理topology收集所有的执行任务和任务执行的顺序。

3.然后,nimbus将均匀地任务分配所有可用的supervisor

4.所有的supervisor定时的会向nimbus发送心跳告知自己是否还正常健康的运行

5.当一个supervisor挂掉或者不发送心跳nimbus时,nimbus会将挂掉的supervisor的任务委派给其他正常运行的supervisor

6.nimbus自身挂掉时,supervisor会继续执行已经分配给自己的任务,此时在执行的任务不受nimbus挂掉的影响

7.一旦所有的任务都完成后,supervisor会等待新的任务。

8.同时,服务监控工具会重新启动已经挂掉的nimbus

9.重新启动nimbus将继续从其挂掉的地方开始工作

同样,挂掉的supervisor也可以自动重新启动。

既然nimbussupervisor都可以通过监控工具自动的被启动并在他们挂掉的地方接着运转,因此storm能够保证所有的任务至少能被被处理一次。

10.一旦处理完所有的topology,nimbus就等待一个新的topology,同样,supervisor也会等待新的任务。

 

默认情况下,storm集群有两种模式Local mode Production mode

 

Local mode−此模式用于开发、测试和调试,因为它是看到所有的topology组件一起工作最简单的方法。

在这种模式下,我们可以调整参数,使我们能够看到我们的topology在不同的storm配置环境运行。

在本地模式下,storm topology运行在本地机器单个JVM上。

 

Production mode−在这种模式下,我们提交topology到正常工作storm集群生成环境的storm集群会一直运行下去,除非关闭。