简介
分布式大数据处理框架
- https://yq.aliyun.com/articles/709401
- 现在属于Apache
- 同样优秀的框架还包括--JStorm,Flink,SparkingStreaming
架构
-nimbus
-集群的主节点,对整个集群的资源使用情况进行管理
-supervisor
-指定节点数据监控情况
-woker
-具体任务的执行者
-开发模式(DAG)
https://baijiahao.baidu.com/s?id=1613728387077554506&wfr=spider&for=pc
spout
-数据源
bolt
-计算节点
-IO概念
BIO
Blocking IO
阻塞式IO
NIO
NEW IO
NOBlocking IO
Netty
https://www.cnblogs.com/imstudy/p/9908791.html
计算流程
-流式计算框架
客户端将数据发送给MQ,然后传递到Storm中进行计算
最终计算的结果存储到数据库中(HBase,Mysql)
客户端不要求服务器返回结果,客户端可以一直向Storm发送数据
客户端相当于生产者,Storm相当于消费者
-实时计算框架
客户单将消息发送给DRPC
然后转入到Storm进行计算,计算的结果要马上返回给客户端
-计算流程
-spout
-一般起到一个Storm数据源的作用
-它会对接到一个外部的数据源(MQ),读取数据后封装一个Tuple对象,向后传递
-我们一般会先给Stream指定ID,然后(emit)发送数据的时候给tuple指定一个StreamID
-bolt
-集群的数据计算节点
-根据业务的复杂程度,可以选择Bolt的数量
-我们在进行计算的时候,需要为bolt指定数据的来源
-spout
-其他的bolt
-我们可以根据业务模型使用不同的方式获取数据
-数据流
-流中的数据被封装成Tuple对象进行流转
-从Spout中源源不断传递数据给Bolt、以及上一个Bolt传递数据给下一个Bolt,所形成的这些数据通道即叫做Stream
数据分发策略
Shuffle Grouping
-洗牌 随机分组
Field Grouping
-使用某一个Tuple的hash取模选择目标Bolt
-按照field的hash然后取模然后决定将该数据发送给那个节点
-all
-发送给全部的下游
-none
-随机发送给全部的下游
-使用轮询机制
-direct
-直接指定处理的下游
-local
-本地