Apache Storm 1.1.0 发布概览
写在前面的话
本人长期关注数据挖掘与机器学习相关前沿研究。欢迎和我交流,私人微信:846731084
我自己测试了一下这个版本,总的来说更加稳定,新增的特性并没有一一测试,仅凭kafk-client来说,是达到了生产环境的使用。
使用阿里云服务器的话,使用清华的节点下载是巨快的。(http://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz)
Storm 1.1.0 发布
Apache Storm社区很激动地宣布Storm1.1.0已经发布,已经可从下载页面 获得。
此版本代表了Apache Storm发展的一个重大里程碑,并包含大量新功能,可用性和性能改进,其中一些在下面介绍。
Streaming SQL
Storm 1.1.0支持由Apache Calcite驱动支持的原生Streaming SQL,允许用户通过运行SQL查询流数据或更新外部系统和数据存储(如Apache Hive)。要部署基于SQL的拓扑,用户可以在文本文件中定义SQL查询,并使用storm sql命令将生成的拓扑提交给Storm集群。Storm将SQL编译成Trident拓扑并在集群上运行。
Storm的SQL支持包括以下功能:
- 外部数据源的输入/输出,包括Apache Kafka,HDFS,MongoDB和Redis
- 元组过滤
- 映射
- 生成组件的用户自定义平行度
- 用户定义函数(UDF)
- CSV,TSV和Avro输入/输出格式
- 通过
ISQLTridentDataSource接口扩展其他数据源
有关Storm SQL支持(包括示例)的更多信息,请参阅以下资源:
Apache Kafka集成改进
除了基于Kafka简单消费者的Kafka 0.8 / 0.9 版本的传统支持外,Storm还支持包括基于新的Kafka消费者API对Kafka 0.10及更高版本。Storm与Kafka 0.10及更高版本的集成是高度灵活和可扩展的,其中的一些功能包括:
- 增强配置API
- 细粒度偏移量控制(启动时和失败后)
- 消费者组支持
- 可插拔记录翻译器
- 通配符主题
- 多流支持
- 手动分区控制
- Kafka安全支持
有关Storm的Kafka集成的更多信息,请参阅以下文档:
支持PMML (Predictive Model Markup Language,预测模型标记语言)
为了更好地支持机器学习用例,Storm现在通过一般的PMML Bolt支持在拓扑中执行PMML模型。PMMLPredictorBolt允许用户指定一个模型,原始输入以及生成的流和输出字段。在运行时,Bolt将处理输入的原始数据,使用给定的输入执行模型,并输出具有预测字段和输出字段的分数的元组。有关Storm的PMML支持的更多信息,请参见这里 。
Druid 集成
Druid 是一个可扩展的,高性能的,面向列的分布式数据存储,适用于实时分析用例。 Storm 1.1.0引入了一个Storm Bolt和Trident状态实现,用于将数据流传输到Druid数据存储中。Storm's Druid集成的文档可以在这里 找到。
OpenTSDB 集成
OpenTSDB 是基于Apache HBase的高度可扩展的时间序列数据库。 Storm 1.1.0添加了一个Storm Bolt和Trident状态实现,用于将数据写入OpenTSDB。 Storm的OpenTSDB集成为用户提供了一个简单的接口(ITupleOpenTsdbDatapointMapper)来执行转换,使用户能够对Storm元组如何映射到OpenTSDB数据结构进行细微的控制。可以在这里 找到关于Storm的OpenTSDB集成的信息。
支持AWS Kinesis
对于希望与亚马逊Kinesis服务集成的用户,Storm 1.1.0现在包括一个用于消费来自Kinesis的消息流的 Spout。像Storm的大部分外部系统集成组件一样,Kinesis Spout提供了一个简单的接口(RecordToTupleMapper),用于控制Kinesis消息如何转换为Storm元组。 Kinesis spout提供了一个额外的接口(FailedMessageRetryHandler),允许用户自定义Spout的故障处理逻辑。这里 可以找到Kinesis Spout的文档。
支持HDFS
Storm的HDFS集成现在包括一个从HDFS文件系统连续流式传输数据的 Spout。Storm的HDFS端口监视新文件的可配置目录,并将数据反馈至拓扑。当spout完成处理文件时,它将被移动到已配置的归档目录。如果文件已损坏或以其他方式不可处理,相应的文件将被移动到特定目录。通过一个确保每个文件由单个 Spout实例“owned”的锁定机制可以实现 Spout的并行性。 HDFS端口支持连接到使用Kerberos身份验证保护的HDFS实例。有关使用HDFS Spout的更多信息,请参阅Storm HDFS文档 。
Flux改进
Flux是一个框架和一组实用程序,允许用户声明性地定义Storm拓扑,并避免在拓扑组件中硬编码配置值。 Storm 1.1.0引入了对Flux框架的以下增强功能:
- Storm UI中的Flux拓扑可视化
- 支持状态Bolt和窗口
- 支持命名流
- 支持引用的列表
有关Flux的更多信息,请参见Flux文档。
拓扑部署增强功能
在以前的Storm版本中,通常必须将所有拓扑依赖关系包含在shaded的“uber jar”中,或者通过使其在Storm的类路径上可用。在Storm 1.1.0中,storm jar命令现在包括在拓扑提交期间上传附加依赖项的选项。 --jars命令行选项允许用户指定要上传的本地jar文件。或者,storm jar命令提供了--artifacts选项,用于通过它们的Maven坐标来指定附加的jar文件依赖关系。最后,对于Maven Central之外的Maven工件,-artifactRepository选项允许用户指定附加的存储库以进行依赖性解析。有关storm jar命令的可用选项的更多信息,请参见运行 storm help jar命令。
RAS (资源意识调度, Resource Aware Scheduler)改进
在Storm 1.0中引入的资源感知调度程序添加了一个考虑了集群中可用的内存(堆和堆)和CPU资源的调度程序实现。在风暴1.1.0中,RAS算法进行了大修,大大提高了集群资源利用率,并将机架知名度引入了调度策略。有关RAS新功能的更多信息,请参见RAS文档 和引入新的机架感知算法的JIRA故障单。
二进制分配的重要变化
为了最小化二进制分发的文件大小,不再包含外部组件(即“连接器”)二进制文件和已编译的示例。示例仅包含在源代码中,但可以使用Maven mvn install命令轻松编译。
外部组件移动到Maven Central
大多数外部组件现在仅在Maven Central中托管。外部组件目录将包含README.md文件,但不包含jar文件。我们鼓励用户利用Maven风格依赖解析(Maven,Gradle等)构建系统来构建拓扑jar,并避免手动构建拓扑。这些组件的Maven 路径如下:
Group ID: org.apache.storm Artifact ID: component directory name Version: 1.1.0
对于无法使用Maven进行构建的用户,可以从Maven Central下载以下URL模式的外部组件jar文件:
http://repo1.maven.org/maven2/org/apache/storm/${artifactID}/${version}/${artifactId}-${version}.jar
例如,要下载storm-kafka-client jar文件,URL将是:
http://repo1.maven.org/maven2/org/apache/storm/storm-kafka-client/1.1.0/storm-kafka-client-1.1.0.jar
原文地址
http://storm.apache.org/2017/03/29/storm110-released.html
Apache Storm 1.1.0 发布概览的更多相关文章
- Apache Flume 1.7.0 发布,日志服务器
Apache Flume 1.7.0 发布了,Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 本次更 ...
- Visual Studio的 Apache Cordova 插件CTP3.0发布!
北京时间12号晚23点开始的Connect()活动上,微软发布了一系列激动人心的消息! .NET开源了!以后.NET将可在Linux和Mac OS平台上运行! VS免费了!!如果你是学生,个人开发者, ...
- Apache Flume 1.6.0 发布,日志服务器
Apache Flume 1.6.0 发布,此版本现已提供下载: http://flume.apache.org/download.html 更新日志和文档: http://flume.apache. ...
- Apache Storm 1.1.0 中文文档 | ApacheCN
前言 Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ...
- 当Atlas遇见Flink——Apache Atlas 2.2.0发布!
距离上次atlas发布新版本已经有一年的时间了,但是这一年元数据管理平台的发展一直没有停止.Datahub,Amundsen等等,都在不断的更新着自己的版本.但是似乎Atlas在元数据管理,数据血缘领 ...
- 实时流式计算框架Storm 0.9.0发布通知(中文版)
Storm0.9.0发布通知中文翻译版(2013/12/10 by 富士通邵贤军 有错误一定告诉我 shaoxianjun@hotmail.com^_^) 我们很高兴宣布Storm 0.9.0已经成功 ...
- Apache Qpid Python 1.35.0 发布
Apache Qpid Python 1.35.0 发布了,Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议.提 ...
- Apache SeaTunnel (Incubating) 2.1.0 发布,内核重构、全面支持 Flink
2021 年 12 月 9 日,SeaTunnel (原名 Waterdrop) 成功加入 Apache 孵化器,进入孵化器后,SeaTunnel 社区花费了大量时间来梳理整个项目的外部依赖以确保整个 ...
- java.lang.ClassNotFoundException: org.apache.storm.topology.IRichSpout
java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout at java.lang.Class.getDeclaredM ...
随机推荐
- java udp socket(双通信)
参考博客:http://blog.csdn.net/wintys/article/details/3525643/,非常感谢 实现功能:客户端发送字符串A ->服务端接收并显示在控制台 ...
- 转:JSP 分页显示数据 (Oracle)
JSP 分页显示数据 (Oracle) 标签: Oracle分页JSP分页 2013-11-19 20:40 3598人阅读 评论(1) 收藏 举报 分类: Web(11) 版权声明:本文为博主原 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(82)-Easyui Datagrid批量操作(编辑,删除,添加)
前言 有时候我们的后台系统表单比较复杂,做过进销存或者一些销售订单的都应该有过感觉 虽然Easyui Datagrid提供了行内编辑,但是不够灵活,但是我们稍微修改一下来达到批量编辑,批量删除,批量添 ...
- 总结ASP.NET MVC Web Application中将数据显示到View中的几种方式
当我们用ASP.NET MVC开发Web应用程序的时候,我们都是将需要呈现的数据通过"Controllers"传输到"View"当中,怎么去实现,下面我介绍一下 ...
- Visual Studio Code 中编写 C++ 的工作流
1. 官网下载 Visual Studio Code ,安装.按提示安装 cpp 插件和 cmake 插件. 官网下载 CMake ,安装. 官网下载 Mingw ,安装. 安装 Mingw 时,注意 ...
- 微信小程序,超能装的实例教程
序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...
- php投票练习
一.题目要求:建立如下两个数据库,实现投票和%的统计结果: 二.具体编写方法: (1).建立数据库: 里面的蓝色背景的表格名称就是我们所需的表格! 表格内容如下: 表名:diaoyantimu 表名: ...
- p1217晚餐(简单的dijkstra)
题目: 输入: 1000 5 61 2 3002 4 2003 4 6003 4 8005 3 1002 5 650 输出: 4 这道题呢,其实就是用邻接矩阵将每条边耗费的体力存起来,然后用dijks ...
- js中字符串转换为数值的两种方法的区别
在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt() //将字符串转换为整型 parseFloat() //将字符串转换为浮点型 转换函数在 ...
- 版本控制器——Egit使用方法
什么是Git Gitv是目前世界上最先进的分布式版本控制系统. 那我们为什么需要学习Git呢?因为在我们传统的java自学中,所有的项目都是自己独立开发完成,而且项目基本都是小型项目,在优化和体验上往 ...