BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Apache Storm 1.0发布,带来性能提升和许多新特性

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 谢丽 关注 11 他的粉丝 发布于 2016年4月18日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

1.0版本是Apache Storm发展过程中一座重要的里程牌,负责Apache Storm项目的Apache软件基金会副总裁P. Taylor Goetz这样写道。该版本包含许多新特性和改进。尤其是,Goetz声称它带来了3到16倍的性能提升。

Storm是一个事件处理程序,可以对流数据进行分布式处理。一个Storm应用程序由“spouts”和“bolts”构成,它们被配置成一个有向无环图,用来表示信息源和数据处理程序。Storm的主要特点是能处理实时数据,不像Hadoop那样允许批处理。

据Goetz介绍,与先前的版本相比,Storm 1.0的性能最高提升了16倍,在大多数情况下预计都会有3倍的性能提升。特别地,性能的重大改善似乎来自下面的更改:

  • SpoutOutputCollector.emit()调用中使用Java重新实现了Clojure reduce函数;
  • DisruptorQueue引入批处理,代替spout层的批处理,这以增加延迟为代价大幅提升了吞吐量。

特别地,雅虎工程师所做的大量的基准测试表明,与其他两个流行的分布式处理框架Apache FlinkApache Spark相比,性能历来是Storm的主要竞争优势之一。

此外,Storm 1.0包含许多值得注意的新特性,例如:

  • Pacemaker:一个处理工作进程心跳的心跳守护进程,它常驻内存,提供了比ZooKeeper更好的性能;
  • 分布式缓存及相关API:它允许在拓扑之间共享文件。文件可以随时更新,而不需要重新部署受影响的拓扑。这对于当前将资源文件包含在拓扑jar包中的做法是一种改进,这种做法更新文件时需要重新部署;
  • 高可用Nimbus:使用一个Nimbus节点的动态集群代替单个Nimbus实例,如果当前的群首节点出现故障,就会选出新的“群首”;
  • 流窗口API:新增窗口定义支持,这些窗口可以应用于数据处理,比如在最后一个小时里计算最热门的话题。以前,开发人员必须构建自己的窗口逻辑;
  • 自动反压:当任务缓冲区的大小达到了指定的限制(以百分比表示),Storm就会自动降低拓扑spouts的速度;
  • 资源感知调度器:一种新的调度器实现,在将任务分配给最能满足特定需求的工作进程时考虑了集群中可用的内存和CPU资源;
  • 动态工作进程性能分析:旨在让用户可以从Storm UI获取工作进程性能数据,比如堆转储文件、JStack输出。

读者可以从GitHub上下载Apache Storm 1.0,或者从Storm下载页面上获取各种打包格式。

查看英文原文:Apache Storm Reaches 1.0, Brings Improved Performance, Many New Features

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT