storm开源介绍

来源:互联网 发布:python sin函数图像 编辑:程序博客网 时间:2024/04/27 07:35
摘要:开源一年多来,Storm获得了众多公司的青睐。这首先要感谢Twitter的开放环境,BackType被Twitter收购后依然保持技术团队的完整,Nathan Marz得以继续专注Storm。同时,来自阿里巴巴的徐明明成为了Storm的核心贡献者,他向CSDN分享了自己的成长经历以及对开源软件未来发展的看法。

【CSDN报道】Storm的创始人Nathan Marz是BackType的技术团队主管,一年前BackType被Twitter收至麾下。值得欣慰的是,Nathan Marz的团队得以保留,这让Storm的生命力借助Twitter的影响力传播。收购后没过多久,Storm对外开源,许多互联网公司纷纷采纳这一系统。Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。

图:Storm的分流机制

时值Storm开源一周年,Nathan Marz在其博客总结了这一年取得的成绩。Nathan Marz在博客中写道:Storm开源已经一年有余,在过去的一年中有许多令人兴奋的事情发生,总结如下。

  • 27个公司宣布正在产品中使用Storm。我知道还有一些公司使用Storm,但还没来得及宣布。
  • O'Reilly出版了一本Storm的图书
  • Storm的邮件列表已有1300多个成员,每月超过500条信息。
  • Twitter @stormprocessor上的粉丝超过1200个。
  • GitHub上超过4000个项目负责人。
  • 在旧金山,超过230名会员定期参加讨论活动。在过去一年,我还看到在世界各地有各种各样的针对Storm的讨论活动。
  • 全球共有29名代码贡献者。
  • 我们推出了Trident,一个高级抽象实时计算系统,这是实时计算领域的巨大跨越。
  • Storm集成了许多库,支持包括Kestrel、Kafka、JMS、Cassandra、Memcached以及更多系统。随着支持的库越来越多,Storm更容易与现有的系统协作。
  • Storm的性能提升超过10倍。我在Twitter内部集群测试,单节点每秒完成100万条信息。

我听到的来自用户的反馈是压倒性的好,因为Storm简单易懂、灵活、健壮。这些特性一直被设计成Storm的核心目标,我非常高兴看到我们做的非常成功。

未来一年我们有一系列令人兴奋的计划。我们正在开发一项监测功能,用于观察你的拓扑网络中的实时状态。我们还有一项庞大的计划,用于提高Trident的性能,集成更多的数据存储输入源。

谈到Storm,必须提到来自中国阿里巴巴的核心贡献者徐明明,CSDN对徐明明进行了邮件采访,涉及成长经历、职业规划、国内外开源软件的发展等等。徐明明表示,自己非常积极参与到开源社区的工作,能接触到许多在工作当中无法接触的领域和技术,对自己能力提升帮助很大。

图:徐明明

徐明明还建议程序员多阅读技术大牛的博客,学习他们如何学习新技术、找准自己的定位,不要“今天Hadoop,明天HBase,什么都学了,什么也不会。”采访整理如下:

CSDN:做些自我介绍吧,工作经历等等。

徐明明:我07年毕业,一直从事互联网方面的工作,目前在阿里巴巴做交易相关的一些开发工作,去年Storm开源的时候正好在做数据统计相关的项目,于是就开始关注了。

CSDN:为社区做贡献,是否会影响到在阿里的工作?

徐明明:当然不会。为社区做的事情都是工作之余的时间做的,有时间就做点,没时间就不做。参加一些开源项目能够接触到一些你在平常工作中很难接触到的一些领域、技术,对自己能力的提升将来也能用到公司的项目中去,我觉得程序员都应该参加一些开源项目。

CSDN:成为了Storm的核心贡献者,给你带来了哪些变化?

徐明明:微博粉丝多了,哈哈。请教问题、一起探讨Storm问题的同学多了。

CSDN:说说你的成长经历,哪些人、书籍,或者其它什么对你影响很大,让你成为一名程序员?

徐明明:科班出身,糊里糊涂就进了这一行,不过还好,还挺喜欢这一行的。对我入行之后有影响的东西倒是有一些。推荐程序员们都去看看那些大牛的博客,不过我指的不是他们写的什么技术原理之类的文章,而是看他们一些做事的方法,一些经历。比如Storm作者Nathan Marz的博客,他在博客里面讨论过比如“为什么程序员要坚持写博客,即使没有读者”,“为什么IT公司都应该鼓励开源”,“为什么技术人员要树立自己的品牌”等等,很有价值。

