- 博客(13)
- 收藏
- 关注
原创 storm代码阅读(十三)
2021SC@SDUSCstorm代码阅读(十三)2021SC@SDUSCStream Groupings部分阅读storm代码阅读(十三)Stream GroupingsFieldGroupingShuffle groupingStream GroupingsStream Grouping定义了一个流在Bolt任务间该如何被切分。 这里有storm提供的9个Stream Grouping类型1、shuffleGrouping(随机分组)随机分发tuple到Bolt的任务,保证每个任务获得相等
2021-12-22 22:05:42 251
原创 storm代码阅读(十二)
2021SC@SDUSCstorm代码阅读(十二)2021SC@SDUSCTask部分阅读(七)storm代码阅读(十二)Storm中传输的消息及序列化反序列化Storm中传输的消息及序列化下面将介绍Storm如何对消息进行序列化并分析实际的传输内容。KryoTupleSerializer类用于实现消息的序列化。代码如下:public class KryoTupleSerializer implements ITupleSerializer { private KryoValuesS
2021-12-14 00:23:47 1409
原创 storm代码阅读(十一)
2021SC@SDUSCstorm代码阅读(十一)2021SC@SDUSCTask部分阅读(六)storm代码阅读(十一)send-unanchored创建Tasksend-unanchored创建Task
2021-12-07 23:54:22 106
原创 storm代码阅读(十)
2021SC@SDUSCstorm代码阅读(十)2021SC@SDUSCTask部分阅读(五)mk-tasks-fn函数mk-tasks-fn函数将返回一个函数tasks-fn,tasks-fn函数可根据要发送的消息获取消息的接收端TaskId集合。mk-tasks-fn函数代码如下:1 (defn mk-tasks-fn [task-data]2 (let [task-id (:task-id task-data)3 executor-data (:executor-
2021-12-02 20:04:40 105
原创 storm代码阅读(九)
2021SC@SDUSCstorm代码阅读(九)2021SC@SDUSCTask部分阅读(四)创建Task数据mk-task-data函数用来创建与Task相关的数据,其参数为Executor的数据executor-data以及该Task的TaskId。代码如下:(defn mk-task-data [executor-data task-id] (recursive-map :executor-data executor-data :task-id task-id
2021-11-25 21:39:41 169
原创 storm代码阅读(八)
2021SC@SDUSCstorm代码阅读(八)2021SC@SDUSCTask部分阅读(三)storm代码阅读(八)WorkerTopologyContextTopologyContextWorkerTopologyContextWorkerTopologyContext类继承自GeneralTopologyContext,它是Storm中worker运行的上下文环境,也即Executor中的共享环境。该类具体实现代码如下:public class WorkerTopologyContext
2021-11-17 20:38:49 250
原创 storm代码阅读(七)
2021SC@SDUSCstorm代码阅读(七)2021SC@SDUSCTask部分阅读(二)storm代码阅读(七)GeneralTopologyContextGeneralTopologyContext的工具函数GeneralTopologyContextGeneralTopologyContext类表示Topology的上下文环境,提供了较多的工具方法来方便获得Topology的结构信息。GeneralTopologyContext定义如下:public class GeneralTop
2021-11-09 19:55:12 1135
原创 storm代码阅读(六)
2021SC@SDUSCstorm代码阅读(六)2021SC@SDUSCTask部分阅读(一)storm代码阅读(六)TaskTopologyContextTaskStorm中的Task是最小的执行单位,与Worker,Executor分别对应于进程和线程不同,Task只是逻辑上的执行单位,它需要寄身与Executor中完成运行。一个Executor可以有多个Task,用户定义的Spout和Bolt对象都会被放置在Task上,当Executor收到属于某一个Task的消息时,就会调用与该Task对
2021-11-03 21:51:36 71
原创 storm代码阅读(五)
2021SC@SDUSCstorm代码阅读(五)2021SC@SDUSCTopology部分阅读(四)storm代码阅读(五)Topolpgy提交【1】Topolpgy提交【2】Topolpgy提交【1】1、用户代码调用submitTopology用户一般通过StormSubmitter.submitTopology提交拓扑。if (args != null && args.length > 0) { conf.setNumWorkers(3);
2021-10-25 20:57:20 205
原创 storm代码阅读(四)
2021SC@SDUSCstorm代码阅读(四)2021SC@SDUSCTopology部分阅读(三)storm代码阅读(四)事务topologyITransactionalSpout事务topology根据topology中spout类型不同,topology可分为非事务topology和事务topology两种类型。非事务topology:Spout类型为IRichSpout。Storm并不保证消息的可靠传输,消息可能会丢失。事务topology:Spout类型为ITransactiona
2021-10-21 21:55:31 88
原创 storm代码阅读(三)
2021SC@SDUSCstorm代码阅读(三)2021SC@SDUSCTopology部分阅读(二)storm代码阅读(三)TopologyBuilder中一些接口的实现ConfigGetterSpoutGetterBoltGetterTopologyBuilder中一些接口的实现ConfigGetterConfigGetter是定义在TopologyBuilder.java中的一个类,它实现了ComponentConfigurationDeclarer接口,并且继承自BaseConfigur
2021-10-14 22:29:53 104
原创 storm代码阅读(二)
2021SC@SDUSCstorm代码阅读(二)2021SC@SDUSCTopology部分阅读(一)storm代码阅读(二)topology介绍TopologyBuilder代码总览TopologyBuilder具体代码段分析topology介绍Storm集群中的任务称之为Topology。Topology任务从数据源中获取数据,然后进行后续处理。在Topology中从外部数据源获取数据的组件,称之为Spout,处理数据的组件,称之为bolt。一个Topology就是由一个或者多个的Spout
2021-10-07 21:34:03 134
原创 storm代码阅读(一)
2021SC@SDUSCstorm代码阅读(一)2021SC@SDUSCStrom介绍Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。Apache Storm继续成为实时数据分析的领导者。Storm易于设置和操作,并且它保证每个消息将通过拓扑至少处理一次。准备
2021-09-30 15:05:53 144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人