我有一个群集在其上运行YARN。它有3个datanode和1个客户端节点。我在客户端节点上提交我的所有作业。我怎样才能获得特定工作中所有任务的运行时间。Hadoop任务的已用时间
可能是RESTful API(https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-site/MapredAppMasterRest.html)可用于此目的。但我很想知道是否有任何Java API可以做同样的事情。
我能够使用TaskReport类的getStartTime()方法找到所有任务的开始时间。虽然群集中的节点使用NTP同步时间,但我认为使用客户端系统当前时间(System.currentTimeMillis())来计算“正在运行”任务的已用时间可能会被接受即使在NTP中也与群集中的所有节点相关联。
- StartTime',它在同一主机上进行测量。 –
是的,赞同。但是为什么歪斜很重要,我想知道当前正在运行的任务的运行时间。对于当前正在运行的任务,getFinishTime()将返回“Wed Dec 31 19:00:00 EST 1969”作为默认值。 –
这真的不可能我害怕。你能做的最好的确是使用客户端时钟。 –