- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WordCountTopology的实现
WordCountTopology的实现
1. 编写SentenceSpout
package com.ibeifeng.bigdata.storm.topo;
import backtype.storm.spout.SpoutOutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.IRichSpout;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseRichSpout;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Values;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
import java.util.Random;
/**
* Spout开发
* Created by ad on 2016/12/11.
*/
//public class SentenceSpout implements IRichSpout{
public class SentenceSpout extends BaseRichSpout{
private static final Logger logger = LoggerFactory.getLogger(SentenceSpout.class);
/**
* tuple发射器
*/
private SpoutOutputCollector collector;
private static final String[] SENTENCES = {
hadoop yarn mapreduce spark,
flume hadoop hive spark,
oozie yarn spark storm,
storm yarn mapreduce error,
error flume storm spark
};
/**
* 用来声明该组件向后面组件发射的tuple的key名称依次是什么
* @param declarer
*/
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields(sentence));
}
/**
* 用于指定只针对本组件的一些特殊配置
* @return
*/
@Override
public MapString, Object getComponentConfiguration() {
return null;
}
/**
* Spout 组件的初始化方法
* 创建SentenceSpout组件的实例对象时调用,只执行一次
* @param conf
* @param context
* @param collector
*/
@Override
public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
// 用实例变量来接收tuple发射器
this.collector = collector;
}
/**
* close方法在该spout关闭前执行,但是并不能得到保证其一定被执行。
* spout是作为task运行在worker内,在cluster模式下,
* supervisor会直接kill -9 woker的进程,这样它就无法执行了。
* 而在本地模式下,只要不是kill -9, 如果是发送停止命令,
* 是可以保证close的执行的。
*/
@Override
public void close() {
您可能关注的文档
- Windows 2008 R2 安装激活终端服务破解远程最大连接数2.docx
- Windchill 10.0用户培训-Proe数据管理.pptx
- Windows Server 2003基本设置.ppt
- Windows Sever 2003 远程访问方案.doc
- windows server 2012 创建域和域中的用户.docx
- Windows 2008网络服务-04-配置远程访问服务.ppt
- Windows_2003复习题.doc
- windows可视化编程-历年在线作业完整版-含2014年秋.doc
- Windows2003服务器NTFS权限应用.ppt
- Windows_Server_2008_安装及AD部署.doc
文档评论(0)