Hadoop状态转移图生成

事件驱动和状态转移,在很大程度上保证了大型系统的顺利推进。状态转移有如下好处:

  1. 状态转移图是可以生成的。在讨论某个功能的时候,可以直接对着图进行讨论
  2. 某个状态转移图里面,通过加锁、生产者/消费者模式等方法,可以保证一个时间点只有一个状态转移,进而保证状态的正确性
  3. 在进行UT(单元测试)的时候,只需要对每一条转移路径进行测试就好啦

Hadoop也大量采用了这种方法,如MapReduce的状态转移,NM和RM中资源、任务的管理.

生成方法

hadoop内部的状态转移图,是可以通过程序生成的。方法:使用类VisualizeStateMachine,在运行的时候指定三个参数:图的名字、包含事件转移的类(类之间通过”,”隔开)、生成的文件名(.gv格式),如

$ hadoop org.apache.hadoop.yarn.state.VisualizeStateMachine TaskStateChange org.apache.hadoop.mapreduce.v2.app.job.impl.TaskImpl TaskImpl.gv

生成的图如下
TaskImpl

hadoop所有的状态转移图生成方法

mvn命令生成

参考MAPREDUCE-2930

$mvn -Pvisualize compile
$dot -Tpng NodeManager.gv > NodeManager.png; dot -Tpng ResourceManager.gv > ResourceManager.png; dot -Tpng MapReduce.gv > MapReduce.png;

通过VisualizeStateMachine生成

hadoop中使用状态转移的大致有三类:MapReduce、NodeManager、ResourceManager,下面将给出生成这三大类转移图的脚本

MapReduce相关

hadoop org.apache.hadoop.yarn.state.VisualizeStateMachine MapReduce org.apache.hadoop.mapreduce.v2.app.job.impl.JobImpl,org.apache.hadoop.mapreduce.v2.app.job.impl.TaskImpl,org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl MapReduce.gv

NodeManager相关

hadoop org.apache.hadoop.yarn.state.VisualizeStateMachine NodeManager org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationImpl,org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl,org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalizedResource NodeManager.gv

ResourceManager相关

hadoop org.apache.hadoop.yarn.state.VisualizeStateMachine ResourceManager org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl,org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl,org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerImpl,org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeImpl ResourceManager.gv
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值