Storm组件有哪些

这篇文章主要讲解了“Storm组件有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Storm组件有哪些”吧!

创新互联公司十多年专注成都高端网站建设按需求定制网站服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;创新互联公司服务内容包含成都网站建设,微信小程序定制开发,软件开发,网络营销推广,网络运营服务及企业形象设计;创新互联公司拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。

Storm 组件

     Storm集群表面上与hadoop集群类似。在hadoop集群上,你可以跑 mapreduce job,而在storm集群上你可以跑各种topology。但其实 mapreduce job 和 topology,他们是非常不一样的——其中最主要的差别就是,一个Mapreduce job 可以运行结束,然后一个topology会一直处理信息直到你kill它。

      在一个Storm集群有两种节点:master node 和 worker nodes。Master node 运行着一个守护进程,叫做"Nimbus",这非常类似于hadoop 1.0时代的 JobTracker。Nimbus负责分发code,分配task给node,和监控。

      每个worker node运行着一个守护进程,叫做"Supervisor"。Supervisor监听那些分配给当前node的任务,启动和终止worker  processes(worker process处理那些Nimbus分配给它需要处理的任务)。而每个worker process执行一部分的topolgy;一个执行中的topology包含了很多worker processes执行在集群中。

    Storm组件有哪些

      Nimbus和 Supervisors之间的协作是通过Zookeeper集群完成的。另外,Nimbus 和 Supervisor是 快速失败 和 无状态化(TODO understand),而所有的状态是保存在Zookeeper或者本地磁盘。换而言之,你可以用 kill -9 来杀死 Nimbus 或者 Supervisors,而它们会马上变回好像什么都没发生过一样。这些设计致使Storm 集群非常稳定。(但愿如此,马上要用到项目中了......)

Topology

     在Storm上做实时计算,你需要创建 "Topology"。在Topology中的每个node涵盖 逻辑处理, nodes间数据传递依赖等等。

        执行一个Topology非常简单。首先, 你需要打包你全部的代码和依赖到一个jar,然后,你可以执行接下来的命令:

storm jar all-my-code.jar backtype.storm.MyTopology arg1 arg2

       这命令会执行类backtype.storm.MyTopology,并带入外部参数 arg1和arg2(给main函数用)。而这个类的main方法会定义topology,并提交给Nimbus。Storm jar会负责连接Nimbus,并上传这个jar。

      由于topology的结构定义是Thrift(facebook 写的一个夸语言调用框架)结构,同时Nimbus也是也是一个Thrift服务,所以你能创建和提交任何语言写的topology。

Streams

    在Storm里最抽象的是 "stream"。Stream是一个无边界且序列化的tuples。Storm提供了原语来把一个stream转化成另一个新的stream,且这种转化是分布式的,可靠的。下图就是Stream的写照。

Storm组件有哪些

     Storm提供的这种原语是 spouts 和 bolts。Spouts 和 bolts 都有接口,你需要实现来执行你的应用逻辑。

     Spout是stream的来源。举个栗子,一个spout可能读取tuples从Kestrel队列中,并且发射这些数据以流的形式。或者说,一个spout会连接Twitter的API 来发射数据流。(对于Storm来说,Spout就是源数据的抓取者,负责为整个流式计算提供源源不断的数据流。)

     Bolt则是stream的消费者,做一些数据处理,同时也可能发射新的数据流。混合复杂的流转化,需要多个步骤,多个bolts。Bolts能做任何事情,像执行functions,过滤tuples,数据流聚合,数据流join,与数据库间的协作 等等。(对于Storm来说,Bolt是数据流的处理者,可以有多个,负责真正业务逻辑上的聚合计算等等。)

     Spouts和Bolts间的网络传输被打包进一个 topology,然后你交于一个Storm集群去执行。当一个spout或bolt发射一个tuple到流里时, 它会发射这个tuple到所有的抓取这个流的bolt中。(需要注意的是,如果多个处理相同逻辑业务的bolt在发生数据聚合时,bolt的聚合结果未必是最终结果,这个和多个reducer计算Top one的情况是一样的。)

Storm组件有哪些

     在Storm里每个node执行是并行的。在你的topology里,你能指定node的并行度(比如 5),然后Storm会产生与其相当数量的Thread在集群中执行。

     一个Topology会一直执行下去的,或者你kill了它。Storm也会自动地重分配那些失败了task。当然,Storm也会保证没有任何的数据丢失,甚至机器下线和数据删除(TODO 有待深究原理)

感谢各位的阅读,以上就是“Storm组件有哪些”的内容了,经过本文的学习后,相信大家对Storm组件有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

网页题目:Storm组件有哪些
新闻来源:https://www.cdcxhl.com/article48/jichep.html

成都网站建设公司_创新互联,为您提供域名注册自适应网站搜索引擎优化网站收录网站导航网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都seo排名网站优化