Apache Storm 概述:什麼是、架構和使用理由

已發表: 2020-03-23

數據無處不在,隨著數字化程度的提高,數據管理和處理每天都面臨著新的挑戰。

訪問實時數據似乎只是一個“必備”功能,但對於在數字領域進行大量投資的組織來說,這幾乎是必要的。

目錄

哪些行業領導者正在使用 Apache Storm?

通常,在給定時間未分析的數據可能很快就會成為公司的多餘數據。 分析數據以找到對公司有利的模式是一項要求。 模式不需要經過長時間的推演; 應該只提取指示實時、當前趨勢的相關數據。

考慮到分析實時數據的需求和回報,組織提出了各種分析工具。 一種這樣的工具是 Apache Storm。

什麼是阿帕奇風暴?

由 Twitter 發布的 Apache Storm 是一個分佈式開源網絡,可以處理來自各種來源的大量數據。 該工具對其進行分析並將結果更新到 UI 或任何其他指定目標,而不存儲任何數據。 閱讀有關 Apache Storm 的更多信息。

Apache Storm 對無界數據塊進行實時處理,類似於 Hadoop 處理數據批處理的模式。

它最初由社交分析公司 Black Type 的 Nathan Marz 創建,後來被 Twitter 收購併開源。 它用 Java 和 Clojure 編寫,仍然是業界實時數據處理的標準。

阿帕奇風暴架構

1. Nimbus(主節點)

Nimbus 是一個守護進程,即在後台運行的程序,不受交互式用戶的控制。 它為 Apache Storm 運行,類似於 Hadoop 中 Job tracker 的工作方式。 它的功能要求它為機器分配代碼和任務,甚至監控它們的性能。

2.主管服務(工作節點)

Storm 中的工作節點運行一個名為 Supervisor 的服務。 這些節點負責接收 Nimbus 分配給這些機器的工作。 除了處理 Nimbus 分配的所有工作外,它還根據需要啟動或停止該過程。

主管的這些過程中的每一個都有助於執行過程的一部分以完成拓撲。

3. 拓撲

Storm Topology 是一個由 spout 和 bolts 組成的網絡。 系統中的每個節點都存在以處理邏輯和鏈接,並展示數據將通過的路徑。

每當向 Storm 提交拓撲時,Nimbus 都會向 Supervisor 諮詢工作節點。

4.流

流是一系列以並行分佈式方式創建和處理的元組。 但什麼是元組? 它們是 Storm 中的主要數據結構。 它們被命名為不同值的列表,如整數、字節、浮點數、字節數組等。

5. 噴口

Spout 是元組中所有數據的入口。 它負責與實際數據源取得聯繫,不斷接收數據,將其轉換為元組,最後發送到bolts進行處理。

6. 螺栓

Bolts 是 Storm 中所有邏輯處理的核心。 因此,它們執行拓撲的所有處理。 Bolts 可用於多種功能,包括過濾、函數、聚合,甚至連接數據庫。

了解: Apache Spark 架構

為什麼選擇阿帕奇風暴?

Apache Storm 的工作方式與 Hadoop 非常相似。 兩者都是用於處理大數據的分佈式網絡。 它們提供可擴展性並廣泛用於商業智能目的。 那麼,為什麼是 Storm,為什麼它如此不同?

以下是選擇 Storm 的主要原因:

  • Storm 做實時流處理,而 Hadoop 主要做批處理。
  • Storm 拓撲一直運行到用戶關閉為止。 Hadoop 進程最終按順序完成。
  • Storm 進程可以在幾秒鐘內訪問集群上的數千個數據。 Hadoop 分佈式系統使用 MapReduce 框架生成大量框架,這些框架需要幾分鐘或幾小時。

使用 Apache Storm 的組織

部署後,Storm 不僅易於操作,而且能夠在幾秒鐘內處理數據。 考慮到 Storm 的諸多好處,許多組織已經開始使用它。

1. 推特

Apache Storm 為 Twitter 的一系列功能提供支持。 Storm 與 Twitter 的其他基礎架構很好地集成在一起,後者擁有 Cassandra、Memcached、Mesos 等數據庫系統、消息傳遞基礎架構、監控和警報系統。

2. 信息猩猩

Infochimps 使用 Storm 作為其云數據服務之一——數據交付服務的來源。 它使用 Storm 來提供可線性擴展的數據收集、傳輸和雲服務的複雜流內處理。

3. Spotify

它無疑是流媒體音樂平台的領導者。 它在全球擁有 5000 萬用戶和 1000 萬訂閱者,提供大量實時內容,如音樂推薦、分析、廣告創作等。Apache Storm 幫助 Spotify 準確地提供這些功能。

它還使公司能夠輕鬆交付低延遲容錯分配系統。

4.火箭燃料

RocketFuel 是一家利用人工智能的力量來擴大數字媒體營銷投資回報率的公司。 他們希望在 Storm 上構建一個平台,可以實時跟踪展示次數、點擊次數、出價請求等。 該平台應該通過克隆基於 Hadoop 的 ETL 管道的關鍵工作流來工作。

5. 活動板

Flipboard 是瀏覽和保存所有您感興趣的新聞的一站式商店。 在 Flipboard,Apache Storm 與 Hadoop、ElasticSearch、HBase 和 HDFS 等系統集成,以創建極其可擴展的平台。

在這裡,內容搜索、實時分析、自定義雜誌訂閱等服務都是在 Apache Storm 的幫助下提供的。

6. 威高

Wego 是一個起源於新加坡的旅遊元搜索引擎。 在這裡,數據來自世界各地,時間不同。 在 Storm 的幫助下,Wego 能夠搜索實時數據,解決任何共存的問題,並為最終用戶提供最佳結果。

另請閱讀:Apache spark 在大數據中的作用。

結論

在編寫 Storm 之前,使用隊列和工作線程方法處理實時數據。 一些隊列會不斷地寫入數據,而另一些隊列會不斷地讀取和處理它。 這個框架不僅非常脆弱,而且時間很長。 很多時間會花在處理數據丟失、維護整個框架、序列化/反序列化消息而不是執行實際工作上。

Apache Storm 是一種巧妙的方式,只需將數據作為 Spout 和 Bolt 提交,其餘處理作為拓撲提交。

Apache Storm 是一種流行的開源流處理計算框架,用於實時分析數據。 許多組織已經在使用它; 事實上,有些人正在用它開發更好和有用的軟件。

如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。

從世界頂級大學在線學習軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

引領數據驅動的技術革命

超過 400 小時的學習時間。 14 種語言和工具。 IIIT-B 校友身份。
IIIT Bangalore 大數據高級證書課程