风暴的基本概念安装测试

  

<>强斯特罗姆简介
官方网址:http://storm.apache.org/
是一个免费,开源的分布式实时计算系统,使用它可以轻松实现数据流的实时处理,斯特罗姆很简单,可以用任何编程语言

  

风暴用例:实时在线分析机器学习,连续计算,分布式RPC, ETL等。
斯特罗姆的特点:快速:基准时钟在超过一百万元组(可以理解为数据包)每秒处理的每个节点
简单的设置:有可扩展性,容错性,保证了数据的处理能力,并且易于设置和操作

  

<>强风暴实时流式计算系统

  

风暴集群与hadoop集群(MapReduce)对比
MapReduce是批处理流程//hadoop处理海量历史任务,不能做到实时
风暴没有缓冲区原数据源源不断的进入处理系统,这是流处理//实时流计算,一直运行直到停止。

  

拓扑(拓扑)与Mapreduce
一个关键的区别是:一个Mapreduce工作最终会结束,而一个拓扑永远会运行(除非你手动杀死掉)

  

灵气(作业控制和资源管理主进程)与ResourManager
在风暴的集群里面有两种节点:控制节点(主节点)和工作节点(工人节点)。控制节点上面运行一个叫灵气后台程序,它的作用类似Hadoop里面的JobTracker//JobTracker是整个集群中唯一的全局管理者,涉及的功能包括作业控制和资源管理。
灵气负责在集群里面分发代码,分配计算任务给机器,并且监控状态。

  

主管(工人进程)与NodeManager (YarnChild)
每一个工作节点上面运行一个叫做主管的节点.Supervisor会监听分配给它那台机器的工作,根据需要启动/关闭工作进程。每一个工作进程执行一个拓扑的一个子集;一个运行的拓扑由运行在很多机器上的很多工作进程组成。

  <人力资源/>   

<>强风暴实时流式计算的工作机制
2个角色
灵气是集群的主节点:负责在集群里面分发代码,分配计算任务给机器,并且监控状态。//作业控制和资源管理
主管是集群的从节点:每一个工作节点上面运行一个叫做主管的节点,每一个主管里面会有工人进程在服务器上运行着,这些工人是真正干活的。
灵气和上司直接并没有直接的联系,而是需要第三方工具管理员实现的
第一个主管里面的工人会调用我们写的一个类比如叫(采集水这个类),处理好了之后,会再次在这个工人里面封装成一定的数据包的格式发出去,发给下一个,下一个工人会去处理上一个工人传给他的结果,去调用我们写的另一个逻辑(调用我们写的类过滤逻辑),然后,就是在第二个工人里面去处理,然后再封装成一定的数据包的格式发出去,发给下一个工人。
下一个工人也是不知道自己怎么办,而是调用我们程序自己写的逻辑(比如调用沉淀这个类),处理完的数据再次的封装成一个数据包传给下一个工人。
最后一个处理步骤,会把处理的结果我们源源不断的放在一个内存数据库中,(处理结果的使用者)谁要用就可以直接的去使用数据。

  

小结:
整个处理流程的组织协调不用用户去关系,用户只需要去定义每一个步骤中的具体的业务处理逻辑
具体执行任务的角色是工人,工人执行任务时具体的行为则由我们定义的业务逻辑决定。

  

风暴处理数据流程小结
1,客户端端把任务(拓扑)提交给灵气
2,灵气会把任务分配的一些信息放在动物园管理员上面;
3,主管会通过饲养员领取到任务
4,主管再分配给工人去运行我们的任务
官方解释如下://这里的基本概念不懂的见下文
也可以叫做拓扑运行机制
(1)风暴提交后,会把代码首先存放到灵气节点的收件箱目录下,之后,会把当暴风雨前运行的配置生成一个stormconf。ser文件放到灵气节点的stormdist目录中,在此目录中同时还有序列化之后的拓扑代码文件;
(2)在设定拓扑所关联的浮夸和螺栓时,可以同时设置当前孔和螺栓的遗嘱执行人数目和任务数目,默认情况下,一个拓扑的任务的总和是和执行者的总和一致的。之后,系统根据工人的数目,尽量平均的分配这些任务的执行.worker在哪个主管节点上运行是由风暴本身决定的;
(3)任务分配好之后,Nimbes节点会将任务的信息提交到动物园管理员集群,同时在动物园管理员集群中会有workerbeats节点,这里存储了当前拓扑的所有工人进程的心跳信息;
(4)主管节点会不断的轮询饲养员集群,在管理员的任务节点中保存了所有拓扑的任务分配信息,代码存储目录,任务之间的关联关系等,主管通过轮询此节点的内容,来领取自己的任务,启动工人进程运行;

风暴的基本概念安装测试