Storm架构

xiaoxiao2021-02-28  111

Storm是什么? Storm的主工程师Nathan Marz表示: Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm用于实时处理,就好比 Hadoop 用于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。

Storm与Hadoop的区别 Storm用于实时计算,Hadoop用于离线计算。 Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批。 Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。 Storm与Hadoop的编程模型相似

Storm与Spark的区别 Continuous Streaming 持续流式计算:单独处理每条记录,并在记录出现时立即处理。Storm采用这种计算模式 微批量计算:将多个记录组合(可以按照记录的数量或者时间分割出来)为一个单位,然后进行计算处理。Spark Streaming计算框架采用这种模式。

Storm核心组件 Nimbus:负责资源分配和任务调度。 Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。—通过配置文件设置当前supervisor上启动多少个worker。 Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务。 Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,不同spout/bolt的task可能会共享一个物理线程,该线程称为executor。

Storm编程模型

Topology:Storm中运行的一个实时应用程序的名称。(拓扑) Spout:在一个topology中获取源数据流的组件。 通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。 Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。 Tuple:一次消息传递的基本单元,理解为一组消息就是一个Tuple。 Stream:表示数据的流向。

转载请注明原文地址: https://www.6miu.com/read-45130.html

最新回复(0)