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