温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Storm原理和架构是什么

发布时间:2021-12-23 13:57:43 来源:亿速云 阅读:143 作者:iii 栏目:云计算

本篇内容主要讲解“Storm原理和架构是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Storm原理和架构是什么”吧!

案例

统计用户ip所在地域的统计值

典型应用场景

请求应答(同步)

流式处理 (异步)

 -逐条处理

    数据之间无关系:如实时日志格式标准化入库。

 -分析处理

    数据之间有关系(聚合等):如日志pv/uv统计、访问热点统计

DGA计算模型

tuple:数据处理单元

stream:持续的tuple流

spout:从外部获取数据,输出原始tuple

bolt:接收spout/bolt输出的tuple,处理、输出新tuple

grouping:tuple从上游到某个下游多个并发task的分组方式

          --shuffleGrouping:随机发给某个下游task

 --fieldsGrouping:按照某几个字段做hash取模,发给对应task

 --allGrouping:发给下游全部task

Topology:一个应用的spout,bolt,grouping组合

Storm原理和架构

nimbus:集群的master,负责管理supervisor、调度topology

supervisor:负责运行topology的worker

worker:负责实际的计算和网络通信

zookeeper:负责存储以上模块的状态,做到高可用。

work是进程,是分配资源的单位,一个worker可以有多个executor,executor是线程,是处理的单位

executor执行spout.nextTuple()或bolt.execute(),调用emit生成新的tuple,放到executor的transfer queue

executor transfer thread 把自己transfer queue里面的tuple放到worker transfer queue

worker transfer thread 把transer queue里面的tuple发送到远程的worker

worker receive thread  分别从网络收数据,把tuple放到对应executor的receive queue

executor receive thread 从自己的reveive queue取出tuple,调用bolt.execute()

storm实战

启动drpc: bin/storm drpc

启动logviewr: bin/storm viewer

JavaAPI

-spout 

  nextTuple() 回调函数,循环触发

  ack(id)     回调函数,消息成功处理时触发

  fail(id)    回调函数,消息超时时触发

-bolt

  execute(Tuple input) 回调函数,数据触发

  collector.emit(tuple):通过collector向下游发送tuple

  collector.ack(tuple):通过collector确认已经成功处理输入tuple

不一定要用java,有shellBolt

DAG图:无回路有向图(Directed Acyclic Graph)

到此,相信大家对“Storm原理和架构是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI