
storm
文章平均质量分 85
王储公子
这个作者很懒,什么都没留下…
展开
-
storm源码分析研究(十三)
2021SC@SDUSCstream groupings介绍和WordCountTopology介绍2021SC@SDUSCStream groupings 流分组在Storm中有8种流分组方式,通过实现CustomStreamGroupingj接口,可以实现一种风格流分组方式:Storm 定义了八种内置数据流分组的方式:1、Shuffle grouping(随机分组):这种方式会随机分发 tuple 给bolt 的各个 task,每个bolt 实例接收到的相同数量的 tuple 。2、Fie原创 2021-12-23 18:40:47 · 1341 阅读 · 0 评论 -
storm源码分析研究(十二)
2021SC@SDUSCTrident 中的 Bolt 执行器2021SC@SDUSC类似于事务Topology中的协调Bolt, Trident中利用TridentBoltExecutor来执行Trident中的SubTopologyBolt。ITridentBatchBolt.javapublic interface ITridentBatchBolt extends IComponent { void prepare(Map<String, Object> conf, T原创 2021-12-16 09:45:00 · 161 阅读 · 0 评论 -
storm源码分析研究(十一)
2021SC@SDUSCTrident的Bolt节点分析2021SC@SDUSCSubTopologyBolt类型为Trident中运行的基本单位,但它并不是真正的Bolt节点,Trident会利用TridentBoltExecutor对SubTopologyBolt进行接口适配。TridentBoltExecutor继承自IRichBolt接口,是Trident中真正运行的Bolt节点。它提供了类似于协调Bolt ( CoordinatedBolt )节点的功能,通过发送协调消息来对各个节点进行同原创 2021-12-09 10:30:00 · 312 阅读 · 0 评论 -
storm源码分析研究(十)
2021SC@SDUSCTrident的Spout节点分析2021SC@SDUSCTrident是Storm提供给用户的另外一套接口,它提供了基本的流处理功能以及可靠的消息处理功能,其中对流的操作是Trident的核心。Trident主要支持两种类型的Spout节点:ITridentSpout以及DRPC Spout。对于Storm中其他基本类型的Spout , 例如IRichSpout和IBatchSpout,Trident进行了接口适配,将它们适配成为ITridentSpout接口并在Topol原创 2021-12-02 22:00:00 · 155 阅读 · 0 评论 -
storm源码分析研究(九)
2021SC@SDUSCbolt源码分析(四)2021SC@SDUSC本文主要介绍一下Bolt输出收集器,Bolt处理好的消息都是通过输出收集器发送出去的,不同类型的Bolt所使用的输出收集器也是不同的。上一篇文章中介绍了几个bolt端口,它们分别使用的输出收集器如下:IRichBolt:它使用OutputCollector输出收集器,该收集器实现IOutputCollector接口,实际上是一个代理类。IBasicBolt:它使用BasicOutputCollector输出收集器,该收集器原创 2021-11-25 22:00:00 · 251 阅读 · 0 评论 -
storm源码分析研究(八)
2021SC@SDUSCbolt源码分析(三)2021SC@SDUSC本文主要介绍一下bolt接口方面Storm中定义的Bolt接口主要有IBolt 、IRichBolt、IBasicBolt和IBatchBolt几者关系如下:IBolt.javaIBolt定义了Bolt的功能集合,其代码如下:public interface IBolt extends Serializable { void prepare(Map<String, Object> topoCon原创 2021-11-18 22:15:00 · 274 阅读 · 0 评论 -
storm源码分析研究(七)
2021SC@SDUSCbolt源码分析(二)2021SC@SDUSCJoinBolt源码总体介绍JoinBolt继承了BaseWindowedBolt,定义了Selector selectorType、LinkedHashMap<String, JoinInfo> joinCriteria、FieldSelector[] outputFields等属性,用于记录关联类型及关联关系join、leftJoin方法用于设置join关联关系,最后都是调用joinCommon方法,关联关系使用原创 2021-11-15 20:53:00 · 1448 阅读 · 0 评论 -
storm源码分析研究(六)
2021SC@SDUSCbolt源码分析(五)2021SC@SDUSCbolt:核心概念介绍消息处理者Bolt在Storm中是一个被动的角色,它把元组作为输入,然后产生新的元组作为输出。Bolt可以执行过滤、函数操作、合并、写数据库等操作(还可以简单地传递消息流,复杂的消息流往往需要很多步骤,因此需要很多Bolt来处理)。生命周期1、客户端创建Bolt,然后将其序列化为拓扑,并提交给集群中的主机。2、集群启动Worker进程,反序列化Bolt,调用prepare方法开始处理元组。3、原创 2021-11-04 19:57:59 · 174 阅读 · 0 评论 -
storm源码分析研究(五)
2021SC@SDUSCspout源码分析(四)2021SC@SDUSCspout:ack机制为保证无数据丢失,Storm/JStorm使用了非常漂亮的可靠性处理机制,当定义Topology时指定Acker,JStorm除了Topology本身任务外,还会启动一组称为Acker的特殊任务,负责跟踪Topolgogy DAG中的每个消息。每当发现一个DAG被成功处理完成,Acker就向创建根消息的Spout任务发送一个Ack信号。Acker按照Tuple Tree的方式跟踪消息。当Spout发送原创 2021-10-28 23:15:40 · 1276 阅读 · 0 评论 -
storm源码分析研究(四)
2021SC@SDUSCspout源码分析(三)2021SC@SDUSCTopologyBuilder.javapublic StormTopology createTopology() { Map<String, Bolt> boltSpecs = new HashMap<>(); Map<String, SpoutSpec> spoutSpecs = new HashMap<>(); maybeAdd原创 2021-10-21 22:16:28 · 139 阅读 · 0 评论 -
storm源码分析研究(三)
2021SC@SDUSCspout源码分析(二)2021SC@SDUSC在计算任务时需要的数据是由Spout提供的,所以Spout可以说是Storm中的消息源,它一般是从外部数据源(日志文件、数据库、消息队列等等)不间断地读取数据,然后发送给tuple元组的。输出是通过Spout输出收集器发送的,即SpoutOutputCollector,而SpoutOutputCollector的接口是ISpoutOutputCollector。编程人员一般可通过OutputFieldsDeclarer类的de原创 2021-10-14 22:06:56 · 165 阅读 · 0 评论 -
storm源码分析研究(二)
2021SC@SDUSCspout源码分析(一)2021SC@SDUSC文章目录spout源码分析(一)核心概念介绍ISpout.javaShellSpout.java2021SC@SDUSC核心概念介绍1、结构:Spout是storm的核心组件之一,最源头的接口是IComponent。2、发送:当Spout从外部获取数据后,向Topology中发出的Tuple可以是可靠的,也可以是不可靠的。Spout可以发射多个流,可以定义多个流(即定义多个stream),也可以使用方法来发射指定的流。原创 2021-10-07 22:52:32 · 375 阅读 · 0 评论 -
storm源码分析研究(一)
2021SC@SDUSCstorm研究综述2021SC@SDUSC一、storm综述storm是Twitter开源的分布式实时大数据处理框架,对于实时计算的意义类似于Hadoop对于批处理的意义,也提供了一些简单高效的原语,让开发更加便利和高效。二、重点确定及分工我们小组对于storm的研究,主要集中于重点源码的分析。首先确定该项项目的重点,经过查阅相关资料初步了解以及更好的分工,初步确定的关键词有Nimbus、Bolt、Zookeeper、Topology、Excutor、Superviso原创 2021-09-30 15:07:28 · 398 阅读 · 0 评论