摘要: 或许谈起storm是大数据实时计算框架已经让你不明觉厉,如果说storm还可以跟机器学习算法(ml)有机的结合在一起,是不是更加觉着高大尚呢。trident-ml就是一个这样让人无限遐想的产品。 阅读全文
posted @ 2014-02-14 20:54 徽沪一郎 阅读(1505) 评论(0) 推荐(0) 编辑
摘要: storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街。如果能将storm引入到hadoop中,对存储于hdfs的数据进行分析必然极大的提高处理性能。storm-yarn就是这样一个项目,由yahoo实现,目前已经开源。 阅读全文
posted @ 2014-02-12 16:51 徽沪一郎 阅读(2008) 评论(5) 推荐(0) 编辑
摘要: 从用户层面来看TridentTopology,有两个重要的概念一是Stream,另一个是作用于Stream上的各种Operation。在实现层面来看,无论是stream,还是后续的operation都会转变成为各个Node,这些Node之间的关系通过重要的数据结构图来维护。具体到TridentTopology,实现图的各种操作的组件是jgrapht。 说到图,两个基本的概念会闪现出来,一是结点,二是描述结点之间关系的边。要想很好的理解TridentTopology就需要紧盯图中结点和边的变化。 TridentTopology在转换成为普通的StormTopology时,需要将原始的图分成各个group,每个group将运行于一个独立的bolt中。TridentTopology又是如何知道哪些node应该在同一个group,哪些应该处在另一个group中的呢;如何来确定每个group的并发度(parallismHint)的呢。这些问题的解决都与jgrapht分不开。 阅读全文
posted @ 2014-02-09 14:03 徽沪一郎 阅读(2179) 评论(0) 推荐(3) 编辑
摘要: 介绍TridentTopology的使用,重点分析newDRPCStream和stateQuery的实现机理。 使用TridentTopology进行数据处理的时候,经常会使用State来保存一些状态,这些保存起来的State通过stateQuery来进行查询。问题恰恰在这里产生,即对state进行更新的Stream和尔后进行stateQuery的Stream并非同一个,那么它们之间是如何关联起来的呢。 在TridentTopology中,有一些Processor可能会同处于一个Bolt中,这些Processor形成一个processing chain, 那么Tuple又是如何在这些Processor之间进行传递的呢。 阅读全文
posted @ 2014-01-25 20:45 徽沪一郎 阅读(3643) 评论(0) 推荐(0) 编辑
摘要: 本文通过BasicDRPCTopology的实例来分析DRPCTopology在提交的时候, Topology中究竟含有哪些内容? 阅读全文
posted @ 2014-01-09 15:57 徽沪一郎 阅读(1447) 评论(0) 推荐(0) 编辑
摘要: “源码走读系列”从代码层面分析了storm的具体实现,接下来通过具体的实例来说明storm的使用。因为目前storm已经正式迁移到Apache,文章系列也由twitter storm转为apache storm. WordCountTopology 使用storm来统计文件中的每个单词的出现次数。 阅读全文
posted @ 2014-01-05 21:16 徽沪一郎 阅读(3520) 评论(1) 推荐(0) 编辑
摘要: 本文详细分析TridentTopology的可靠性实现, TridentTopology通过transactional spout与transactional state相结合,能够做到tuple“只被处理一次,不多也不少”。也就是做到事务性处理exactly-once,要么成功,要么失败。 而一般的storm topology是无法保证eactly-once的处理的,它们要么是at-least-once(至少被处理一次,有可能被处理多次);要么是at-most-once(最多被处理一次,这样就存在遗漏的可能). TridentTopology在设计中借鉴和保留了目前已经过期的transactional topology的设计思想。 阅读全文
posted @ 2014-01-03 12:13 徽沪一郎 阅读(2342) 评论(1) 推荐(0) 编辑
摘要: TridentTopology是storm提供的高层使用接口,常见的一些SQL中的操作在tridenttopology提供的api中都有类似的影射。关于TridentTopology的使用及运行原理,当前进行详细分析的文章不多。 从TridentTopology到vanilla topology(普通的topology)由三个层次组成: 面向最终用户的概念stream, operation 利用planner将tridenttopology转换成vanilla topology 执行vanilla topology 本文尝试TridentTopology是如何先一步步转换成普通的storm Topology(即vanila topology), 转换后的topology的执行中有哪些区别? 阅读全文
posted @ 2013-12-26 09:30 徽沪一郎 阅读(2911) 评论(0) 推荐(1) 编辑
摘要: 本文从外部消息在worker进程内部的转化,传递及处理过程入手,一步步分析在worker-data中的数据项存在的原因和意义。试图从代码实现的角度来回答,如果是从头开始实现worker的话,该如何来定义消息接口,如何实现各自接口上的消息处理。 阅读全文
posted @ 2013-12-17 11:33 徽沪一郎 阅读(2206) 评论(0) 推荐(1) 编辑
摘要: 本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程。 阅读全文
posted @ 2013-12-11 16:50 徽沪一郎 阅读(1706) 评论(1) 推荐(1) 编辑