Apache Storm 1.1.0 發布概覽


寫在前面的話

本人長期關注數據挖掘與機器學習相關前沿研究。歡迎和我交流。
我自己測試了一下這個版本,總的來說更加穩定,新增的特性並沒有一一測試,僅憑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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM