1、初识Storm

一、Storm基本概念:
web

Nimbus:负责资源分配和任务调度数据库

Supervisor:负责Nimbus分配的任务,启动和中止属于本身管理的worker进程编程

Worker:运行具体处理逻辑的组件进程ide

Spout/Bolt(Task):worker中每个(Spout/Bolt)线程称为一个Task,在storm0.8版本以后,task再也不与物理线程对应,同一个Spout/Bolt的Task可能共享一个物理线程,该线程称为executorspa

Topology:全部组件(即Spouts/Bolts)的排列与链接被称之为一个Topology线程

Spout:产生源数据流的组件component

Bolt:接收、执行数据的组件orm

Tuple:消息传递的基本单元(将消息放在Tuple中进行传输)对象

Stream:源源不断的传递的Tuple组成了Stream进程

数据处理的过程:

    处理工做被分派给不一样类型的组件(components),每一个组件分别负责一个简单、特定的处理任务。处理Storm集群输入流的组件叫喷口(spout),喷口再将数据传给一个叫螺栓(bolt)的组件,并在螺栓中处理数据,处理完成以后,螺栓要么将这些数据存储起来(存储在数据库、磁盘甚至是对象中),要么将它传给其余螺栓。所以,能够将Storm集群想象成一个螺栓链,每一个螺栓都会对喷口发送的数据做出一些处理。

二、Storm特性(优点/好处)

    编程简单、支持多种语言编程、容错、可扩展、可靠、快速、事务性

    与其它实时计算系统(s4, puma)的区别

    记录级容错:告知用户每个消息单元是否在指定的时间内被彻底处理(消息单元是否彻底通过Topology每个Bolt组件的处理)

    一、Spout在发送一个新源时会为Tuple指定一个Message Id(这个MessageId能够是任意对象)

    二、Topology中有一个系统级组件叫acker,acker追踪每个从Spout中绑定MessageId所流出来的若干个Tuple的处理路径

    三、若是用户设置的最大超时时间内这些tuple没有被彻底处理,那么acker就会告知spout该消息处理失败了,相反则会告知spout该消息处理成功了

    事务拓扑(Transactional Topology):storm0.7版本引入的新特性,在0.8版本替换为Trident,在0.9版本弃用,目的是为了知足对消息处理有着极其严格要求的场景,例如实时计算某个用户的成交笔数,要求结果彻底精确,不能多也不能少。

相关文章
相关标签/搜索