限选storm
文章平均质量分 64
大三上
siwujidan_77
这个作者很懒,什么都没留下…
展开
-
Stream groupings(团队合作项目)
2021SC@SDUSCStream groupings主要分为以下七种:1. Shuffle Grouping 随机分组。2. Fields Grouping 按字段分组。3. All Grouping 广播发送。4. Global Grouping 全局分组。5. None Grouping 不分组。6. Direct Grouping 指向型分组。7. Local or shuffle grouping 本地或随机分组。还有一种为customGrouping,是给用原创 2021-12-09 20:37:14 · 333 阅读 · 0 评论 -
Nimbus(补充二)
2021SC@SDUSCmk-scheduler函数定义如下:mk-scheduler函数( defn mk-scheduler [ conf inimbus ] ;; 当前版本getForcedScheduler函数返回nil ( let [ forced-scheduler ( .getForcedScheduler inimbus) ;; scheduler绑定IScheduler接口的实现 ;; cond等价于java中的switch,我们可以发原创 2021-11-30 19:03:38 · 1325 阅读 · 0 评论 -
Supervisor(三)
2021SC@SDUSCwait-for-workers-launch函数定义如下:wait-for-workers-launch函数;; wait-for-workers-launch函数等待所有worker启动完成( defn- wait-for-workers-launch [ conf ids ] ( let [ start-time ( current-time-secs )] ( doseq [ id ids ] ;; 调用wait-for-wor原创 2021-11-15 18:34:00 · 183 阅读 · 0 评论 -
STORM介绍及项目分工
(一)strom介绍Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm 采用Clojure开发。目前的最新版本是Apache Storm2.3.0Storm 有很多应用场景,包括实时数据分析、联机学习、持续计算、分布式 RPC、ETL 等。Storm 速度非常快,一个测试在单节点上实现每秒一百万的组处理。Storm也是基于C/S架构来进行工作的,C负责将数据处理的方式...原创 2021-09-30 01:04:41 · 370 阅读 · 0 评论 -
Supervisor(一)
2021SC@SDUSC首先,我们再来看一下supervisor的工作:Storm将每个节点分为主控节点和工作节点两种,其中主控节点只有一个,工作节点可以有多个。每个工作节点运行Supervisor守护进程,负责监听工作节点上已经分配的主机作业,启动和停止Nimbus已经分配的工作进程。supervisor会定时从zookeeper获取拓补信息topologies、任务分配信息assignments及各类心跳信息,以此为依据进行任务分配。在supervisor同步时,会根据新的任务分配情原创 2021-10-28 22:39:11 · 258 阅读 · 0 评论 -
Fields Grouping
2021SC@SDUSC以代码为例:public class Toplogy { public static void main(String[] args) { TopologyBuilder builder = new TopologyBuilder(); builder.setSpout("spout", new Spot(), 1); builder.setBolt("bolt",new Bolt() , 3).fieldsGrouping("spout", new原创 2021-12-17 19:24:13 · 123 阅读 · 0 评论 -
Custom Grouping
2021SC@SDUSCpublic interface CustomStreamGrouping extends Serializable { /** * Tells the stream grouping at runtime the tasks in the target bolt. This information should be used in chooseTasks to determine the * target tasks. *原创 2021-12-27 21:53:04 · 73 阅读 · 0 评论 -
Nimbus(三)
2021SC@SDUSC在这篇文章中,我们着重去看nimbus提交任务的过程1 .首先是校验任务的名称是否合法2 校验是否有同名的任务已经在了3 校验在提交列表中是否有同名的任务,这个是避免连续的多次提交4提交任务了在上面四个步骤中,第四步是最重要也是最复杂的,我们来详细介绍第四步4.1 对配置信息进行处理4.2 验证任务的结构 Common.validate_basic(normalizedTopology, totalStormConf, topolog...原创 2021-10-21 21:34:53 · 127 阅读 · 0 评论 -
Nimbus
2021SC@SDUSC代码分析以注释方式加在原文中nimbus-data函数定义如下:(defn nimbus-data [conf inimbus](let [forced-scheduler (.getForcedScheduler inimbus)] {:conf conf :inimbus inimbus :submitted-count (atom 0) //表示当前已经提交的Topology的数目; :storm-cluster-s...原创 2021-10-07 22:00:47 · 109 阅读 · 0 评论 -
Direct Grouping
2021SC@SDUSC使用方法(步骤):1.上游在prepare方法保存下游bolt的taskId列表public class SentenceDirectBolt extends BaseRichBolt { private static final Logger LOGGER = LoggerFactory.getLogger(SentenceDirectBolt.class); private OutputCollector collector; p原创 2021-12-22 21:26:50 · 62 阅读 · 0 评论 -
Supervisor(四)
2021SC@SDUSC1.在Supervisor的启动过程中,即在mkSupervisor()方法中,源码如下:SyncSupervisorEvent会定时的循环扫描Zookeeper的任务分配目录,看是否有自己的任务,如果 有,那么把对应的信息写到本地(Supervisor)机器的指定目录中,这个工作主要是有 SyncSupervisorEvent 线程中的run方法来完成的。2.SyncSupervisorEvent 的成员信息3.任务配置信息Assignment对象所包含的相关.原创 2021-11-17 21:08:45 · 1051 阅读 · 0 评论 -
Nimbus(补充)
2021SC@SDUSCnimbus是storm集群的"控制器",是storm集群的重要组成部分。我们可以通用执行bin/storm nimbus >/dev/null 2>&1 &来启动nimbus。bin/storm是一个python脚本,在这个脚本中定义了一个nimbus函数:nimbus函数def nimbus( klass = "backtype.storm.daemon.nimbus" ): """Syntax: [storm nimb.原创 2021-11-24 17:12:19 · 890 阅读 · 0 评论 -
Nimbus(二)
2021SC@SDUSC上一篇博客展示了nimbus的核心代码和一些基本的分析注释,本文将详细分析解释第一部分代码,并进行补充。nimbus-data nimbus-data函数的定义如下所示(defn nimbus-data [conf inimbus](let [forced-scheduler (.getForcedScheduler inimbus)] {:conf conf :inimbus inimbus :submitted-co...原创 2021-10-14 16:32:03 · 219 阅读 · 0 评论 -
Supervisor(二)
2021SC@SDUSCsupervisor-data函数定义如下:supervisor-data函数返回一个包含了supervisor元数据的map对象。supervisor-data函数( defn supervisor-data [ conf shared-context ^ ISupervisor isupervisor ] ;; 保存集群配置信息 { :conf conf ;; 启动supervisor时,shared-context为nil :s原创 2021-11-04 19:23:42 · 229 阅读 · 0 评论