IBatchSpout API怎么使用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"IBatchSpout API怎么使用",在日常操作中,相信很多人在IBatchSpout API怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年02月01日IBatchSpout API怎么使用
这篇文章主要介绍"IBatchSpout API怎么使用",在日常操作中,相信很多人在IBatchSpout API怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"IBatchSpout API怎么使用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
IBatchSpout是storm trident推出的一种可以批量发射的Spout。非事务性,基本的spout
1:Map getComponentConfiguration();定义配置,可以用backtype.storm.Config。
2:void open(Map conf, TopologyContext context); Spout的初始化方法 ,参数conf即是getComponentConfiguration定义的配置
3:Fields getOutputFields(); 声明输出的fields
4:void emitBatch(long batchId, TridentCollector collector); 批量发射tuple,本次的批次号为batchId
5:void ack(long batchId);批次号为batchId的数据处理成功
6: void close();
一个例子
package storm.projectA;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import storm.trident.operation.TridentCollector;import storm.trident.spout.IBatchSpout;import backtype.storm.Config;import backtype.storm.task.TopologyContext;import backtype.storm.tuple.Fields;import backtype.storm.tuple.Values;public class MySpout implements IBatchSpout{ /** * */ private static final long serialVersionUID = 1L; private long maxBatchSize;//每批次最大的数量 private BufferedReader br;//源文件流 HashMap>> batches = new HashMap >>();//保存发送过的所有数据,以便于重复发送 /** * @param conf 配置 * @param context */ @Override public void open(Map conf, TopologyContext context) { String filePath = (String)conf.get("filePath"); maxBatchSize = (Long)conf.get("maxBatchSize"); try { br = new BufferedReader(new FileReader(filePath)); } catch (FileNotFoundException e) { e.printStackTrace(); } } /*** spout的发送方法 * @param batchId 批次id * @param collector 批量发射器 */ @Override public void emitBatch(long batchId, TridentCollector collector) { List > batch = batches.get(batchId); if (batch == null) { batch = new ArrayList
>(); for (int i = 0; i < maxBatchSize; i++) { try { String line = br.readLine(); if(line == null){ break; } batch.add(new Values(line)); } catch (IOException e) { e.printStackTrace(); } } } for(List
到此,关于"IBatchSpout API怎么使用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
批次
方法
学习
发射
配置
最大
数据
更多
帮助
输出
实用
成功
接下来
事务
事务性
例子
参数
发射器
数据处理
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
临沂凯广网络技术有限公司
华师数据库技术及应用
李艇网络安全与认证
网络安全传输设备
莱芜pc软件开发公司有哪些
我的世界pcl服务器地址
一个数据库对应磁盘上的一个目录
linux终端如何删除数据库
什么叫软件开发需求
安徽常见软件开发参考价
网络安全北京分布图
sql数据库的表分区
网络安全项目环保分析报告
佛山聊天软件开发联系方式
管家婆辉煌版h5数据库
哪个网站使用apache服务器
重庆手机软件开发服务商
查找失败 服务器繁忙
数据库如何设置查阅属性
疾病标靶数据库
windows打印服务器作用
深圳市往悦互联网科技有限公司
eve手游服务器选哪个
成都黑晶网络技术有限公司评价
珠海无限软件开发代理价格
数据库中字段类型对应的C
数据库中指定用户
河南省网络安全宣传周活动
网络安全和新冠病毒
pride数据库