测量hadoop中每个节点的整个Map阶段的持续时间

3df52oht  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(277)

目前,我知道jobtracker可以显示每个map任务所花费的时间,但我想要的不是每个map任务,而是从第一个map任务到集群中某个节点的最后一个map任务所花费的时间。例如:1个map需要2秒,但是当您有100个map任务并且不是所有任务都可以并行执行时,我如何度量每个节点的时间?
是否可以知道每个节点执行整个map阶段(所有map任务)所需的时间?

2j4z5cfb

2j4z5cfb1#

您可以使用用户定义的java计数器来派生每个节点上所有Map器所用的时间。
在mapper实现中,需要执行以下操作:1。覆盖设置并记录开始时间。 long startTime = System.currentTimeMillis(); 2替代清除方法 long endTime = System.currentTimeMillis(); String hostname = java.net.InetAddress.getLocalHost().getHostName(). context.getCounters(hostname,"time consumed").increment(endTime - startTime);

相关问题