国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Apache Storm核心概念

Apache Storm從一端讀取實時數(shù)據(jù)的原始流,并將其傳遞通過一系列小處理單元,并在另一端輸出處理/有用的信息。

下圖描述了Apache Storm的核心概念。

all_grouping.jpg

現(xiàn)在讓我們仔細看看Apache Storm的組件 -

組件描述
TupleTuple是Storm中的主要數(shù)據(jù)結(jié)構(gòu)。它是有序元素的列表。默認情況下,Tuple支持所有數(shù)據(jù)類型。通常,它被建模為一組逗號分隔的值,并傳遞到Storm集群。
Stream流是元組的無序序列。
Spouts流的源。通常,Storm從原始數(shù)據(jù)源(如Twitter Streaming API,Apache Kafka隊列,Kestrel隊列等)接受輸入數(shù)據(jù)。否則,您可以編寫spouts以從數(shù)據(jù)源讀取數(shù)據(jù)。“ISpout”是實現(xiàn)spouts的核心接口,一些特定的接口是IRichSpout,BaseRichSpout,KafkaSpout等。
BoltsBolts是邏輯處理單元。Spouts將數(shù)據(jù)傳遞到Bolts和Bolts過程,并產(chǎn)生新的輸出流。Bolts可以執(zhí)行過濾,聚合,加入,與數(shù)據(jù)源和數(shù)據(jù)庫交互的操作。Bolts接收數(shù)據(jù)并發(fā)射到一個或多個Bolts。 “IBolt”是實現(xiàn)Bolts的核心接口。一些常見的接口是IRichBolt,IBasicBolt等。

讓我們來看一個“Twitter分析”的實時示例,看看如何在Apache Storm中建模。下圖描述了結(jié)構(gòu)。

global_grouping.jpg

“Twitter分析”的輸入來自Twitter Streaming API。Spout將使用Twitter Streaming API讀取用戶的tweets,并作為元組流輸出。來自spout的單個元組將具有twitter用戶名和單個tweet作為逗號分隔值。然后,這個元組的蒸汽將被轉(zhuǎn)發(fā)到Bolt,并且Bolt將tweet拆分成單個字,計算字數(shù),并將信息保存到配置的數(shù)據(jù)源?,F(xiàn)在,我們可以通過查詢數(shù)據(jù)源輕松獲得結(jié)果。

拓撲

Spouts和Bolts連接在一起,形成拓撲結(jié)構(gòu)。實時應(yīng)用程序邏輯在Storm拓撲中指定。簡單地說,拓撲是有向圖,其中頂點是計算,邊緣是數(shù)據(jù)流。

簡單拓撲從spouts開始。Spouts將數(shù)據(jù)發(fā)射到一個或多個Bolts。Bolt表示拓撲中具有最小處理邏輯的節(jié)點,并且Bolts的輸出可以發(fā)射到另一個Bolts作為輸入。

Storm保持拓撲始終運行,直到您終止拓撲。Apache Storm的主要工作是運行拓撲,并在給定時間運行任意數(shù)量的拓撲。

任務(wù)

現(xiàn)在你有一個關(guān)于Spouts和Bolts的基本想法。它們是拓撲的最小邏輯單元,并且使用單個Spout和Bolt陣列構(gòu)建拓撲。應(yīng)以特定順序正確執(zhí)行它們,以使拓撲成功運行。Storm執(zhí)行的每個Spout和Bolt稱為“任務(wù)”。簡單來說,任務(wù)是Spouts或Bolts的執(zhí)行。在給定時間,每個Spout和Bolt可以具有在多個單獨的螺紋中運行的多個實例。

進程

拓撲在多個工作節(jié)點上以分布式方式運行。Storm將所有工作節(jié)點上的任務(wù)均勻分布。工作節(jié)點的角色是監(jiān)聽作業(yè),并在新作業(yè)到達時啟動或停止進程。

流分組

數(shù)據(jù)流從Spouts流到Bolts,或從一個Bolts流到另一個Bolts。流分組控制元組在拓撲中的路由方式,并幫助我們了解拓撲中的元組流。有四個內(nèi)置分組,如下所述。

隨機分組

在隨機分組中,相等數(shù)量的元組隨機分布在執(zhí)行Bolts的所有工人中。下圖描述了結(jié)構(gòu)。

field_grouping.jpg

字段分組

元組中具有相同值的字段組合在一起,其余的元組保存在外部。然后,具有相同字段值的元組被向前發(fā)送到執(zhí)行Bolts的同一進程。例如,如果流由字段“字”分組,則具有相同字符串“Hello”的元組將移動到相同的工作者。下圖顯示了字段分組的工作原理。

shuffle_grouping.jpg

全局分組

所有流可以分組并向前到一個Bolts。此分組將源的所有實例生成的元組發(fā)送到單個目標實例(具體來說,選擇具有最低ID的工作程序)。

twitter_analysis.jpg

所有分組

所有分組將每個元組的單個副本發(fā)送到接收Bolts的所有實例。這種分組用于向Bolts發(fā)送信號。所有分組對于連接操作都很有用。

core_concept.jpg