勵志

勵志人生知識庫

storm攻略

Storm是一個免費並開源的分散式實時計算系統,它能夠可靠地處理無限的數據流。在Storm中,topology的構建是一個有向無環圖,由SpoutBolt構成的節點以及它們之間的邊組成。以下是Storm的一些基本概念和操作方式:

Spout:作為流的源頭,Spout可以從外部數據源如訊息佇列中讀取元組數據並吐到拓撲里。Spout可以是可靠的或不可靠的,並且可以一次給多個流吐數據。Spout必須不斷調用nextTuple方法,且這個方法必須是非阻塞的,因為Storm在同一個執行緒里執行Spout的函式。

Tuple:是Storm中傳送的數據流,是一個輕量級的數據格式,支持基本的類型。Tuple對象必須是可序列化的,並且在同一個流中,Tuple的數據格式應該都是一樣的。

Streams:是Storm中的核心抽象,一個流由無限的元組序列組成,這些元組會被分散式並行地創建和處理。通過流中元組包含的欄位名稱來定義這個流。

Stream Grouping:流分組是Storm中最重要的抽象之一,它能夠控制Spout/Bolt對應的Task以什麼樣的方式來分發Tuple,即將Tuple發射到目的Spout/Bolt對應的Task。

OutputFieldsDeclarer:用來聲明流和流的定義。

Serialization:Storm元組的動態類型轉化,可以聲明自定義的序列化方式。自定義的序列化必須實現ISerialization接口,可以通過CONFIG.TOPOLOGY_SERIALIZATIONS配置來註冊自定義的序列化接口。

以上是Storm的基本概念和操作方式,理解和掌握這些概念對於構建高效的Storm套用至關重要。