【Storm一】Storm概念入门

  • 什么是Storm

  • Storm的基本术语

  • Storm组件协作图

  • Storm消息机制

什么是Storm

Storm用于流式计算和实时计算,简称实时流计算。实时流计算的三种常见场景:事件流、持续计算和分布式远程方法调用。流式计算框架如Storm关注于数据多次处理,一次写入;是批处理计算框架如Hadoop关注于数据一次写入,多次查询统计以提取有用信息。

The input stream of a Storm cluster is handled by a component called a spout. The spout passes the data to a component called a bolt, which transforms it in some way. A bolt either persists the data in some sort of storage, or passes it to some other bolt. You can imagine a Storm cluster as a chain of bolt components that each make some kind of transformation on the data exposed by the spout.

  • Storm与Hadoop 1.x的角色对比



 

Storm基本术语

  • Toplogy

       Toplogy是Storm中运行的一个任务,类比Hadoop1.x中的一个作业(Job)

  • Nimbus

       Nimbus在Storm中用于资源分配和作业调度,类比Hadoop1.x中的JobTracker

  • Supervisor

      Supervisor在Storm中用于接受Nimbus分配的任务,并且启动和停止用于完成这些任务的Worker进程。Supervisor类比Hadoop1.x中的TaskTracker

  • Worker

      运行Storm中具体组件逻辑的进程。这里的组件指的是Spout或者Bolt,对比Hadoop1.x的Child进程

  • Task

      Worker进程中每个运行Spout或者Bolt组件逻辑的线程称为Task

  • Spout

      在一个Toplogy中产生源数据流的组件

  • Bolt

      在一个Toplogy中接受数据,并进行逻辑处理的组件,称为Transformation

  • Tuple

       一次消息传递的基本单元

  • Stream Grouping

       消息分组的方法

 

Storm作业协作图



 

可见,Storm是一个典型的Master/Workers架构。Nimbus和Supervisors构成一组Master/Workers架构,Supervisor和Workers构成一组Master/Workers架构。



 

 从上面的图中可以看到,Bolts之间是一种流式的计算,一份数据在多个Bolt之间进行处理转换,每种类型的Bolt可以是一个集群,因此,这种架构的可扩展性是天然的。

Storm的消息机制

如上图所示,Spout和Bolt之间,多个Bolt之间,有数据的传输,Storm底层是ZeroMQ作为消息队列的管理,Storm保证消息能够快速的被消费(性能),同时保证消息能够被消费(可靠性)

参考:http://wenku.baidu.com/view/3b695d5c7fd5360cba1adbf3.html

猜你喜欢

转载自bit1129.iteye.com/blog/2170348