二)状态机可视化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的事件驱动模型与状态机
经验总结扩展阅读
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
- 除夕可以大扫除吗 除夕打扫的寓意是什么
- 2023年除夕好早 为什么今年除夕那么早
- 2023年11月适合结婚的日子有哪几天
- apple电子邮件地址怎么填写 apple电子邮件地址如何填写
- 为什么家里摆放黄铜摆件 家里摆放黄铜摆件有啥作用
- 原神2022最好的伙伴活动规则说明
- 正规幼师一个月多少钱 挣的多不多
- 带你了解NLP的词嵌入
- 【HarmonyOS】【ArkUI】在Service中使用Emitter