簡介
成都創(chuàng)新互聯(lián)公司:從2013年成立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為近1000家公司企業(yè)提供了專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需定制由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。Strom是一個開源的分布式流式計算系統(tǒng),用來處理流式的數(shù)據(jù),被稱作為流式的hadoop,在電信行業(yè),可以用來做大流量預(yù)警、終端營銷、訪問競爭對手產(chǎn)品從而做挽留等業(yè)務(wù)。本文將從storm在hadoop生態(tài)圈中所處位置、storm中術(shù)語、storm平臺搭建、storm應(yīng)用程序構(gòu)建等詳細(xì)介紹storm。
Strom在大數(shù)據(jù)生態(tài)圈中的位置
上圖可以看出,Storm處于HDFS之上,但是并不是說Storm只能是處理HDFS中數(shù)據(jù),反而Storm的數(shù)據(jù)來源一般是Log日志或者是Kafka中數(shù)據(jù),當(dāng)數(shù)據(jù)通過Strom處理完成之后,其流向可以是HDFS、HBase、關(guān)系型數(shù)據(jù)庫等。
Strom是一個計算系統(tǒng),在大數(shù)據(jù)處理中,我們耳熟能詳?shù)挠嬎阆到y(tǒng)是mapreduce,這張架構(gòu)圖看出storm和mapreduce是同級關(guān)系,而storm被稱作是流式的hadoop。所以接下來將通過與mapreduce進行對比來介紹storm
3.Strom常用術(shù)語介紹
Strom | MapReduce(基于hadoop2.X) | 描述 |
Nimbus | ApplicationMaster | MapReduce中Resourcemanager負(fù)責(zé)任務(wù)分配、資源申請,同樣的在Strom中Nimbus負(fù)責(zé)代碼的分發(fā),任務(wù)的分配和調(diào)度工作 |
Supervisor | NodeManager | MapReducer中NodeManager負(fù)責(zé)資源的申請,工作進程啟動和監(jiān)控,Strom中Supervisor同樣負(fù)責(zé)任務(wù)進程的啟動和停止 |
Worker | YarnChild | 真正負(fù)責(zé)任務(wù)處理的進程 |
Topology | MapReduce | 驅(qū)動程序 |
Strom架構(gòu)Topology:通過Storm構(gòu)建的應(yīng)用程序描述了數(shù)據(jù)的來源、數(shù)據(jù)的處理邏輯和數(shù)據(jù)的流向。
Spout:Topology中的組件,通過Spout描述了數(shù)據(jù)的來源,Spout中有一個nextTuple()函數(shù),該函數(shù)會不停的被調(diào)用,源數(shù)據(jù)的生成就在該函數(shù)中實現(xiàn),然后數(shù)據(jù)流向下一節(jié)點,每個Topology中只允許有一個Spout。
Bolt:Topology中的組件,該組件接收上一節(jié)點(Spout或Bolt)發(fā)射過來的數(shù)據(jù),該組件中有一個execute(Tuple tuple)方法,當(dāng)接收到數(shù)據(jù)后該函數(shù)會被動執(zhí)行,進行合并、篩選、持久化等操作。Bolt可以是Topology中一次完整的數(shù)據(jù)處理流程的終點,或者是轉(zhuǎn)移點。
Tuple:Tuple是Storm中傳遞消息的基本單元,Tuple的數(shù)據(jù)結(jié)構(gòu)為一個List。
Stream:連續(xù)不斷的Tuple就組成了Stream。
Stream grouping:描述了數(shù)據(jù)在不同的組件(Spout/Bolt)之間流轉(zhuǎn)時,partition的規(guī)則,類型如下:
1.shuffle Grouping:隨機分組,隨機派發(fā)stream里面的tuple,保證每個bolt接收到的tuple數(shù)目相同 2.Fields Grouping:按照字段分組,相同的字段會分配到相同的bolt,不同的字段分配到不同的Bolt 3.ALL Grouping:廣播,對每一個tuple,所有的bolt都會收到 4.Global Grouping:全局分組,這個tuple被分配到storm的一個bolt的一個task內(nèi),即id最低的那個 5.Non Grouping:不分組,目前效果和Global Groouping一樣 6.Direct Grouping:直接分組,指定消息的接收者。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。