初始Storm-WorkCount案例及基本接口

Storm Topology主要由两种组件组成:

      Spout:数据流的生成者,是主要数据入口,充当采集器角色,连接到数据源,将数据转换为一个个tuple,并将tuple作为数据流 进行发射
      Bolt:计算,将一个个数据流作为输入,对数据流实施运算后,选择性得输出一个或者多个数据流,bolt可一个订阅多个由spout或者其他bolt发射的数据了流
复制代码
IComponent

所有的Spout,Bolt组件都需要实现IComponent接口

public interface IComponent extends Serializable {
    /**
     * IComponent接口定义,所以Storm组件(spout,bolt)必须实现
     * Storm通过这个方法告诉Storm该组件会发射那些数据流,每个数据流的tuple包含那些字段
     * @param outputFieldsDeclarer
     */
    void declareOutputFields(OutputFieldsDeclarer var1);
   /**
    * 获取配合信息
    */
    Map<String, Object> getComponentConfiguration();
}
复制代码
ISpout 所有的spout的组件都需要实现ISpout接口
public interface ISpout extends Serializable {
/**
     * 由ISpout接口定义,所有Spout组件在初始化时调用这个方法
     * @param map  包含Storm配置信息的map
     * @param topologyContext  topology组件的信息
     * @param spoutOutputCollector  提供发射的方法
     */
    void open(Map var1, TopologyContext var2, SpoutOutputCollector var3);

    /**
     * 销毁的时候调用
    */
    void close();

    void activate();

    void deactivate();

   /**
     * 由ISpout接口定义,所有spout实现的核心所在
     * Storm通过调用这个方法向输出的collector发射tuple
     */
    void nextTuple();

  /**
     * 下游bolt将tuple处理成功,会调用ack方法
     * @param msgId
     */
    void ack(Object var1);

    /**
     * 下游bolt将tuple处理失败,会调用msgId方法
     * @param msgId 每个tuple的唯一标识
     */
    void fail(Object var1);
}
复制代码
IBolt接口 所有的bolt组件都需要实现IBolt接口
public interface IBolt extends Serializable {
    /**
     * 由IBolt接口定义,类同与ISpout接口的open方法
     * 在bolt初始化的时候调用,可以用来准备bolt用到的资源,如数据库连接
     * @param map
     * @param topologyContext
     * @param outputCollector
     */
    void prepare(Map var1, TopologyContext var2, OutputCollector var3);

    /**
     * bolt的核心功能所在,由IBolt接口定义
     * 每当从订阅的数据流中接收一个tuple,都会调用这个方法
     * @param tuple
     */
    void execute(Tuple var1);

    /**
     * 由IBolt接口定义,Storm在终止一个bolt前调用这个方法
     */
    void cleanup();
}

复制代码

使用Storm开发的好处是Storm有一个本地模式,本地模式会在JVM实例中模拟一个Storm集群。大大简化了用户在开发环境或者IDE中进行开发和调试

下面附上词频统计案例源码 github.com/MarkGao1152…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值