CSDN:如何成为一名优秀的程序员?

徐明明:我不是什么优秀的程序员。这里说点自己的心得体会吧,我比较相信“术业有专攻”这句话,每个程序员可以找找自己特别感兴趣的一个领域钻进去,而不要跟风去看各种“新技术”。今天Hadoop,明天HBase,后天MongoDB。每个都懂一点,每个都不懂。我觉得跟公司一样,每个程序员应该有自己的品牌,特别是现在有个叫做GitHub这种好东西的时代,与其在面试的时候跟别人吹得天花乱坠,不如打开GitHub给他看看你都做过什么。

CSDN:说说为什么采用Storm。

徐明明:我自己工作中还真的没有用到Storm,这一点比较遗憾,我应该属于Storm的学术型使用者吧。

CSDN:Trident未来将进行升级,说说那些令人兴奋的功能吧。

徐明明:Storm近期比较值得期待的几个新功能有:

1) 新的数据统计/监控系统

现在的监控系统比较简单,也不支持用户自定义的一些数据的统计。新的监控系统将会支持用户自定义的统计,使得我们能更了解我们的topology。

2) 类加载隔离

现在Storm的依赖跟用户的topology的依赖是完全混在一起的,比如Storm依赖log4j,你的topology也依赖log4j,那么你们只能依赖一样的版本了。这个问题将会很快解决,使得Storm的依赖跟用户的依赖完全隔离。

3) Platform Jar

Platform Jar也是比较有意思的一个新特性,现在如果你的topology有依赖的jar包(肯定会有的), 现在推荐的做法是把所有的依赖jar包打进一个大jar包(uberjar), 如果依赖比较多,每次提交的时候要传输的东西会很多,而且这个jar包要copy到整个集群。Platform Jar是你可以上传一些Jar包到系统,之后你只要在你的topology里面声明你依赖某个platform jar, Storm会自动把这个Jar包添加到你的classpath,避免了不必要的网络传输。

CSDN:对未来有怎么样的职业规划吗?

徐明明:希望能在实时计算领域有所作为吧。

CSDN:未来开源软件在全球和中国的发展,你很乐观吗?

徐明明:开源软件在中国肯定是前途一片美好啊。现在很多公司已经都把自己公司内部一些比较成熟的软件框架开源出来,比如阿里系的服务框架Dubbo, 数据库连接池Druid,最快的JSON库FastJSON等等。大家参与开源的积极性都很高了,不像过去都把自己的代码当成公司的绝密。不过现在中国的开源也确实有一些问题,跟国外不一样的一点是国外是一个好东西出来之后,大家一起用,一起贡献结果这个东西越来越好;国内则是各家都搞自己的一套,即使别的公司已经开源了,还是要自己搞,虽然最后搞出来的东西都差不多。总体来说我是看好开源在中国的发展的。

CSDN:一般通过什么方式和同行交流?邮件列表、社区、线下活动等等。对国内技术社区的发展有什么建议?

徐明明:主要就是邮件列表和IRC channel,这两个应该属于开源项目的标配了。感觉国内技术圈子跟国外相比有很大的一个缺点是,在国外的邮件列表或者IRC Channel里面问问题,几乎都会有一些“热心”的人帮你解答;而国内则基本上是围观的比较多,发言很少,除非是自己有问题出来冒个泡;而且国内的同学们对于初学者的问题也很没耐心,经常看到这样的回复:“这么简单问题都问,自己好好看看书先”,“你Google一下不就知道了”。感觉在这一点上要多跟国外学习。

Storm应用案例

Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等等。更多实际案例请访问这里。

Nathan Marz自述

图:Nathan Marz

我叫Nathan Marz,BackType的主力工程师,BackType于2011年7月被Twitter收购。收购后,我依然带领我的团队。过去很长时间我热衷于研 究Java、Ruby、Python,现在则使用Clojure。Clojure非常有趣,它给我们带来了巨大的效能。

我坚信开源的力量,并发表了一些开源项目。Cascalog是用于MapReduce的高度抽象的库,用Clojure编写,拥有活跃的用户社区,并有大量企业使用。Storm用十分流行的Java、Scala或Clojure语言编写。你可以在这里看到我的更多的开源工作。

我正在写一本书《Big Data》:可扩展的实时数据系统的原则与实践。在这里可以看到预览。

关于Storm的更多信息

Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。

Storm集成了队列和数据库技术。Storm拓扑网络通过综合的方法,将数据流在每个数据平台间进行重新分配。(文/包研)