现在是BigData大数据的时代,最近几年最火的是当然属于Hadoop平台了,但是Hadoop虽然说比较好用,但是他的延时性,比较差的实时计算能力被人们所诟病。所以一个比较强大的分布式实时计算平台应用而生,他的名字叫Storm。
要说Storm的起源,得先说说一个很有名的社交网站--TWitter。因为Storm是Twitter公司在2011年正式开源出去的,也就是说,在2011年之前,还没有人知道Storm是干嘛用的呢。Twitter公司在2011年的7月收购了BackType公司,Storm就是由BackType公司开发的实时处理系统。Storm的出现帮助Twitter解决了实时海量大数据处理的问题。自此之后,Storm被很多大型互联网公司所采用,阿里巴巴还以此为基础,开发了适合于自己平台的JStorm的架构。
Storm集成了许多消息队列和数据库的技术,主要的开发语言为java和Clojure,其中java定义骨架,定义了几个主要的抽象类,Clojure实现里面主要的逻辑。Storm有一点比较好,他是基于Thirft架构的,支持多语言的开发,与编程语言无关的。下面展示一下Storm的核心即使和组成部分:
具体每个模块什么作用,在后期可以自行学习。Storm作为一个横空出世的平台,和Hadoop有什么区别呢
1.更适用于实时数据处理
2.一直运行,不会停止,除非用户主动退出,他会持续的运作下去。Hadoop更多的是像是一种批处理。
3.可用各种编程语言。
4.部署和操作简单,都是用ZooKeeper进行协调服务的。
Storm目前的应用方向:
(1).流处理(Stream Processing),Storm 可以用来对源源不断流进来的消息
(2).连续计算(Continuous Computation),因为Storm能保证计算可以永远运行,直到用户结束计算线程为止
(3).分布式RPC(DRPC)。由于Storm的处理组件是分布式的,而且处理延时极低,所以可以作为分布式RPC框架使用。
Storm的开源代码已经托管在gitHub上了,作为开源项目,拿来学习当然是非常好的资料了啊。