大数据学习之(Storm)-原理详解!

发布时间:2020-06-10 02:14:40 作者:qq5af153121eb2c
来源:网络 阅读:1341

角色

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
1
任务提交

运行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
1
2
3
接下来进行任务分配,分配完成后会产生一个assegiment对象,该对象会被序列化后保存到zookeeper的/storm/assignments/wordcount01-2-1525621662目录下

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

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

java -server xxxxx.xxxx.worker
1
worker启动后,根据分配的task信息开始执行。

大数据学习交流群 766988146 不管你是小白还是大牛,笔者我都挺欢迎,今天的源码已经上传到群文件,不定期分享干货,
包括我自己整理的一份最新的适合2018年学习的大数据开发和零基础入门教程,欢迎初学和进阶中的小伙伴

推荐阅读:
  1. 大数据学习系列之五 ----- Hive整合HBase图文详解
  2. 大数据生态之zookeeper(原理)

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

大数据 storm st

上一篇:Forrester Wave™ : 云工作负载安全领域的领导者--Bitdefender

下一篇:cocos2D中HelloWorldScene.h和HelloWorldScene.cpp的简单解释

相关阅读

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

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