溫馨提示×

溫馨提示×

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

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

Storm的設(shè)計(jì)思想是什么

發(fā)布時(shí)間:2021-12-23 14:38:41 來源:億速云 閱讀:165 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“Storm的設(shè)計(jì)思想是什么”,在日常操作中,相信很多人在Storm的設(shè)計(jì)思想是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Storm的設(shè)計(jì)思想是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

實(shí)時(shí)計(jì)算概述

有別于傳統(tǒng)的離線批處理操作(對(duì)很多數(shù)據(jù)的集合進(jìn)行的操作),實(shí)時(shí)處理,說白就是針對(duì)一條一條的數(shù)據(jù)/記錄進(jìn)行操作,所有的這些操作進(jìn)行一個(gè)匯總(截止到目前為止的所有的統(tǒng)計(jì)總和)。

實(shí)時(shí)計(jì)算與離線計(jì)算比較

Bounded:有界
    離線計(jì)算面臨的操作數(shù)據(jù)都是有界限的,無論是1G、1T、1P、1EB、1NB
    數(shù)據(jù)的有界必然會(huì)導(dǎo)致計(jì)算的有界
UnBounded:×××
    實(shí)時(shí)計(jì)算面臨的操作數(shù)據(jù)是源源不斷的向水流一樣,是沒有界限的,
    數(shù)據(jù)的×××必然導(dǎo)致計(jì)算的×××

來自Flink官網(wǎng)的說明:

First, 2 types of datasets
    Unbounded: Infinite datasets that are appended to continuously
    Bounded: Finite, unchanging datasets

Second, 2 types of execution models
    Streaming: Processing that executes continuously as long as data is being produced
    Batch: Processing that is executed and runs to completeness in a finite amount of 
           time, releasing computing resources when finished

大數(shù)據(jù)處理的6大問題

3大計(jì)算中心
    離線批處理
    準(zhǔn)實(shí)時(shí)流計(jì)算中心
    實(shí)時(shí)流計(jì)算
3大計(jì)算引擎
    用戶交互式計(jì)算引擎:SQL/ES
    圖計(jì)算引擎
    機(jī)器學(xué)習(xí)計(jì)算引擎

Storm簡介

ApacheStorm是Twitter開源的一個(gè)類似于Hadoop的實(shí)時(shí)數(shù)據(jù)處理框架,它原來是由BackType開發(fā),后BackType被Twitter收購,將Storm作為Twitter的實(shí)時(shí)數(shù)據(jù)分析系統(tǒng)。

Storm能實(shí)現(xiàn)高頻數(shù)據(jù)和大規(guī)模數(shù)據(jù)的實(shí)時(shí)處理。

官網(wǎng)資料顯示storm的一個(gè)節(jié)點(diǎn)1秒鐘能夠處理100萬個(gè)100字節(jié)的消息(IntelE5645@2.4Ghz的CPU,24GB的內(nèi)存)。(即單節(jié)點(diǎn)每秒大概處理95MB左右數(shù)據(jù))

官網(wǎng):<http://storm.apache.org>

Storm和Hadoop比較

  • 數(shù)據(jù)來源

    HADOOP處理的是HDFS上TB級(jí)別的數(shù)據(jù)(歷史數(shù)據(jù)),STORM是處理的是實(shí)時(shí)新增的某一筆數(shù)據(jù)(實(shí)時(shí)數(shù)據(jù));

  • 處理過程

    HADOOP是分MAP階段到REDUCE階段,STORM是由用戶定義處理流程,流程中可以包含多個(gè)步驟,每個(gè)步驟可以是數(shù)據(jù)源(SPOUT)或處理邏輯(BOLT);

  • 是否結(jié)束

    HADOOP最后是要結(jié)束的,STORM是沒有結(jié)束狀態(tài),到最后一步時(shí),就停在那,直到有新數(shù)據(jù)進(jìn)入時(shí)再從頭開始;

  • 處理速度

    HADOOP是以處理HDFS上TB級(jí)別數(shù)據(jù)為目的,處理速度慢,STORM是只要處理新增的某一筆數(shù)據(jù)即可,可以做到很快;

  • 適用場景

    HADOOP是在要處理批量數(shù)據(jù)時(shí)用的,不講究時(shí)效性,STORM是要處理某一新增數(shù)據(jù)時(shí)用的,要講時(shí)效性。

Storm的設(shè)計(jì)思想

Storm是對(duì)流Stream的抽象,流是一個(gè)不間斷的×××的連續(xù)tuple,注意Storm在建模事件流時(shí),把流中的事件抽象為tuple即元組。

Storm將流中元素抽象為Tuple,一個(gè)tuple就是一個(gè)值列表——valuelist,list中的每個(gè)value都有一個(gè)name,并且該value可以是基本類型,字符類型,字節(jié)數(shù)組等,當(dāng)然也可以是其他可序列化的類型。

Storm認(rèn)為每個(gè)stream都有一個(gè)stream源,也就是原始元組的源頭,所以它將這個(gè)源頭稱為Spout。

有了源頭即spout也就是有了stream,那么該如何處理stream內(nèi)的tuple呢。將流的狀態(tài)轉(zhuǎn)換稱為Bolt,bolt可以消費(fèi)任意數(shù)量的輸入流,只要將流方向?qū)蛟揵olt,同時(shí)它也可以發(fā)送新的流給其他bolt使用,這樣一來,只要打開特定的spout(管口)再將spout中流出的tuple導(dǎo)向特定的bolt,又bolt對(duì)導(dǎo)入的流做處理后再導(dǎo)向其他bolt或者目的地。

Storm的設(shè)計(jì)思想是什么

以上處理過程統(tǒng)稱為Topology即拓?fù)?。拓?fù)涫莝torm中最高層次的一個(gè)抽象概念,它可以被提交到storm集群執(zhí)行,一個(gè)拓?fù)渚褪且粋€(gè)流轉(zhuǎn)換圖,圖中每個(gè)節(jié)點(diǎn)是一個(gè)spout或者bolt,圖中的邊表示bolt訂閱了哪些流,當(dāng)spout或者bolt發(fā)送元組到流時(shí),它就發(fā)送元組到每個(gè)訂閱了該流的bolt(這就意味著不需要我們手工拉管道,只要預(yù)先訂閱,spout就會(huì)將流發(fā)到適當(dāng)bolt上)。

拓?fù)涞拿總€(gè)節(jié)點(diǎn)都要說明它所發(fā)出的元組的字段的name,其他節(jié)點(diǎn)只需要訂閱該name就可以接收處理。

到此,關(guān)于“Storm的設(shè)計(jì)思想是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

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

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

AI