yarn狀態機可視化

YARN中實現了多個狀態機對象,包括ResourceManager中的RMAppImpl、RMApp-AttemptImpl、RMContainerImpl和RMNodeImpl,NodeManager中的ApplicationImpl、ContainerImpl和LocalizedResource,MRAppMaster中的JobImpl、TaskImpl和TaskAttemptImpl等。爲了便於用戶查看這些狀態機的狀態變化以及相關事件,YARN提供了一個狀態機可視化工具,具體操作步驟如下。

步驟1 將狀態機轉化爲graphviz(.gv)格式的文件,在源代碼根目錄下執行編譯命令如下:

mvn compile -Pvisualize

經過該步驟後,本地目錄中生成了ResourceManager.gv、NodeManager.gv和MapReduce.gv三個graphviz格式的文件。NodeManager.gv文件中LocalizedResource狀態機部分內容如下:

subgraph cluster_LocalizedResource {
label="LocalizedResource"
  "LocalizedResource.FAILED" [ label = FAILED ];
  "LocalizedResource.DOWNLOADING" [ label = DOWNLOADING ];
  "LocalizedResource.DOWNLOADING" -> "LocalizedResource.DOWNLOADING" [ label = "REQUEST,\nRELEASE" ];
  "LocalizedResource.DOWNLOADING" -> "LocalizedResource.FAILED" [ label = "LOCALIZATION_FAILED" ];
  "LocalizedResource.DOWNLOADING" -> "LocalizedResource.LOCALIZED" [ label = "LOCALIZED" ];
  "LocalizedResource.INIT" [ label = INIT ];
  "LocalizedResource.INIT" -> "LocalizedResource.DOWNLOADING" [ label = "REQUEST" ];
  "LocalizedResource.LOCALIZED" [ label = LOCALIZED ];
  "LocalizedResource.LOCALIZED" -> "LocalizedResource.LOCALIZED" [ label = "REQUEST,\nRELEASE" ];
}

步驟2 使用可視化包graphviz中的相關命令生成狀態機圖,Shell命令具體如下:

dot -Tpng NodeManager.gv > NodeManager.png

如果尚未安裝graphviz包,操作該步驟之前先要安裝該包,cent os安裝命令如下:

sudo yum install graphviz

打開NodeManager.png,如下圖所示(爲了便於展示,分拆成了兩個圖):




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章