Storm 学习笔记 (一)菜鸟乐园

Storm 好像传统的滚梯,来了数据就处理

Hadoop好像是电梯,批量处理数据

Spark streaming 微批处理介于滚梯和电梯之间

Storm 特征

storm 是个实时的,分布式的以及高容错的计算框架

1 storm 常驻内存

2 storm几乎不经过硬盘,在内存中处理

下面通过官方拓扑图理解下


看图说话

1 水龙头  spout 数据的源头

2 水滴      tuple    中文 元组  相当于关系型数据库里的一行数据   es里的doc  java里的object

               在storm里代表storm架构处理数据的最小单位

3 水滴加闪电       在storm 里 代表一个bolt(雷电)  (component元件) 一个处理单元

                              spout vs bolt    1 vs  n

4 从图中我们还可以知道这是一个DAG图,directed acyclic grapth   有向无环图

Storm架构 (主从)

1 Nimbus       (老板)    相当于hadoop的namenode

任务分配,资源调度

2 Supervisor   (监工)    相当于hadoop的datanode

指派老板分配下来的任务,通过开启关闭工作进程的方式

3 worker          (工人)         具体干活的进程

数据传输

结点间通讯采用技术

1 ZMQ 

twitter早期产品  zero message  queue 开源的消息传递框架  后来发现有bug不用了

2  Netty

netty是一种基于nio的网络框架,更加高效,storm0.9后使用Netty,其实也是一种消息队列

高可靠性

     1 异常处理

     2 消息可靠性保障机制   ACKER机制

可维护性

Storm ui 图形化监控接口

Storm 流式处理

异步的实时分析

例:计算PV、UV、访问热点 以及 某些数据的聚合、加和、平均等
       客户端提交数据之后,计算完成结果存储到Redis、HBase、MySQL或者其他MQ当中,
       客户端并不关心最终结果是多少。



 


同步是实时分析


客户端提交数据请求之后,立刻取得计算结果并返回给客户端,推荐系统



Storm 和 MapReduce区别

Storm:进程、线程常驻内存运行,数据不进入磁盘,数据通过网络传递。

MapReduce:为TB、PB级别数据设计的批处理计算框架。


Storm 和   Spark Streaming 区别

Storm:纯流式处理
专门为流式处理设计
数据传输模式更为简单,很多地方也更为高效
并不是不能做批处理,它也可以来做微批处理,来提高吞吐
Spark Streaming:微批处理
将RDD做的很小来用小的批处理来接近流式处理

基于内存和DAG可以把处理任务做的很快


未完待续!!!!!













    




 





 






猜你喜欢

转载自blog.csdn.net/paulfrank_zhang/article/details/80253534