Strom核心组件与编程模型

1.Strom介绍
Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发
2.strom与hadoop的区别
 Storm用于实时计算,Hadoop用于离线计算。
 Storm处理的数据保存在内存中,源源不断;Hadoop处理的数据保存在文件系统中,一批一批。
 Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。
 Storm与Hadoop的编程模型相似
在这里插入图片描述
Job:任务名称
JobTracker:项目经理
TaskTracker:开发组长、产品经理
Child:负责开发的人员
Mapper/Reduce:开发人员中的两种角色,一种是服务器开发、一种是客户端开发

Topology:任务名称
Nimbus:项目经理
Supervisor:开组长、产品经理
Worker:开人员
Spout/Bolt:开人员中的两种角色,一种是服务器开发、一种是客户端开发

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

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

猜你喜欢

转载自blog.csdn.net/sinat_38648388/article/details/83417357