Storm原理和架构是什么

本篇内容主要讲解“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原理和架构是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


本文标题:Storm原理和架构是什么
本文链接:http://hbruida.cn/article/jgohie.html