跟我学习Storm_Storm简介

  Storm是由专业数据分析公司BackType开发的一个分布式实时数据处理软件,可以简单、高效、可靠地处理大量的数据流。Twitter在2011年7月收购该公司,并于2011年9月底正式将Storm项目开源。Storm被托管在GitHub上,目前最新版本是0.9.0.1。软件核心部分使用Clojure开发,外围部分使用Java开发。Clojure(发音同closure)是Lisp语言的一种现代方言。类似于Lisp,Clojure支持一种功能性编程风格,但Clojure还引入了一些特性来简化多线程编程(一种对创建Storm很有用的特性)。

  Twitter列举了Storm的三大类应用:

  • 信息流处理(Stream Processing

    Storm可用来实时处理新数据更新数据库,兼具容错性可扩展性

  • 连续计算(Continuous Computation

     Storm可进行连续查询并把结果即时反馈给客户端。比如把Twitter上的热门话题发送到浏览器中。

  • 分布式远程程序调用(Distributed RPC

    Storm可用来并行处理密集查询。Storm的拓扑结构是一个等待调用信息分布函数,当它收到一条信息后,会对查询进行计算,并返回查询结果。举个例子Distributed RPC可以做并行搜索或者处理大集合的数据。

       Storm的主工程师Nathan Marz表示:Storm可以方便地在一个计算机集群中编写与可扩展的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。

       当然Storm也存在一些缺点:开源版的Storm有个最大的缺点,就是只支持单Nimbus节点,一旦Nimbus节点挂掉就只能重启,存在单点失效的问题;Clojure是一个在JVM上运行的动态函数式编程语言,优势在于流程计算,Storm的核心部分由Clojure编写,虽然性能上提高不少但同时也提高了维护成本。

你可能感兴趣的:(跟我学习Storm_Storm简介)