2017-03-15 2 views
2

hadoop uiには、map-task、reduce-task、totalのような区切られた列の標準的なMRカウンタがあります。Hadoop Java APIから特定のMRカウンタを取得するには?

enter image description here

しかし、私はhadoop java APIで、このような方法が表示されません。どのようにして、Java APIから分離されたカウンタを得ることができますか?どのように取得するCPU時間(ms)は、マップとReduce列の値ですか?

答えて

1

タスクカウンタを分割したい場合は、hadoopジョブに対してgetTaskReports()メソッドを使用する必要があります。その後、getTaskCounter()メソッドとfindCounter()メソッドを使用して、必要なカウンターを各タスクごとに個別に見つけることができます。マップGC-時間ミリ秒カウンタを取得する方法

例えば

、:

Long result = 0L;  
TaskReport[] taskReports = job.getHadoopJob().getTaskReports(TaskType.MAP); 
for (TaskReport taskReport : taskReports) { 
    try { 
     result += taskReport.getTaskCounters().findCounter(TaskCounter.GC_TIME_MILLIS).getValue(); 
     } catch (Exception ignored) {} 
} 
関連する問題