- 目錄
- 前言:
- 1、Storm 任務提交的過程
- 2、Storm相關的目錄樹
- 總結:
目錄
前言:
對于任何一個組件來說,了解它相關的任務提交的過程是非常有必要的(畢竟生產中遇到一些Bug時,你如果知道內部執行的過程,那么會對問題的解決會有很大的幫助)。除此之外還會對Storm相關的目錄樹進行一個簡單的介紹,主要是為了了解下在任務提交過程中一些數據的存儲過程。博主也是小菜鳥一枚,如有錯誤或不足,請各位及時指出,必當及時修正。
1、Storm 任務提交的過程
任務提交詳細過程如下圖所示:
過程總結:
1、客戶端提交topology到nimbus(提交的jar包被上傳到nimbus下的inbox目錄)。
2、jar包中的submitTopology方法會對topology進行一些檢查處理(如bolt/spout的id是否違法,storm是否是active等),然后在nimbus服務器上建立topology本地目錄進行存儲(包含topology的jar包以及topology的序列化對象)
3、之后nimbus進行任務分配(根據topology定義的一些參數來對bolt/spot設定task的數量并分配對應的task-Id),將分配好的task信息發送到zookeeper(task信息包括task的心跳信息,topology的描述信息等發送到zookeeper對應的目錄下);
4、supervisor定期到zookeeper相應目錄下查看是否有新的任務,有的話下載下來,根據任務的描述信息啟動相應的worker進行工作;
5、worker根據任務的描述信息來創建響應的網絡連接來發消息。
2、Storm相關的目錄樹
Storm任務提交的過程(根據圖中的目錄信息去理解Storm相關的目錄樹的目錄信息)
Storm組件本地目錄樹
Storm zookeeper目錄樹
總結:
以上的內容主要還是以理解為主,特別是Storm任務提交的過程,需要重點關注!