<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[null_wry的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/null_wry</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; null_wry]]></copyright><item><title><![CDATA[storm源码分析(十三)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/122118532</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/122118532</guid><author>null_wry</author><pubDate>Thu, 23 Dec 2021 23:28:38 +0800</pubDate><description><![CDATA[文章目录TridentTopologygenBoltIdsaddSourceNode()addNode()TridentTopologyBuildersetSpout()setBolt()buildTopology()
2021SC@SDUSC
TridentTopology
genBoltIds
生成bolt的名称。
private static Map&lt;Group, String&gt; genBoltIds(Collection&lt;Group&gt; groups) {
    Map&lt]]></description><category></category></item><item><title><![CDATA[storm源码分析(十二)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121938736</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121938736</guid><author>null_wry</author><pubDate>Tue, 14 Dec 2021 20:08:13 +0800</pubDate><description><![CDATA[文章目录storm中的trident什么是trident?TridentTopologynewStream()build()
2021SC@SDUSC
storm中的trident
trident代码的阅读有两个重要的类TridentTopology、Stream，这两个类可以作为我们学习storm-trident源代码的入口。
trident的拓扑的构造分两部分：
一：构造trident逻辑的拓扑,这部分就是我们调用TridentTopology.newStream(…).each().groupBy()]]></description><category></category></item><item><title><![CDATA[storm源码分析(十一)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121752903</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121752903</guid><author>null_wry</author><pubDate>Mon, 06 Dec 2021 19:36:57 +0800</pubDate><description><![CDATA[文章目录有关Workerworker, executor,task之间的关系管理Worker进程的事件线程代码分析worker-launcher.csetup_permissions（）mkdirs（）create_validate_dir（）setup_worker_tmp_permissions（）
2021SC@SDUSC
首先再介绍一些有关Worker的知识。
然后再分析代码。
有关Worker
worker, executor,task之间的关系
worker即进程，一个worker就是一个进程，]]></description><category></category></item><item><title><![CDATA[storm源码分析(十)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121615083</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121615083</guid><author>null_wry</author><pubDate>Mon, 29 Nov 2021 17:53:58 +0800</pubDate><description><![CDATA[文章目录NoneGroupingAllGroupingPartialKeyGrouping
2021SC@SDUSC
NoneGrouping
不关注并行处理负载均衡策略时使用该方式，目前等同于Shuffle Grouping,另外Storm将会把bolt任务和他的上游提供数据的任务安排在同一个线程下。
  public static class NoneGrouping implements CustomStreamGrouping {
 
        private final Random ran]]></description><category></category></item><item><title><![CDATA[storm源码分析(九)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121525824</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121525824</guid><author>null_wry</author><pubDate>Wed, 24 Nov 2021 21:56:14 +0800</pubDate><description><![CDATA[文章目录Stream GroupingShuffleGroupingGlobalGroupingFieldsGrouping
2021SC@SDUSC
Stream Grouping
在Storm中， 开发者可以为上游Spout/Bolt发射出的Tuples指定下游Bolt的哪个/哪些Task(s)来处理该Tuples。
为每个bolt指定应该接受哪个流作为输入,流分组定义了如何在bolt的任务直接进行分发。
即Stream Grouping，分组方式主要有以下7种。
public enum Groupin]]></description><category></category></item><item><title><![CDATA[storm源码分析(八)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121385517</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121385517</guid><author>null_wry</author><pubDate>Wed, 17 Nov 2021 19:42:08 +0800</pubDate><description><![CDATA[文章目录WorkerTransfertryTransferRemote()WorkerTokenInfo_FieldsfindByThriftIdfindByThriftIdOrThrowfindByName
2021SC@SDUSC
WorkerTransfer
tryTransferRemote()
public boolean tryTransferRemote(AddressedTuple addressedTuple, Queue&lt;AddressedTuple&gt; pendingEmit]]></description><category></category></item><item><title><![CDATA[storm源码分析(七)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121259162</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121259162</guid><author>null_wry</author><pubDate>Wed, 10 Nov 2021 23:24:10 +0800</pubDate><description><![CDATA[2021SC@SDUSC
获取属于Worker的Executor
read-worker-executors函数用来计算分配到该Worker的Executor,它通过调用Storm-cluster-state的assignment-info函数获得所有Topology的分配信息，然后利用worker的assignemtn-id以及port进行过滤，得到某个worker所属的Executor,这里的assignment-id对应于node,Worker启动后，其执行的Executor集合将不再发生变化，但当任]]></description><category></category></item><item><title><![CDATA[storm源码分析(六)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/121149575</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/121149575</guid><author>null_wry</author><pubDate>Thu, 04 Nov 2021 19:53:26 +0800</pubDate><description><![CDATA[文章目录关于Workerworker中的计时器worker的心跳worker中对ZMQ连接的维护WorkerWorker.startWorker.loadWorker
2021SC@SDUSC
package org.apache.storm.daemon.worker;
关于Worker
通过worker-data方法定义了一个包含很多共享数据的映射集合，worker中的很多方法都依赖它。
worker中的计时器
每个计时器都对应着一个java线程，worker中使用计时器进行心跳保持以及获取元数据的更新]]></description><category></category></item><item><title><![CDATA[storm源码分析(五)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/120935965</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/120935965</guid><author>null_wry</author><pubDate>Sun, 24 Oct 2021 16:41:13 +0800</pubDate><description><![CDATA[文章目录storm-kafka源码分析(一)一、org.apache.storm.kafka(一)ZkState(二)trident.ZkBrokerReader(三)ZkCoordinator(四)StaticPartitionCoordinator
2021SC@SDUSC
storm-kafka源码分析(一)
storm-kafka是storm用于读取kafka消息的连接器。
一、org.apache.storm.kafka
org.apache.storm.kafka这个package包括了一些公共]]></description><category></category></item><item><title><![CDATA[storm源码分析(四)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/120894059</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/120894059</guid><author>null_wry</author><pubDate>Thu, 21 Oct 2021 22:12:16 +0800</pubDate><description><![CDATA[文章目录代码分析verifyParentWithTopoChildrenDeleteDead()方法各种校验方法
2021SC@SDUSC
我们接着上一篇继续分析AclEnforcement类。
代码分析
verifyParentWithTopoChildrenDeleteDead()方法
首先该方法传入的参数有：
CuratorFramework zk ：zookeeper的客户端框架
ACL superUserAcl：用户权限
String path：路径
Map&lt;String, Id&gt; t]]></description><category></category></item><item><title><![CDATA[storm源码分析(三)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/120773477</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/120773477</guid><author>null_wry</author><pubDate>Thu, 14 Oct 2021 23:03:16 +0800</pubDate><description><![CDATA[文章目录一、ACLs权限权限维度1.scheme2.id3.permission二、代码分析verifyAcls()方法getTopoAcl()方法
2021SC@SDUSC
AclEnforcement类，这是用于执行ZK acl的类。
我们首先介绍一些关于ACLs权限的知识。
一、ACLs权限
权限
1） CREATE: 创建权限，可以在在当前node下创建child node
2） DELETE(d): 删除权限，可以删除当前的node
3） READ: 读权限，可以获取当前node的数据，可以lis]]></description><category></category></item><item><title><![CDATA[storm源码分析(二)]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/120642456</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/120642456</guid><author>null_wry</author><pubDate>Thu, 07 Oct 2021 22:53:21 +0800</pubDate><description><![CDATA[文章目录storm源码分析(二)Strom在Zookeeper中的目录结构插入的包该类中的属性基本方法
2021SC@SDUSC
storm源码分析(二)
2021SC@SDUSC
ZooKeeper：
Storm重点依赖的外部资源，Nimbus、Supervisor和Worker等都是把心跳数据保存在ZooKeeper上，Nimbus也是根据ZooKeeper上的心跳和任务运行状况进行调度和任务分配的。
Storm的所有的状态信息都是保存在Zookeeper里面，nimbus通过在zookeeper上面写]]></description><category></category></item><item><title><![CDATA[storm源码分析]]></title><link>https://blog.youkuaiyun.com/null_wry/article/details/120565617</link><guid>https://blog.youkuaiyun.com/null_wry/article/details/120565617</guid><author>null_wry</author><pubDate>Thu, 30 Sep 2021 15:09:51 +0800</pubDate><description><![CDATA[文章目录Storm源码分析 (一) 综述一、storm介绍二、storm组件ZookeeperSpoutBoltStream Groupings三、任务分配
2021SC@SDUSC
Storm源码分析 (一) 综述
2021SC@SDUSC
一、storm介绍
Storm是一个开源的，分布的，可靠的，容错的数据流处理系统。Storm有很多使用场景：如实时分析，在线机器学习，持续计算，分布式RPC，ETL等等。Storm支持水平扩展，具有高容错性，保证每个消息都会得到处理，而且处理速度很快（在一个小集群中，]]></description><category></category></item></channel></rss>