storm原理
来源:互联网 发布:php 接口开发安全性 编辑:程序博客网 时间:2024/05/20 22:35
storm主节点Nimbus和工作节点supervisor中间是通过zookeeper知道对方状态,作业是topologies(拓扑),死循环
nimbus进程和supervisor进程是无法直接连接和无状态的,所有的状态维持在zookeeper中或者保存在本地磁盘
这意味着你可以kill -9 Nimbus或supervisors进程,而不需要做备份
这种设计导致storm集群具有令人难以置信的稳定性,即无耦合
zookeeper知道supervisor某个临时目录被清空了,就知道某个supervisor挂掉了
你如果做运维的话,你可以逐个启动节点,作业不会受到影响
nimbus负责在集群分发的代码,topo只能在nimbus机器上提交,将任务分配给其他机器,和故障检测
supervisor监听分配给它的节点,根据nimbus的委派在必要的时候启动和关闭工作进程。每个工作进程执行topology的一个子集。一个运行中的topology由很多运行在很多机器上的工作进程组成。
在storm中有对于流stream的抽象,流是一个不间断的无界的连续tuple,注意storm在建模事件流时,把流中的事件抽象为tuple元组。
中间的处理器称为bolt
storm认为每个stream都有一个源,也就是原始元组的源头,叫做spout(管口)
处理stream内的tuple,抽象为bolt,bolt可以消费任意数据的输入流,只要将流方向导入该bolt,同时它也可以发送新的流给其他的bolt,这样一来,只要打开特定的spout再将spout中流出的tuple导向特定的bolt(spout可以流入多个不同的处理器bolt),bolt对导入的流做处理后再导向其他bolt或者目的地。
可以认为spout就是一个水龙头,并且每个水龙头里面流出的水是不同的,我们想拿到哪种水就拧开哪个水龙头,然后使用管道将水龙头的水导向到一个水处理器(bolt),水处理器处理后再使用管道导向另一个处理器或者存入容器中。
为了增大水处理效率,就把拓扑弄成邮箱无环图。topo就是storm的job概念抽象,一个拓扑就是一个流转换图
topology
storm将流中元素抽象为tuple,一个tuple就是一个值列表·value list,list中的每个value都有一个name,并且该value可以是任意可序列化的类型,拓扑的每个节点都要说明它所发射出的元组的字段的name,其他节点只需要订阅该name就可以接受处理了
bolts:消息处理者
消息处理逻辑被封装在bolts里面,bolts可以做很多事情:过滤,聚合,查询数据库等。
bolts可以简单的做消息流的传递。复杂的消息流处理往往需要很多步骤,从而就需要经过很多bolts,第一级bolt的输出可以作为下一级bolt的输入,而spout不能有一级
bolt的主要方法是execute(死循环)连续处理传入的tuple,成功处理完一个tuple调用outputcollector的ack方法,以通知storm这个tuple被处理完成了,当处理失败时,可以调用fail方法通知spout端可以重新发送该tuple。
流程是:bolts处理一个输入tuple,然后调用ack通知storm自己已经处理过这个tuple了,storm提供了一个IBasicBolt会自动调用ack。
bolts使用outputcollector来发射tuple到下一级bolt
spout到很多bolt是广播,到单个bolt有6种grouping方式。。
- Storm原理
- storm原理
- storm 原理
- Storm原理
- Storm原理
- Storm原理
- Storm原理与实现
- Storm原理与实现
- Storm 原理机制杂记
- Storm原理与实现
- Storm Transaction 原理+实战
- storm 入门原理介绍
- storm原理简介
- storm入门原理
- storm原理介绍
- storm入门原理
- Storm原理详解
- storm 入门原理介绍
- python中if __name__ == '__main__': 的解析
- 数据结构与算法学习-哈希表入门
- java入门之输出基本数据类型
- spring基础---- IOC容器
- 软件设计 -- 中介者模式
- storm原理
- Ubuntu下搭建FTP服务器
- 饿了么张雪峰:云服务助力饿了么发展 云计算一定是未来
- UVA12661 有趣的赛车比赛
- iOS 转场动画_NAV_图片缩放效果
- 最小的k个数
- Zabbix-3.0.X 监测服务器硬盘IO状态
- 算法
- 第56篇 PHP运算符相关知识