Java大数据实战 Storm构建实时流处理之Storm编程

Ispout:
概述:
核心接口(interface),负责将数据发送到topology中去 处理Storm会跟踪Spout发出去的tuple的DAG
ack/fail
tuple: message id
ack/fail/nextTuple是在同一个线程中执行的,所以不用考虑线程安全方面。
核心方法:
open: 初始化操作。
close: 资源释放操作。
nextTuple: 发送数据 core api
ack: tuple处理成功,storm会反馈给spout一个成功消息。
fail: tuple处理失败,storm会发送一个消息给spout,处理失败。

IComponent接口
public interface Icomponent extends Serializable
为topology中所有可能的组件提供公用的方法。

void declareOutputFields(OutputFieldsDeclarer declarer);
用于声明档期啊Spout/Bolt发送的tuple的名称。
使用OutputFieldsDeclarer配合使用。

IBolt接口;
概述:
职责: 接收tuple处理,并进行相应的处理(filter/join/….)hold住tuple在处理.
IBolt会在一个运行的机器上创建,使用Java序列化它,然后提交到主节点(nimbus)nimbus会启动worker来反序列化,调用prepare方法,然后才开始处理tuple.

求和案例:
需求;1+2+3+….=???
实现方案:
Spout发送数字作为input
使用Bolt来处理业务逻辑:求和
将结果输出到控制台。
拓扑设计: DataSourceSpout -->SumBolt

词频统计:
需求: 读取指定目录的数据,并实现单词计数功能。
实现方案:
Spout来读取指定目录的数据,作为后续Bolt处理的input,
使用一个Bolt把input的数据,切割开,我们按照逗号进行分割。
使用一个Bolt来进行最终的单词的次数统计操作。
拓扑设计: DataSourceSpout==>SplitBolt==>CountBolt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值