Storm入門之第一章

2022-09-15 14:21:19 字數 1555 閱讀 6946

storm入門之第一章

譯者注:本文翻譯自《getting started with storm》,本書中所有storm相關術語都用斜體英文表示。 這些術語的字面意義翻譯如下,由於這個工具的名字叫storm,這些術語一律按照氣象名詞解釋

下面的術語跟氣象就沒有關係了

本文是該書的第一章。

基礎知識

storm是乙個分布式的,可靠的,容錯的資料流處理系統。它會把工作任務委託給不同型別的元件,每個元件負責處理一項簡單特定的任務。storm集群的輸入流由乙個被稱作spout的元件管理,spout把資料傳遞給bolt, bolt要麼把資料儲存到某種儲存器,要麼把資料傳遞給其它的bolt。你可以想象一下,乙個storm集群就是在一連串的bolt之間轉換spout傳過來的資料。

這裡用乙個簡單的例子來說明這個概念。昨晚我在新聞節目裡看到主持人在談***人物和他們對於各種政治話題的立場。他們一直重複著不同的名字,而我開始考慮這些名字是否被提到了相同的次數,以及不同次數之間的偏差。

想像播音員讀的字幕作為你的資料輸入流。你可以用乙個spout讀取乙個檔案(或者socket,通過http,或者別的方法)。文字行被spout傳給乙個bolt,再被bolt按單詞切割。單詞流又被傳給另乙個bolt,在這裡每個單詞與一張政治人名列表比較。每遇到乙個匹配的名字,第二個bolt為這個名字在資料庫的計數加1。你可以隨時查詢資料庫檢視結果, 而且這些計數是隨著資料到達實時更新的。所有元件(spouts和bolts)及它們之間的關係請參考拓撲圖1-1

現在想象一下,很容易在整個storm集群定義每個bolt 和spout的並行性級別,因此你可以無限的擴充套件你的拓撲結構。很神奇,是嗎?儘管這是個簡單例子,你也可以看到storm的強大。

有哪些典型的storm應用案例?

資料處理流

正如上例所展示的,不像其它的流處理系統,storm不需要中間佇列。

連續計算

連續傳送資料到客戶端,使它們能夠實時更新並顯示結果,如**指標。

分布式遠端過程呼叫

頻繁的cpu密集型操作並行化。

storm元件

對於乙個storm集群,乙個連續執行的主節點組織若干節點工作。

在storm集群中,有兩類節點:主節點master node和工作節點worker nodes。主節點執行著乙個叫做nimbus的守護程序。這個守護程序負責在集群中分發**,為工作節點分配任務,並監控故障。supervisor守護程序作為拓撲的一部分執行在工作節點上。乙個storm拓撲結構在不同的機器上執行著眾多的工作節點。

因為storm在zookeeper或本地磁碟上維持所有的集群狀態,守護程序可以是無狀態的而且失效或重啟時不會影響整個系統的健康(見圖1-2)

note: storm只用了push/pull sockets

storm的特性

在所有這些設計思想與決策中,有一些非常棒的特性成就了獨一無二的storm。

storm入門之第一章

Storm入門之第一章

譯者 譯者注 本文翻譯自 getting started with storm 本書中所有storm相關術語都用斜體英文表示。這些術語的字面意義翻譯如下,由於這個工具的名字叫storm,這些術語一律按照氣象名詞解釋 下面的術語跟氣象就沒有關係了 本文是該書的第一章。基礎知識 storm是乙個分布式的...

Storm入門之第一章

storm入門之第一章 spout龍捲,讀取原始資料為bolt提供資料 bolt雷電,從spout或者其他的bolt接收資料,並處理資料,處理結果可作為其他bolt的資料來源或最終結果 nimbus雨雲,主節點的守護程序,負責為工作節點分發任務 topology 拓撲結構,storm的乙個任務單元 ...

第一章 入門

第一章 入門。1.linux應用程式表現為2種特殊型別的檔案 可執行檔案和指令碼檔案,對應windows下的。exe和批處理。linux不要求可執行檔案或指令碼有特殊的餓副檔名,檔案系統屬性用來表明乙個檔案是否為可執行程式。2.我們是與乙個叫bash的指令碼進行互動的,指令碼裡可執行檔案的執行要麼在...