溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)處理之流式計(jì)算簡(jiǎn)介

發(fā)布時(shí)間:2020-07-06 04:52:03 來(lái)源:網(wǎng)絡(luò) 閱讀:4333 作者:KIKI王 欄目:大數(shù)據(jù)
  1. 簡(jiǎn)介

    Strom是一個(gè)開(kāi)源的分布式流式計(jì)算系統(tǒng),用來(lái)處理流式的數(shù)據(jù),被稱作為流式的hadoop,在電信行業(yè),可以用來(lái)做大流量預(yù)警、終端營(yíng)銷(xiāo)、訪問(wèn)競(jìng)爭(zhēng)對(duì)手產(chǎn)品從而做挽留等業(yè)務(wù)。本文將從storm在hadoop生態(tài)圈中所處位置、storm中術(shù)語(yǔ)、storm平臺(tái)搭建、storm應(yīng)用程序構(gòu)建等詳細(xì)介紹storm。

  2. Strom在大數(shù)據(jù)生態(tài)圈中的位置


大數(shù)據(jù)處理之流式計(jì)算簡(jiǎn)介

  1. 上圖可以看出,Storm處于HDFS之上,但是并不是說(shuō)Storm只能是處理HDFS中數(shù)據(jù),反而Storm的數(shù)據(jù)來(lái)源一般是Log日志或者是Kafka中數(shù)據(jù),當(dāng)數(shù)據(jù)通過(guò)Strom處理完成之后,其流向可以是HDFS、HBase、關(guān)系型數(shù)據(jù)庫(kù)等。

  2. Strom是一個(gè)計(jì)算系統(tǒng),在大數(shù)據(jù)處理中,我們耳熟能詳?shù)挠?jì)算系統(tǒng)是mapreduce,這張架構(gòu)圖看出storm和mapreduce是同級(jí)關(guān)系,而storm被稱作是流式的hadoop。所以接下來(lái)將通過(guò)與mapreduce進(jìn)行對(duì)比來(lái)介紹storm

3.Strom常用術(shù)語(yǔ)介紹

StromMapReduce(基于hadoop2.X)描述
NimbusApplicationMasterMapReduce中Resourcemanager負(fù)責(zé)任務(wù)分配、資源申請(qǐng),同樣的在Strom中Nimbus負(fù)責(zé)代碼的分發(fā),任務(wù)的分配和調(diào)度工作
SupervisorNodeManagerMapReducer中NodeManager負(fù)責(zé)資源的申請(qǐng),工作進(jìn)程啟動(dòng)和監(jiān)控,Strom中Supervisor同樣負(fù)責(zé)任務(wù)進(jìn)程的啟動(dòng)和停止
Worker
YarnChild真正負(fù)責(zé)任務(wù)處理的進(jìn)程
TopologyMapReduce驅(qū)動(dòng)程序






4.大數(shù)據(jù)處理之流式計(jì)算簡(jiǎn)介
  • Strom架構(gòu)Topology:通過(guò)Storm構(gòu)建的應(yīng)用程序描述了數(shù)據(jù)的來(lái)源、數(shù)據(jù)的處理邏輯和數(shù)據(jù)的流向。

  • Spout:Topology中的組件,通過(guò)Spout描述了數(shù)據(jù)的來(lái)源,Spout中有一個(gè)nextTuple()函數(shù),該函數(shù)會(huì)不停的被調(diào)用,源數(shù)據(jù)的生成就在該函數(shù)中實(shí)現(xiàn),然后數(shù)據(jù)流向下一節(jié)點(diǎn),每個(gè)Topology中只允許有一個(gè)Spout。

  • Bolt:Topology中的組件,該組件接收上一節(jié)點(diǎn)(Spout或Bolt)發(fā)射過(guò)來(lái)的數(shù)據(jù),該組件中有一個(gè)execute(Tuple tuple)方法,當(dāng)接收到數(shù)據(jù)后該函數(shù)會(huì)被動(dòng)執(zhí)行,進(jìn)行合并、篩選、持久化等操作。Bolt可以是Topology中一次完整的數(shù)據(jù)處理流程的終點(diǎn),或者是轉(zhuǎn)移點(diǎn)。

  • Tuple:Tuple是Storm中傳遞消息的基本單元,Tuple的數(shù)據(jù)結(jié)構(gòu)為一個(gè)List。

  • Stream:連續(xù)不斷的Tuple就組成了Stream。

  • Stream grouping:描述了數(shù)據(jù)在不同的組件(Spout/Bolt)之間流轉(zhuǎn)時(shí),partition的規(guī)則,類型如下:

1.shuffle Grouping:隨機(jī)分組,隨機(jī)派發(fā)stream里面的tuple,保證每個(gè)bolt接收到的tuple數(shù)目相同
2.Fields Grouping:按照字段分組,相同的字段會(huì)分配到相同的bolt,不同的字段分配到不同的Bolt
3.ALL Grouping:廣播,對(duì)每一個(gè)tuple,所有的bolt都會(huì)收到
4.Global Grouping:全局分組,這個(gè)tuple被分配到storm的一個(gè)bolt的一個(gè)task內(nèi),即id最低的那個(gè)
5.Non Grouping:不分組,目前效果和Global Groouping一樣
6.Direct Grouping:直接分組,指定消息的接收者。






向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI