美文网首页
大数据基础知识学习-----Storm学习笔记(四)Storm常

大数据基础知识学习-----Storm学习笔记(四)Storm常

作者: Waldeinsamkeit4 | 来源:发表于2018-06-08 13:01 被阅读0次

常用API

API简介

Component组件

基本接口

  • IComponent接口
  • ISpout接口
  • IRichSpout接口
  • IStateSpout接口
  • IRichStateSpout接口
  • IBolt接口
  • IRichBolt接口
  • IBasicBolt接口

基本抽象类

  • BaseComponent抽象类
  • BaseRichSpout抽象类
  • BaseRichBolt抽象类
  • BaseTransactionalBolt抽象类
  • BaseBasicBolt抽象类

spout水龙头

Spout的最顶层抽象是ISpout接口

  • Open():初始化方法
  • close():该spout关闭前执行,但是并不能得到保证其一定被执行,kill -9时不执行,Storm kill {topoName} 时执行
  • activate():当Spout已经从失效模式中激活时被调用。该Spout的nextTuple()方法很快就会被调用
  • deactivate:当Spout已经失效时被调用。在Spout失效期间,nextTuple不会被调用。Spout将来可能会也可能不会被重新激活
  • nextTuple():当调用nextTuple()方法时,Storm要求Spout发射元组到输出收集器(OutputCollecctor)。NextTuple方法应该是非阻塞的,所以,如果Spout没有元组可以发射,该方法应该返回。nextTuple()、ack()和fail()方法都在Spout任务的单一线程内紧密循环被调用。当没有元组可以发射时,可以让nextTuple去sleep很短的时间,例如1毫秒,这样就不会浪费太多的CPU资源
  • ask():成功处理tuple回调方法
  • fail():处理失败tuole回调方法

bolt转接头

bolt的最顶层抽象是IBolt接口

prepare():prepare ()方法在集群的工作进程内被初始化时被调用,提供了Bolt执行所需要的环境。

execute():接受一个tuple进行处理,也可emit数据到下一级组件。

cleanup():Cleanup方法当一个IBolt即将关闭时被调用。不能保证cleanup()方法一定会被调用,因为Supervisor可以对集群的工作进程使用kill -9命令强制杀死进程命令。

如果在本地模式下运行Storm,当拓扑被杀死的时候,可以保证cleanup()方法一定会被调用。

实现一个Bolt,可以实现IRichBolt接口或继承BaseRichBolt,如果不想自己处理结果反馈,可以实现 IBasicBolt接口或继承BaseBasicBolt,它实际上相当于自动做了prepare方法和collector.emit.ack(inputTuple)。

spout的tail特性

Storm可以实时监测文件数据,当文件数据变化时,Storm自动读取。

相关文章

网友评论

      本文标题:大数据基础知识学习-----Storm学习笔记(四)Storm常

      本文链接:https://www.haomeiwen.com/subject/ltxasftx.html