我有一個羣集在其上運行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」作爲默認值。 –
這真的不可能我害怕。你能做的最好的確是使用客戶端時鐘。 –