storm學習筆記

2021-08-31 21:33:32 字數 1768 閱讀 9067

1、基礎概念

元組:訊息傳遞的基本單元,支援所有的基本型別、字串和位元組陣列作為字段值。

流:流由元組組成,spout是流的源頭從外部資料來源讀取元組並emit到拓撲中,bolt接收任何數量的輸入流執行處理後可能提交新的流。

spout:spout是拓撲的流的**,是乙個拓撲中產生源資料流的元件。spout的主要方法是nexttuple(),它會發出乙個新的tuple到拓撲,如果沒有新的元組發出,則簡單的返回。spout的其他主要方法是ack()和fail(),當storm檢測到乙個元組從spout發出時,ack()和fail()會被呼叫,要麼成功完成通過拓撲,要麼未能完成。ack()和fail()僅被可靠的spout呼叫。irichspout是spout必須實現的介面。

bolt:在拓撲中的所有處理都在bolt中完成,bolt是流的處理節點,從乙個拓撲接收資料,然後執行進行處理的元件。bolt的主要方法是execute(),該方法將乙個新的元組作為輸入。irichbolt是bolt的通用介面。

topology:拓撲是storm中執行的乙個實時應用程式,因為各個元件間的訊息流動而形成邏輯上的拓撲結構。

主控節點與工作節點:storm集群中有兩類節點:主控節點和工作節點,主控節點只有乙個工作節點可以有很多個。

nimbus程序與supervisor程序:主控節點執行乙個稱為nimbus的守護程序,nimbus負責在集群中分發**,對節點分配任務,並監視主機故障。每乙個工作節點執行乙個稱為supervisor的守護程序,supervisor監聽其主機上已經分配的主機作業,啟動和停止nimbus已經分配的工作程序。

流分組:拓撲定義的一部分,為每個bolt指定應該接收哪個流作為輸入,storm內建了8中流分組方式。

工作程序:worker是spout/bolt中執行具體處理邏輯的程序。

任務:worker中每乙個spout/bolt的執行緒稱為乙個任務。

執行器:在storm0.8以後,task不再與物理執行緒對應,同乙個spout/bolt的task可能會共享乙個物理執行緒,該執行緒稱為執行器。

可靠性:storm保證每乙個spout元組將被拓撲完全可靠地處理,它跟蹤每個spout元組的元組樹,檢測樹中的元組什麼時候可以成功完成。每個拓撲都有「訊息超時時間」,如果storm在超時之前未能檢測到spout已經完成,那麼會設元組為失敗並在之後重新發射它。

2、本地及生產環境執行拓撲

本地執行拓撲:

config conf = new config();

conf.setdebug(true);//每乙個元件發射訊息都讓storm記錄到日誌中

conf.setnumworkers(2);//設定程序數執行拓撲

localcluster cluster = new localcluster();

cluster.submittopology("test",conf,builder.createtopology());

utils.sleep(10000);

cluster.killtopology("test");

cluster.shutdown();

生產集群執行拓撲:

config conf = new config();

conf.setnumworkers(20);//設定程序數執行拓撲

conf.setmaxspoutpending(5000);//設定乙個spout task上面最多有多少個沒有處理的tuple

stormsubmitter.submittopology("test",conf,topology);

storm學習筆記

1.storm簡介 a storm是乙個開源免費的分布式實時計算系統,它可以輕鬆的處理無界的資料流。b storm只負責資料的計算,不負責資料的儲存。2.storm應用場景 3.storm的核心技術組成 a topology 拓撲 乙個拓撲是乙個圖的計算,乙個拓撲是由若干個spout,bolt組成 ...

storm學習筆記

一,概述 storm用來實時計算源源不斷產生的資料,如同流水線生產。storm用來實時處理資料,特點 低延遲 高可用 分布式 可擴充套件 資料不丟失。提供簡單容易理解的介面,便於開發。二,storm和hadoop的區別 storm用於實時計算,hadoop用於離線計算。storm處理的資料儲存在記憶...

storm學習筆記(一)

1 storm介紹 storm特點 storm保障每個訊息至少能得到一次完整處理。任務失敗時,它會負責從訊息源重試訊息 系統的設計保證了訊息能夠得到快速的處理,使用 mq作為其底層訊息佇列 2 總體架構 storm中涉及的術語 3 storm在zookeeper中的資料存貯及使用 1 存貯 stor...