写点什么

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

  • 2016-04-17
  • 本文字数:968 字

    阅读完需:约 3 分钟

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 Flink Apache 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

2016-04-17 19:004461
用户头像

发布了 1008 篇内容, 共 448.8 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

数据去哪了?:从一次生产事故聊聊并发编程原子性问题

海拉鲁

Java 并发编程 多线程

看东鹏饮料如何从150亿条数据中洞察先机 | 精选案例

亚马逊云科技 (Amazon Web Services)

ETHAT云矿机系统开发案例丨ETHAT云矿机开发源码

系统开发咨询1357O98O718

如何革命社交媒体、实现去中心化?丝绸之路创始人在狱中提出了构想

CECBC

社交网络

ProxmoxVE系列:上传系统镜像&&创建虚拟机

Bob

虚拟机 proxmoxve PVE

ProxmoxVE 系列:如何巧妙的用Xshell连接Ubuntu server服务主机

Bob

虚拟机 系统 proxmoxve PVE

Java泛型最全指南

xcbeyond

Java 泛型 3月日更

学习方法记录

风翱

学习方法 3月日更

本科毕业,六年Java开发经验,阿里技术三面+HR面,拿下38*16薪资P7offer

Java架构之路

Java 程序员 架构 面试 编程语言

寻找被遗忘的勇气(二十四)

Changing Lin

3月日更

[译]用@WebMvcTest测试MVC Web Contorller

麦芽面包

spring unittest

区块链技术在医疗保健领域的应用展望

CECBC

医疗

C++ socket通讯详解及注意事项

赖猫

c++ 后台开发 后端 服务器开发

深圳正探索利用区块链技术理念打造“数字政府“

CECBC

大数据

C++ 中的 task based 并发

赖猫

c++ 后端 多线程 并发 服务器开发

数据结构队列

我是程序员小贱

3月日更

员工离职的注意事项

石云升

离职 28天写作 职场经验 3月日更

在全面拥抱人工智能前,这 6 步您的公司做到了吗?| 云途专栏

亚马逊云科技 (Amazon Web Services)

亚马逊云科技和德甲为 2021 赛季新推出三项赛况统计数据,强化实时比赛分析

亚马逊云科技 (Amazon Web Services)

ProxmoxVE系列:Ubuntu服务器版系统安装

Bob

虚拟机 系统 proxmoxve PVE

智能时代与华为路标:手机影像的文艺复兴史

脑极体

镜像仓库学习笔记

lenka

3月日更

c++11&14-智能指针

赖猫

c++ 后端

多线程-基础

九洲城豪横团团长

第十二周作业

Geek_mewu4t

Wireshark数据包分析学习笔记Day21

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

NoCode 实战 | 零代码应用开发,轻松搞定任务跟踪管理难题(上)

亚马逊云科技 (Amazon Web Services)

能助我拿3家大厂offer的神级Java面试宝典,你值得拥有

Java架构之路

Java 程序员 架构 面试 编程语言

如何定义错误码

编号94530

Java 错误码 错误处理

Redis - 缓存穿透、缓存击穿、缓存雪崩

insight

redis 3月日更

用 Redis 实现消息队列是一个好主意么?

escray

redis 学习 极客时间 3月日更 Redis 核心技术与实战

Apache Storm 1.0发布,带来性能提升和许多新特性_语言 & 开发_Sergio De Simone_InfoQ精选文章