bolt在java_Storm Bolt接口
Bolt是Topology中数据处理的基本单元,也是Storm针对处理过程的编程单元。Topology中所有的处理都是在这些bolt中完成的。 Bolt可以将数据项发送至多个数据流(Stream)。编程人员首先可以使用OutputFieldsDeclarer类的declareStream()方法声明多个流,指定数据将要发送到的流,然后使用SpoutOutputCollector的emit方法将数据发送(原生spout)。
Storm为Bolt提供的编程抽象,以接口的形式,面向接口的编程风格。其中IRichBolt是使用Java语言实现Bolt最主要的接口。事实上,IRichBolt本身并未提供更多属性或方法,只是扩展了(extends)另外两个接口IBolt和IComponent。
IRichBolt是使用Java语言实现Bolt最主要的接口,拓展了(extends)另外两个接口IBolt和IComponent.。接口包含的方法有prepare(in stormConf,in context,in collector):void,execute(in tuple) :void,cleanup():void。最重要的方法是execute(),该方法接收一个数据项作为输入。Bolt可以将处理后的结果作为新的Tuple,使用OutputCollector对象的emit()方法发送。Bolt可以在OutputCollector中对每一个发送数据项调用ack()方法,使得storm能够追溯这个数据项是否被完整处理。
IBolt和IComponent接口
1、prepare()与cleanup() void prepare(java.util.Map.stormConf,TopologyContext context,OutputCollector collector)
prepare()用于实例化Bolt的一个运行时任务,被集群中某一进程调用,提供Bolt运行的环境。prepare()方法三个参数:stormConf,context,collector.
(1)sotrmConf对象维护Storm中针对该Bolt的配置信息。这些配置信息是Topology提供的,被集群中运行该Bolt的机器使用。
(2)context上下文对象,用于获取该组件运行时任务的信息。
(3)collector对象用于从该Bolt发送数据项。
2、execute()
该方法用于Bolt从Topology中接收一个数据项(Tuple),并可以将处理的结果作为新的数据项发送(emit),是Bolt需要实现的最重要的方法。这个方法的参数input是一个数据项对象,它包含了众多的元数据(metadata),包括它来自的组件、流、任务等。数据项中的值,可以通过Tuple类的getValue()方法获得。处理结果的发送是通过在prepare()方法中提供的OutputCollector对象,调用emit方法实现。
3、IBasicBolt和BaseBasicBolt
在许多场景下Bolt的数据处理,都需要确认处理完成或认定失败。需要代码emit数据和调用ack/fail。Storm提供了另一个用来实现Bolt的接口IBasicBolt,用于该接口的实现类,会在执行execute方法之后自动调用ack方法。
bolt在java_Storm Bolt接口相关推荐
- Storm Bolt接口
Bolt是Topology中数据处理的基本单元,也是Storm针对处理过程的编程单元.Topology中所有的处理都是在这些bolt中完成的. Bolt可以将数据项发送至多个数据流(Str ...
- Kafka+Storm+HBase项目Demo(5)--topology,spout,bolt使用
相关概念 1.Topologies 一个topology是spouts和bolts组成的图, 通过stream groupings将图中的spouts和bolts连接起来. 2.Streams 消息流 ...
- Storm的WordCount案例(spout bolt详细总结)
spout介绍 一个spout是由流组成的数据源在storm的拓扑里,通常情况下会读取外部的数据源 然后emit(发射)到拓扑里面,比如是kafka,MySQL或者redis等等,Spout有两种实 ...
- Storm学习笔记(三)——Storm组件详解之Bolt、Topology
目录 Bolt消息处理者 生命周期 开发Bolt组件 Topology拓扑 结构 运行模式 示例 Bolt消息处理者 Bolt在Storm中是一个被动的角色,它把元组作为输入,然后产生新的元组作为输出 ...
- BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面
BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面 bolt 基本介绍 Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库.迅雷7是首个采用该引擎成功开 ...
- 这么小的key-val数据库居然也支持事务——与短跑名将同名的数据库Bolt
传送门: 柏链项目学院 什么是Bolt? Bolt是一个纯净的基于go语言编写的key-val数据库,该项目受到LMDB项目的启发,目标是提供一个不需要完整服务器的简单.快速.可靠的数据库. ...
- Storm精华问答 | 如何理解spout/bolt的生命周期?
戳蓝字"CSDN云计算"关注我们哦! Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop.随着越来越多的场景对Hadoop的MapReduce高 ...
- Could not load driver class org.neo4j.ogm.drivers.http.driver.HttpDriver(Neo4j连接用bolt还是http)
这里需要注意如果只是用了 spring-boot-starter-data-neo4j 的话,连接驱动默认使用的是bolt协议.bolt协议好像底层使用二进制操作,更高效.如果要是用http协议的话要 ...
- 配置neo4j bolt+s ssl
配置neo4j bolt+s ssl 创建证书 更改权限 配置neo4j ssl 查看neo4j ui页面 springboo项目连接neo4j bolt+s ssl 导入rootCA.crt证书到 ...
最新文章
- Atitit hsv转grb 应该优先使用hsv颜色原则 方便人类
- Gameplay 框架
- pythonista3使用教程-Pythonista中文文档:使用Pythonista
- 【Paper】2009_Controllability of Multi-Agent Systems from a Graph-Theoretic Perspective
- 在Linux系统下生产者消费者,生产者-消费者问题实现 (linux下C语言)
- Windows下用Mingw编译Boost.Regex库
- 内核中的UDP socket流程(11)——ip_append_data
- c# socket接收字符串_php 的 socket简单原理及实现
- C++11中内联函数(inline)
- 详解JavaScript的五种继承方式
- The Bean Validation API is on the classpath but no implementation could be found 项目启动报错解决
- 超长指令字计算机,超长指令字
- 【数据库作业10】用SQL语句来表示关系代数中的表达式
- python画史迪仔_手把手教你如何使用Python来生成马赛克画!
- 嘉曼服饰上市破发,大跌16%:公司市值37亿 刘溦家族色彩浓厚
- 安全扫描工具-appscan
- C++中的 .h 和 .cpp 详解
- 微信服务号的六大价值有哪些
- 跟我一起学PyTorch-07:嵌入与表征学习
- 飞书机器人python获取open_id对应的用户信息api调用
热门文章
- 台式计算机磁盘视图怎么改,[极速u盘装系统]win7系统分配盘符“因为磁盘管理控制台视图不是...
- 管理信息系统期末复习资料
- caxa工程知识管理服务器配置信息怎么填,CAXA CAPP教程:如何定义与单元格相关联的知识库...
- AttributeSet与TypeArray的关系
- java中esb是什么意思_ESB与服务
- 如何远程登录Linux
- 浅谈CGI程序与web间数据交互
- 《楚汉传奇》对韩信的一点看法
- Js逆向教程20-Hook基础
- iPhone分辨率及尺寸