二)状态机可视化hadoop 中提供了状态机可视化的工具类 VisualizeStateMachine.java
,可以拷贝到我们的工程中使用 。根据提示 , 运行需要三个参数:
Usage: %s <GraphName> <class[,class[,...]]> <OutputFile>%n
文章插图
运行后会在项目根目录生成图文件
jsm.gv
。需要使用 graphviz
工具将 gv 文件转换成 png 文件:# linux 安装yum install graphviz# mac 安装brew install graphviz
转换:dot -Tpng jsm.gv > jsm.png
可视化状态机展示:文章插图
再使用这个工具对 Yarn 中的 Application 状态进行展示:
文章插图
三)如果不用状态机库【思考】如果不用状态机,代码结构会是什么样呢?下面这样的代码,如果要增加或修改逻辑可能就是很痛苦的一件事情了 。
// 一堆的函数调用// 一堆的 if 嵌套// 或者 switch case
三、总结本节对 Yarn 状态机库进行了介绍 。实际使用时会结合事件库、服务库一同使用 。状态机库的使用帮助代码结构更加的清晰,新增状态处理逻辑只需要增加一个状态类别 , 或者增加一个方法处理对应类型的事件即可 。将整个处理逻辑进行了拆分,便于编写和维护 。参考文章:源码|Yarn的事件驱动模型与状态机
【【深入浅出 Yarn 架构与实现】2-4 Yarn 基础库 - 状态机库】
推荐阅读
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
- DNF里浓缩的异界精髓怎么获得(浓缩的异界精髓作用)
- 小孩沉迷手机网络游戏怎么办(儿童玩手机游戏沉迷怎么办)
- 带你了解NLP的词嵌入
- 【HarmonyOS】【ArkUI】在Service中使用Emitter
- vivox70pro+屏幕多大_vivox70pro+屏幕尺寸
- 一星期的小鸡怎么养(街上买的小鸡怎么养)
- 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序
- 【lwip】11-UDP协议&源码分析
- 【什么是妖股】妖股是什么意思