- 博客(13)
- 收藏
- 关注
原创 storm源码分析(十三)
文章目录TridentTopologygenBoltIdsaddSourceNode()addNode()TridentTopologyBuildersetSpout()setBolt()buildTopology()2021SC@SDUSCTridentTopologygenBoltIds生成bolt的名称。private static Map<Group, String> genBoltIds(Collection<Group> groups) { Map<
2021-12-23 23:28:38
259
原创 storm源码分析(十二)
文章目录storm中的trident什么是trident?TridentTopologynewStream()build()2021SC@SDUSCstorm中的tridenttrident代码的阅读有两个重要的类TridentTopology、Stream,这两个类可以作为我们学习storm-trident源代码的入口。trident的拓扑的构造分两部分:一:构造trident逻辑的拓扑,这部分就是我们调用TridentTopology.newStream(…).each().groupBy()
2021-12-14 20:08:13
1572
原创 storm源码分析(十一)
文章目录有关Workerworker, executor,task之间的关系管理Worker进程的事件线程代码分析worker-launcher.csetup_permissions()mkdirs()create_validate_dir()setup_worker_tmp_permissions()2021SC@SDUSC首先再介绍一些有关Worker的知识。然后再分析代码。有关Workerworker, executor,task之间的关系worker即进程,一个worker就是一个进程,
2021-12-06 19:36:57
244
原创 storm源码分析(十)
文章目录NoneGroupingAllGroupingPartialKeyGrouping2021SC@SDUSCNoneGrouping不关注并行处理负载均衡策略时使用该方式,目前等同于Shuffle Grouping,另外Storm将会把bolt任务和他的上游提供数据的任务安排在同一个线程下。 public static class NoneGrouping implements CustomStreamGrouping { private final Random ran
2021-11-29 17:53:58
1035
原创 storm源码分析(九)
文章目录Stream GroupingShuffleGroupingGlobalGroupingFieldsGrouping2021SC@SDUSCStream Grouping在Storm中, 开发者可以为上游Spout/Bolt发射出的Tuples指定下游Bolt的哪个/哪些Task(s)来处理该Tuples。为每个bolt指定应该接受哪个流作为输入,流分组定义了如何在bolt的任务直接进行分发。即Stream Grouping,分组方式主要有以下7种。public enum Groupin
2021-11-24 21:56:14
135
原创 storm源码分析(八)
文章目录WorkerTransfertryTransferRemote()WorkerTokenInfo_FieldsfindByThriftIdfindByThriftIdOrThrowfindByName2021SC@SDUSCWorkerTransfertryTransferRemote()public boolean tryTransferRemote(AddressedTuple addressedTuple, Queue<AddressedTuple> pendingEmit
2021-11-17 19:42:08
149
原创 storm源码分析(七)
2021SC@SDUSC获取属于Worker的Executorread-worker-executors函数用来计算分配到该Worker的Executor,它通过调用Storm-cluster-state的assignment-info函数获得所有Topology的分配信息,然后利用worker的assignemtn-id以及port进行过滤,得到某个worker所属的Executor,这里的assignment-id对应于node,Worker启动后,其执行的Executor集合将不再发生变化,但当任
2021-11-10 23:24:10
587
原创 storm源码分析(六)
文章目录关于Workerworker中的计时器worker的心跳worker中对ZMQ连接的维护WorkerWorker.startWorker.loadWorker2021SC@SDUSCpackage org.apache.storm.daemon.worker;关于Worker通过worker-data方法定义了一个包含很多共享数据的映射集合,worker中的很多方法都依赖它。worker中的计时器每个计时器都对应着一个java线程,worker中使用计时器进行心跳保持以及获取元数据的更新
2021-11-04 19:53:26
278
原创 storm源码分析(五)
文章目录storm-kafka源码分析(一)一、org.apache.storm.kafka(一)ZkState(二)trident.ZkBrokerReader(三)ZkCoordinator(四)StaticPartitionCoordinator2021SC@SDUSCstorm-kafka源码分析(一)storm-kafka是storm用于读取kafka消息的连接器。一、org.apache.storm.kafkaorg.apache.storm.kafka这个package包括了一些公共
2021-10-24 16:41:13
1007
原创 storm源码分析(四)
文章目录代码分析verifyParentWithTopoChildrenDeleteDead()方法各种校验方法2021SC@SDUSC我们接着上一篇继续分析AclEnforcement类。代码分析verifyParentWithTopoChildrenDeleteDead()方法首先该方法传入的参数有:CuratorFramework zk :zookeeper的客户端框架ACL superUserAcl:用户权限String path:路径Map<String, Id> t
2021-10-21 22:12:16
147
原创 storm源码分析(三)
文章目录一、ACLs权限权限维度1.scheme2.id3.permission二、代码分析verifyAcls()方法getTopoAcl()方法2021SC@SDUSCAclEnforcement类,这是用于执行ZK acl的类。我们首先介绍一些关于ACLs权限的知识。一、ACLs权限权限1) CREATE: 创建权限,可以在在当前node下创建child node2) DELETE(d): 删除权限,可以删除当前的node3) READ: 读权限,可以获取当前node的数据,可以lis
2021-10-14 23:03:16
411
原创 storm源码分析(二)
文章目录storm源码分析(二)Strom在Zookeeper中的目录结构插入的包该类中的属性基本方法2021SC@SDUSCstorm源码分析(二)2021SC@SDUSCZooKeeper:Storm重点依赖的外部资源,Nimbus、Supervisor和Worker等都是把心跳数据保存在ZooKeeper上,Nimbus也是根据ZooKeeper上的心跳和任务运行状况进行调度和任务分配的。Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeeper上面写
2021-10-07 22:53:21
310
原创 storm源码分析
文章目录Storm源码分析 (一) 综述一、storm介绍二、storm组件ZookeeperSpoutBoltStream Groupings三、任务分配2021SC@SDUSCStorm源码分析 (一) 综述2021SC@SDUSC一、storm介绍Storm是一个开源的,分布的,可靠的,容错的数据流处理系统。Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,
2021-09-30 15:09:51
774
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人