WIKI使用導航
站長百科導航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應用
- 美國十大主機
Apache Storm
Apache Storm 是一個免費的開源分布式實時計算系統(tǒng),它使處理無限數(shù)據(jù)流變得可靠且容易,就像Apache Hadoop 在批處理方面的作用一樣,但是可以進行實時處理。Apache Storm 的設計簡單,可以與任何編程語言一起使用,并且非常有趣!
Apache Storm 適用于多種用例,包括實時分析、在線機器學習、持續(xù)計算、分布式 RPC、ETL 等。它的處理速度非??欤夯鶞蕼y試顯示,每個節(jié)點每秒可以處理超過 100 萬個元組。此外,Apache Storm 具有可擴展性和容錯性,能夠確保數(shù)據(jù)得到處理,并且易于設置和操作。
核心架構(gòu)[ ]
1、Nimbus
Nimbus是Storm的主節(jié)點,它負責資源分配和任務調(diào)度。在一個Storm集群中,只有一個Nimbus節(jié)點。
2、Supervisor
Supervisor是Storm的工作節(jié)點,它負責接收Nimbus分配的任務并管理所有的Worker進程。一個Supervisor節(jié)點可以包含多個Worker進程。
3、Worker
Worker是工作進程,每個Worker進程都包含多個Task。
4、Task
Task是任務,在Storm集群中,每個Spout和Bolt都由若干個任務來執(zhí)行。每個任務都與一個執(zhí)行線程相對應。
5、Topology
Topology是計算拓撲,它是對實時計算應用邏輯的封裝。與MapReduce的任務(Job)類似,區(qū)別在于MapReduce的一個Job在得到結(jié)果后會結(jié)束,而拓撲會一直在集群中運行,直到你手動終止它。拓撲也可以理解為由一系列通過數(shù)據(jù)流(Stream Grouping)相互關聯(lián)的Spout和Bolt組成的拓撲結(jié)構(gòu)。
6、Stream
Stream是數(shù)據(jù)流,是Storm中最核心的抽象概念。一個數(shù)據(jù)流指的是在分布式環(huán)境中并行創(chuàng)建、處理的一組元組(tuple)的無界序列。數(shù)據(jù)流可以通過一種能夠描述數(shù)據(jù)流中元組域(fields)的模式來定義。
7、Spout
Spout是數(shù)據(jù)源,它是拓撲中數(shù)據(jù)流的起點。通常,Spout會從一個外部數(shù)據(jù)源讀取元組并將它們發(fā)送到拓撲中。根據(jù)需求的不同,Spout可以被定義為可靠的或不可靠的數(shù)據(jù)源??煽康腟pout能夠在其發(fā)送的元組處理失敗時重新發(fā)送該元組,以確保所有元組都能得到正確處理;相反,不可靠的Spout在元組發(fā)送后不會進行任何其他處理。一個Spout可以發(fā)送多個數(shù)據(jù)流。
8、Bolt
Bolt是拓撲中完成所有數(shù)據(jù)處理的組件。通過數(shù)據(jù)過濾、函數(shù)處理、聚合、聯(lián)結(jié)、數(shù)據(jù)庫交互等功能,Bolt幾乎可以完成任何類型的數(shù)據(jù)處理需求。一個簡單的數(shù)據(jù)流轉(zhuǎn)換可以由一個Bolt實現(xiàn),而更復雜的數(shù)據(jù)流變換通常需要使用多個Bolt并通過多個步驟完成。
9、Stream grouping
Stream grouping是為拓撲中的每個Bolt確定輸入數(shù)據(jù)流的方式。數(shù)據(jù)流分組定義了如何在Bolt的不同任務之間劃分數(shù)據(jù)流。Storm提供了八種內(nèi)置的數(shù)據(jù)流分組方式。
10、Reliability
Reliability是可靠性。Storm可以通過拓撲確保每個發(fā)送的元組都能得到正確處理。通過跟蹤由Spout發(fā)出的每個元組構(gòu)成的元組樹,可以確定元組是否已經(jīng)完成處理。每個拓撲都有一個“消息延時”參數(shù),如果Storm在延時時間內(nèi)沒有檢測到元組是否處理完成,就會將該元組標記為處理失敗,并在稍后重新發(fā)送該元組。
優(yōu)勢[ ]
- Storm是開源的,強大的,用戶友好的。它可以用于小公司和大公司。
- Storm是容錯的,靈活的,可靠的,并且支持任何編程語言。
- 允許實時流處理。
- Storm是令人難以置信的快,因為它具有巨大的處理數(shù)據(jù)的力量。
- Storm可以通過線性增加資源來保持性能,即使在負載增加的情況下。它是高度可擴展的。
- Storm在幾秒鐘或幾分鐘內(nèi)執(zhí)行數(shù)據(jù)刷新和端到端傳送響應取決于問題。它具有非常低的延遲。
- Storm有操作智能。
- Storm提供保證的數(shù)據(jù)處理,即使群集中的任何連接的節(jié)點死或消息丟失。
示例[ ]
- Twitter - Twitter正在使用Apache Storm作為其“發(fā)布商分析產(chǎn)品”。 “發(fā)布商分析產(chǎn)品”處理Twitter平臺中的每個tweets和點擊。 Apache Storm與Twitter基礎架構(gòu)深度集成。
- NaviSite - NaviSite正在使用Storm進行事件日志監(jiān)控/審計系統(tǒng)。系統(tǒng)中生成的每個日志都將通過Storm。Storm將根據(jù)配置的正則表達式集檢查消息,如果存在匹配,那么該特定消息將保存到數(shù)據(jù)庫。
- Wego - Wego是位于新加坡的旅行元搜索引擎。旅行相關數(shù)據(jù)來自世界各地的許多來源,時間不同。Storm幫助Wego搜索實時數(shù)據(jù),解決并發(fā)問題,并為最終用戶找到最佳匹配。