【大数据】给大家分享一下大数据(Storm)-原理

4373
3

BI妹妹 初学数据Lv2

发表于2018-5-8 09:52

楼主
本帖最后由 小亿 于 2018-5-8 11:04 编辑

角色Client

client的主要作用是提交topology到集群

Worker

Worker是运行在Supervisor节点上的一个独立的JVM进程,主要作用是运行topology,一个topology可以包含多个worker,但一个worker只能属于一个topology

Exceutor

在Worker中运行的线程,一个Executor可以对应一个或多个Task,每个Task(Spout或Bolt)必须对应一个Executor。

Task

一个独立的处理逻辑的实例,每个Spout或Bolt都可以对应多个Task在集群中运行,每个线程对应到一个Executor线程上。
streaminggroup定义了如何从一堆Task发送数据到另外一堆Task上。

Storm集群的启动、任务提交与执行流程启动

客户运行storm nimbus或storm supervisor时,在storm脚本内部实际对应了两个python函数,这两个函数最终会生成一条java命令,用于启动一个storm的java进程:

java -server xxxx.xxxx.nimbus/supervisor args
任务提交
  • 运行storm java xxxx.MainClass name,此时会执行Driver驱动类的main函数
  • 在驱动类中,会调用topologyBuilder.createTopology()方法,该方法会生成spout和bolt的序列化对象
  • 客户端把topology对应的jar上传的到nimbus的storm-local/nimbus/inbox目录下
  • 首先,nimbus会将storm.jar复制到/home/hadoop/storm-local/nimbus/stormdist/wordcount01-2-1525621662目录下,根据第二步生成的序列化对象生成task的序列化文件和相关配置的序列化文件(wordcount01-2-1525621662为storm生成的一个唯一的topology名称),此时,nimbus就可以进行任务分配了
-rw-rw-r--. 1 hadoop hadoop    3615 5月   6 23:47 stormcode.ser-rw-rw-r--. 1 hadoop hadoop     733 5月   6 23:47 stormconf.ser-rw-rw-r--. 1 hadoop hadoop 3248667 5月   6 23:47 stormjar.jar
  • 接下来进行任务分配,分配完成后会产生一个assegiment对象,该对象会被序列化后保存到zookeeper的/storm/assignments/wordcount01-2-1525621662目录下

  • supervisor通过zookeeper的watch机制感知/storm/assignments目录变化,拉取数据自己的topology(nimbus进行分配时,会指定task所属的supervisor)

  • supversior根据拉取到的信息在指定端口上启动worker,实际上就是执行一条java脚本


java -server xxxxx.xxxx.worker
  • worker启动后,根据分配的task信息开始执行。
  • 本文转自CSDN

最近看过此主题的会员

13259849018

zly_2960

小由菜

abixuexi

小亿

a1ex

3个回答

只看楼主

小亿 管理员

发表于2018-5-8 11:05

只看该作者

取消 关注该作者的回复

沙发

{:5_197:}

坐在坟里连wifi 初学数据Lv2

发表于2018-5-8 11:06

只看该作者

取消 关注该作者的回复

板凳

感谢分享哟哟哟!

夜袭光棍村 小试身手Lv3

发表于2018-5-8 11:07

只看该作者

取消 关注该作者的回复

地板

已经收下,努力学习中!

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号