写点什么

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:003964
用户头像

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

关注

评论

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

面试指南 | 终于要跟大家见面了,我有点紧张。

Apache Flink

大数据 flink 流计算 实时计算

浅谈SpringCloud之服务注册中心Eureka

北漂码农有话说

聊聊苹果账号的那些事儿

不要艾特我

iphone

机会是留给不停寻找他们的人,而不是原地等待的人

非著名程序员

程序员 提升认知 机会 行动派

Clickhouse 性能测试

久吾尔岂

当我们谈到ThreadLocal的时候,我们在谈什么?

Jason

Java 多线程 ThreadLocal

一次线上服务高 CPU 占用优化实践

挖坑的张师傅

性能优化 JVM cpu

开始每周写作计划

M1racle

开源商业模式促进金融业科技生态的发展

FinClip

开源 金融科技

css常见问题总结

靖仙

CSS css3

C++线程池的实现

泰伦卢

c++ C# 线程池

各大公司面试题分类整理

是小毛吖

面试 后端

业务代码的救星——Java 对象转换框架 MapStruct 妙用

周三不加班

MapStruct 对象转换

【译】【UX】一个页面可以有多个面包屑导航吗?

Yukun

用户研究 UX 面包屑导航

写作的意义到底是什么

董一凡

写作

笔记:《如何系统思考》之如何做到系统思考

wiflish

思维方式

centos7 maven私服自动启动

kcnf

关于GDB你需要知道的技巧

泰伦卢

c c++ C#

一个平凡程序员的年度总结

小智

程序员 人生

Redis 6.0 新特性-多线程连环13问!

牧码哥

redis 多线程 io

C++定时器的实现

泰伦卢

c c++ C#

《TCP/IP详解》概述

网瘾少年SEC

TCP 网络协议 IP

从一道面试题来看计算机基础知识的重要性

周三不加班

数组 堆栈 函数栈 函数栈调用

Python3.6.1官方文档练习——初入江湖(一)

小匚

Python python3.x 入门

DDD 实践手册(4. Aggregate — 聚合)

Joshua

设计模式 领域驱动设计 架构模式

写字工具更新史

Bonaparte

学习 读书笔记

MySQL中 int(11)和 int(10) 到底有没有区别?

周三不加班

MySQL 字符宽度 数据库数据类型

金融「中台」十宗罪

FinClip

中台 企业中台 业务中台

翻译和产品本地化的区别是什么?

葛仲君

翻译 本地化 全球化 产品开发

内存对齐

泰伦卢

c c++ C#

从删库到跑路?

芦苇

产品 职业 产品经理 职业素养 职业道德

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