我有一个运行 YARN 的集群。它有 3 个数据节点和 1 个客户端节点。我在客户端节点上提交所有作业。如何获取特定作业中所有任务的经过时间。
可能 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 中,也与集群中的所有节点相关联的延迟。