1. 程式人生 > >hadoop 之 storm (程式設計模型、併發度、架構模型)

hadoop 之 storm (程式設計模型、併發度、架構模型)

目錄

  • 1、程式設計模型
  • 2、併發度
  • 3、架構模型

1、程式設計模型

  •     DataSource:外部資料來源;
  •     Spout:接受外部資料來源的元件,將外部資料來源轉化成Storm內部的資料,以Tuple為基本的傳輸單元下發給Bolt;
  •     Bolt:     接受Spout傳送的資料,或上游的bolt的傳送的資料。根據業務邏輯進行處理,傳送給下一個Bolt或者是儲存到某種介質上,介質可以是Redis可以是mysql,或者其他;
  •     Tuple:Storm內部中資料傳輸的基本單元,裡面封裝了一個List物件,用來儲存資料;
  •     StreamGrouping:   資料分組策略:shuffleGrouping(Random函式), Non Grouping(Random函式), FieldGrouping(Hash取模)、Local or ShuffleGrouping 本地或隨機,優先本地。

2、併發度

  •     使用者指定的一個任務,可以被多個執行緒執行,併發度的數量等於執行緒的數量。一個任務的多個執行緒,會被執行在多個Worker(JVM)上,有一種類似於平均演算法的負載均衡策略。儘可能減少網路IO,和Hadoop中的MapReduce中的本地計算的道理一樣。

3、架構模型

  •     Nimbus:任務分配;
  •     Supervisor:接受任務,並啟動worker,worker的數量根據埠號來的。
  •     Worker:執行任務的具體元件(其實就是一個JVM),可以執行兩種型別的任務,Spout任務或者bolt任務。
  •     Task:Task=執行緒=executor。 一個Task屬於一個Spout或者Bolt併發任務。
  •     Zookeeper:儲存任務分配的資訊、心跳資訊、元資料資訊。