- Apache Storm 教程
- Apache Storm - 首頁
- Apache Storm - 簡介
- Apache Storm - 核心概念
- Apache Storm - 叢集架構
- Apache Storm - 工作流程
- Storm - 分散式訊息系統
- Apache Storm - 安裝
- Apache Storm - 例項
- Apache Storm - Trident
- Twitter 中的 Apache Storm
- 雅虎財經中的 Apache Storm
- Apache Storm - 應用
- Apache Storm 有用資源
- Apache Storm - 快速指南
- Apache Storm - 有用資源
- Apache Storm - 討論
Apache Storm - 簡介
什麼是 Apache Storm?
Apache Storm是一個分散式即時大資料處理系統。Storm旨在以容錯且橫向可擴充套件的方式處理海量資料。它是一個流資料框架,具有最高的攝取速率能力。儘管Storm是無狀態的,但它透過Apache ZooKeeper管理分散式環境和叢集狀態。它很簡單,您可以並行地對即時資料執行各種操作。
Apache Storm繼續引領即時資料分析。Storm易於設定和操作,並保證每條訊息至少會被拓撲處理一次。
Apache Storm vs Hadoop
基本上,Hadoop和Storm框架都用於分析大資料。它們相互補充,但在某些方面有所不同。Apache Storm執行所有操作(永續性除外),而Hadoop擅長所有操作,但在即時計算方面有所欠缺。下表比較了Storm和Hadoop的屬性。
| Storm | Hadoop |
|---|---|
| 即時流處理 | 批處理 |
| 無狀態 | 有狀態 |
| 基於ZooKeeper協調的主/從架構。主節點稱為nimbus,從節點稱為supervisors。 | 基於ZooKeeper協調的主從架構。主節點是job tracker,從節點是task tracker。 |
| Storm流處理程序可以在叢集上每秒訪問數萬條訊息。 | Hadoop分散式檔案系統(HDFS)使用MapReduce框架處理海量資料,這需要幾分鐘或幾小時。 |
| Storm拓撲執行直到使用者關閉或發生意外的不可恢復的故障。 | MapReduce作業按順序執行並最終完成。 |
| 兩者都是分散式和容錯的 | |
| 如果nimbus/supervisor宕機,重新啟動可以從中斷處繼續,因此不會受到任何影響。 | 如果JobTracker宕機,所有正在執行的作業都將丟失。 |
Apache Storm 的用例
Apache Storm以即時大資料流處理而聞名。因此,大多數公司都將Storm作為其系統的一個組成部分。一些值得注意的例子如下:
Twitter - Twitter使用Apache Storm來執行其一系列“釋出者分析產品”。“釋出者分析產品”處理Twitter平臺上的每一條推文和點選。Apache Storm與Twitter基礎架構深度整合。
NaviSite - NaviSite使用Storm進行事件日誌監控/審計系統。系統中生成的每個日誌都將透過Storm。Storm將根據配置的正則表示式集檢查訊息,如果匹配,則將該特定訊息儲存到資料庫。
Wego - Wego是位於新加坡的旅遊元搜尋引擎。旅遊相關資料來自世界各地的許多來源,時間也不同。Storm幫助Wego搜尋即時資料,解決併發問題併為終端使用者找到最佳匹配。
Apache Storm 的優勢
以下是Apache Storm提供的優勢列表:
Storm是開源的、健壯的和使用者友好的。它可以用於小型公司以及大型公司。
Storm具有容錯性、靈活性和可靠性,並支援任何程式語言。
允許即時流處理。
Storm非常快,因為它具有強大的資料處理能力。
Storm可以透過線性新增資源來保持在不斷增加的負載下的效能。它具有高度的可擴充套件性。
Storm在幾秒鐘或幾分鐘內(取決於問題)完成資料重新整理和端到端交付響應。它的延遲非常低。
Storm具有運營智慧。
即使叢集中的任何連線節點宕機或訊息丟失,Storm也能保證資料處理。