寫在前面的話

本人長期關(guān)注數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)相關(guān)前沿研究。歡迎和我交流。
我自己測試了一下這個版本,總的來說更加穩(wěn)定,新增的特性并沒有一一測試,僅憑kafk-client來說,是達(dá)到了生產(chǎn)環(huán)境的使用。
使用阿里云服務(wù)器的話,使用清華的節(jié)點下載是巨快的。(http://mirrors.tuna.tsinghua.edu.cn/apache/storm/apache-storm-1.1.0/apache-storm-1.1.0.tar.gz)

Storm 1.1.0 發(fā)布

Apache Storm社區(qū)很激動地宣布Storm1.1.0已經(jīng)發(fā)布,已經(jīng)可從下載頁面 獲得。
此版本代表了Apache Storm發(fā)展的一個重大里程碑,并包含大量新功能,可用性和性能改進(jìn),其中一些在下面介紹。

Streaming SQL

Storm 1.1.0支持由Apache Calcite驅(qū)動支持的原生Streaming SQL,允許用戶通過運行SQL查詢流數(shù)據(jù)或更新外部系統(tǒng)和數(shù)據(jù)存儲(如Apache Hive)。要部署基于SQL的拓?fù)?,用戶可以在文本文件中定義SQL查詢,并使用storm sql命令將生成的拓?fù)涮峤唤oStorm集群。Storm將SQL編譯成Trident拓?fù)洳⒃诩荷线\行。

Storm的SQL支持包括以下功能:

  • 外部數(shù)據(jù)源的輸入/輸出,包括Apache Kafka,HDFS,MongoDB和Redis

  • 元組過濾

  • 映射

  • 生成組件的用戶自定義平行度

  • 用戶定義函數(shù)(UDF)

  • CSV,TSV和Avro輸入/輸出格式

  • 通過ISQLTridentDataSource接口擴(kuò)展其他數(shù)據(jù)源

有關(guān)Storm SQL支持(包括示例)的更多信息,請參閱以下資源:

Apache Kafka集成改進(jìn)

除了基于Kafka簡單消費者的Kafka 0.8 / 0.9 版本的傳統(tǒng)支持外,Storm還支持包括基于新的Kafka消費者API對Kafka 0.10及更高版本。Storm與Kafka 0.10及更高版本的集成是高度靈活和可擴(kuò)展的,其中的一些功能包括:

  • 增強配置API

  • 細(xì)粒度偏移量控制(啟動時和失敗后)

  • 消費者組支持

  • 可插拔記錄翻譯器

  • 通配符主題

  • 多流支持

  • 手動分區(qū)控制

  • Kafka安全支持

有關(guān)Storm的Kafka集成的更多信息,請參閱以下文檔:

支持PMML (Predictive Model Markup Language,預(yù)測模型標(biāo)記語言)

為了更好地支持機(jī)器學(xué)習(xí)用例,Storm現(xiàn)在通過一般的PMML Bolt支持在拓?fù)渲袌?zhí)行PMML模型。PMMLPredictorBolt允許用戶指定一個模型,原始輸入以及生成的流和輸出字段。在運行時,Bolt將處理輸入的原始數(shù)據(jù),使用給定的輸入執(zhí)行模型,并輸出具有預(yù)測字段和輸出字段的分?jǐn)?shù)的元組。有關(guān)Storm的PMML支持的更多信息,請參見這里 。

Druid 集成

Druid 是一個可擴(kuò)展的,高性能的,面向列的分布式數(shù)據(jù)存儲,適用于實時分析用例。 Storm 1.1.0引入了一個Storm Bolt和Trident狀態(tài)實現(xiàn),用于將數(shù)據(jù)流傳輸?shù)紻ruid數(shù)據(jù)存儲中。Storm's Druid集成的文檔可以在這里 找到。

OpenTSDB 集成

OpenTSDB 是基于Apache HBase的高度可擴(kuò)展的時間序列數(shù)據(jù)庫。 Storm 1.1.0添加了一個Storm Bolt和Trident狀態(tài)實現(xiàn),用于將數(shù)據(jù)寫入OpenTSDB。 Storm的OpenTSDB集成為用戶提供了一個簡單的接口(ITupleOpenTsdbDatapointMapper)來執(zhí)行轉(zhuǎn)換,使用戶能夠?qū)torm元組如何映射到OpenTSDB數(shù)據(jù)結(jié)構(gòu)進(jìn)行細(xì)微的控制。可以在這里 找到關(guān)于Storm的OpenTSDB集成的信息。

