Graphviz是基于dot语言的绘图工具,它不是使用鼠标来画图的,而是通过dot语言描述,然后在命令行下使用命令生成对应的图片如有向图、无向图、关系图、目录图、流程图等。这样做的优点是不用去手动的对齐坐标,而且也可以作为一些可视化的解决方案。
在hadoop yarn中,可以很方便的生成状态转换图:
(1) 安装graphviz
sudo apt-get/yum install graphviz |
mac下执行:
brew install graphviz |
(2) 编译gv格式文件
在 $HADOOP_HOME/src 源码目录下,使用maven编译时加上生成.gv的选项:
mvn compile -Pvisualize |
会生成ResourceManager.gv,NodeManager.gv和MapReduce.gv三个文件
(3) 将生成的gv格式文件转换为png图像
比如生成ResourceManager的状态图:
dot -Tpng ResourceManager.gv > ResourceManager.png |
有了状态图,查看Hadoop源码就更方便了。
MapReduce Task状态转换图(点击图片可以查看原图):
MapReduce TaskAttempt状态转换图:
MapReduce Job状态转换图:
NodeManager LocalizedResource状态转换图:
NodeManager Container状态转换图:
NodeManager Application状态转换图:
ResourceManager RMApp状态转换图:
ResourceManager RMNode状态转换图:
ResourceManager RMContainer状态转换图:
ResourceManager RMAppAttempt状态转换图: