2014年11月25日,Storm发布了0.9.3的版本。Storm 0.9.3的版本修改了100个Bug,改进了与Kafka的集成,并增加了与HDFS和HBase的集成。
改进了与Kafka的集成
Apache Storm从0.9.2-incubating版本开始支持Kafka作为流数据的数据源。0.9.3的版本在此基础上进行了几项改进,包括向一个或多个Kafka集群或topic写入数据。Storm现在既可以将Kafka作为流数据的数据源,也可以将它作为流数据的目的地。这使得Storm支持Topology间通信,Topology链,基于Spout/Bolt的Topology与基于Trident数据流的集成,和与支持以Kafka作为数据源的任何外部系统的集成。Storm 0.9.3使用的Kafka的版本为 Apache Kafka 0.8.1.1.
更多信息请查看Storm与Kafka的集成文档
与HDFS的集成
很多数据流的处理实例都涉及到将处理结果存储到HDFS上,以做进一步的分析和离线处理。为了使Topology的开发者更容易地将数据写入HDFS,0.9.3的版本包含了若干个支持这种功能的Bolt和Trident state的实现。Storm 0.9.3使用的Hadoop版本为Hadoop 2.2.0.
更多信息请查看Storm与HDFS的集成文档
与HBase的集成
Storm 0.9.3与HBase的集成包含了若干个允许Topology对HBase进行实时写入与查询的组件。Storm与HBase的集成使得用户可以对HBase中的数据进行流式查询,也可以将数据流处理结果存入HBase。Storm 0.9.3使用的HBase的版本为HBase 0.98.1-hadoop2
更多信息请查看Storm与HBase的集成文档
减少了包依赖冲突
在之前版本的Storm中,用户的Topology依赖包经常与Storm使用的依赖包相冲突。Storm 0.9.3更改了多个经常导致冲突的依赖包的位置。
以下列表列出了这些依赖包的位置:
Dependency | Original Package | Storm Package |
---|---|---|
Apache Thrift | org.apache.thrift |
org.apache.thrift7 |
Netty | org.jboss.netty |
org.apache.storm.netty |
Google Guava | com.google.common |
org.apache.storm.guava |
com.google.thirdparty |
org.apache.storm.guava.thirdparty |
|
Apache HTTPClient | org.apache.http |
org.apache.storm.http |
Apache ZooKeeper | org.apache.zookeeper |
org.apache.storm.zookeeper |
Apache Curator | org.apache.curator |
org.apache.storm.curator |
改进了支持多语言特性
Storm 0.9.3包含一个新的Node.js多语言实现,允许开发人员使用JavaScript编写spouts和bolts。此外,多语言协议的健壮性和错误处理能力也得到了很大的提升。这也导致多语言API发生了向后不兼容的变化。因此,在升级之前,使用了多语言拓扑的用户应查看Python、Ruby和JavaScript的多语言示例以确定其影响。
更全面的信息请查看Storm 0.9.3的变更日志