支持AWS Kinesis

對于希望與亞馬遜Kinesis服務(wù)集成的用戶,Storm 1.1.0現(xiàn)在包括一個用于消費來自Kinesis的消息流的 Spout。像Storm的大部分外部系統(tǒng)集成組件一樣,Kinesis Spout提供了一個簡單的接口(RecordToTupleMapper),用于控制Kinesis消息如何轉(zhuǎn)換為Storm元組。 Kinesis spout提供了一個額外的接口(FailedMessageRetryHandler),允許用戶自定義Spout的故障處理邏輯。這里 可以找到Kinesis Spout的文檔。

支持HDFS

Storm的HDFS集成現(xiàn)在包括一個從HDFS文件系統(tǒng)連續(xù)流式傳輸數(shù)據(jù)的 Spout。Storm的HDFS端口監(jiān)視新文件的可配置目錄,并將數(shù)據(jù)反饋至拓?fù)?。?dāng)spout完成處理文件時,它將被移動到已配置的歸檔目錄。如果文件已損壞或以其他方式不可處理,相應(yīng)的文件將被移動到特定目錄。通過一個確保每個文件由單個 Spout實例“owned”的鎖定機(jī)制可以實現(xiàn) Spout的并行性。 HDFS端口支持連接到使用Kerberos身份驗證保護(hù)的HDFS實例。有關(guān)使用HDFS Spout的更多信息,請參閱Storm HDFS文檔 。

Flux改進(jìn)

Flux是一個框架和一組實用程序,允許用戶聲明性地定義Storm拓?fù)洌⒈苊庠谕負(fù)浣M件中硬編碼配置值。 Storm 1.1.0引入了對Flux框架的以下增強功能:

  • Storm UI中的Flux拓?fù)淇梢暬?/p>

  • 支持狀態(tài)Bolt和窗口

  • 支持命名流

  • 支持引用的列表

有關(guān)Flux的更多信息,請參見Flux文檔。

拓?fù)洳渴鹪鰪姽δ?/h2>

在以前的Storm版本中,通常必須將所有拓?fù)湟蕾囮P(guān)系包含在shaded的“uber jar”中,或者通過使其在Storm的類路徑上可用。在Storm 1.1.0中,storm jar命令現(xiàn)在包括在拓?fù)涮峤黄陂g上傳附加依賴項的選項。 --jars命令行選項允許用戶指定要上傳的本地jar文件。或者,storm jar命令提供了--artifacts選項,用于通過它們的Maven坐標(biāo)來指定附加的jar文件依賴關(guān)系。最后,對于Maven Central之外的Maven工件,-artifactRepository選項允許用戶指定附加的存儲庫以進(jìn)行依賴性解析。有關(guān)storm jar命令的可用選項的更多信息,請參見運行 storm help jar命令。

RAS (資源意識調(diào)度, Resource Aware Scheduler)改進(jìn)

在Storm 1.0中引入的資源感知調(diào)度程序添加了一個考慮了集群中可用的內(nèi)存(堆和堆)和CPU資源的調(diào)度程序?qū)崿F(xiàn)。在風(fēng)暴1.1.0中,RAS算法進(jìn)行了大修,大大提高了集群資源利用率,并將機(jī)架知名度引入了調(diào)度策略。有關(guān)RAS新功能的更多信息,請參見RAS文檔 和引入新的機(jī)架感知算法的JIRA故障單。

二進(jìn)制分配的重要變化

為了最小化二進(jìn)制分發(fā)的文件大小,不再包含外部組件(即“連接器”)二進(jìn)制文件和已編譯的示例。示例僅包含在源代碼中,但可以使用Maven mvn install命令輕松編譯。

外部組件移動到Maven Central

大多數(shù)外部組件現(xiàn)在僅在Maven Central中托管。外部組件目錄將包含README.md文件,但不包含jar文件。我們鼓勵用戶利用Maven風(fēng)格依賴解析(Maven,Gradle等)構(gòu)建系統(tǒng)來構(gòu)建拓?fù)鋔ar,并避免手動構(gòu)建拓?fù)洹_@些組件的Maven 路徑如下:
Group ID: org.apache.storm Artifact ID: component directory name Version: 1.1.0
對于無法使用Maven進(jìn)行構(gòu)建的用戶,可以從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