您的位置:首页 > 其它

Storm 使用手册

2015-09-18 08:55 232 查看

一、Storm相关术语:

Nimbus: Storm集群主节点,负责资源的分配和任务的调度

Supervisor:Storm集群工作节点,接受Nimbus分配的任务,管理Worker

Worker:Supervisor下的工作进程,具体任务执行

Task:Worker下的工作线程

Topology:实时计算逻辑,计算拓扑,由spout和bolt组成的图状结构

Spout:Storm编程模型中的消息源

Bolt:Storm编程模型中的处理组件,定义execute方法进行实际的数据逻辑处理

Stream:拓扑中的消息流,传输的对象是Tuple

Tuple:一次消息传递的基本单元

一、Storm几个常用的操作命令:

storm active : 激活指定任务;

storm drpc:启动一个DRPC进程;

storm deactivate: 暂停storm的任务;

storm kill:通过任务名称kill一个任务;

storm list:列出正在运行的topologies和状态;

storm nimbus: 启动一个nimbus进程;

storm supervisor: 启动一个supervisor进程;

storm ui : 启动监控页面UI的后台进程;

storm rebalance: 节点扩展后进行负载均衡;

二、Storm编程模型

1、消息源Spout->继承BaseRichSpout类或者实现IRichSpout接口:

open方法,初始化动作;

nextTuple方法,消息接入,执行数据的发射;

ack方法,tuple成功处理后调用;

fail方法,tuple处理失败时调用;

declareOutputFields方法,声明输出字段。

2、处理单元Bolt->继承BaseBasicBolt类或者实现IRichBolt接口:

prepare方法,worker启动时初始化;

execute方法,接受一个tuple并执行逻辑处理,发射出去;

cleanup方法,关闭前调用;

declareOutputFields方法,字段申明。

三、Storm应用实例的实现步骤

1、根据自己业务需求进行方案及拓扑的设计,并通过代码来实现拓扑

2、将编写好的源代码进行打包(最好用maven来操作)

$ mvn package // 这种打包方式将不包含依赖包


$ mvn assembly:assembly //包含依赖包


3、将拓扑提交到集群上运行

$ storm jar [jar包的名称] [包中实现topology的类的地址] [自定义的topology的名称]


4、进行拓扑UI的监控

$ nohup storm ui &


以下是UI界面监控的集群及Topology的情况:



以下是Topology的详细情况:



最后是Storm执行Topology任务后的输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: