HIVE-14215: Displaying inconsistent CPU usage data with MR execution engine (Peter Vary, reviewed by Aihua Xu and Sergio Pena)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/72b039c8 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/72b039c8 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/72b039c8 Branch: refs/heads/branch-2.1 Commit: 72b039c82ffc033ae8a1f9ae79f6611467aacfc5 Parents: 3701a7a Author: Peter Vary <pv...@cloudera.com> Authored: Thu Jul 14 11:27:18 2016 -0500 Committer: Sergio Pena <sergio.p...@cloudera.com> Committed: Wed Sep 28 15:45:52 2016 -0500 ---------------------------------------------------------------------- .../hive/ql/exec/mr/HadoopJobExecHelper.java | 25 ++++++++++---------- 1 file changed, 13 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/72b039c8/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java index 5656f9a..a894bed 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/mr/HadoopJobExecHelper.java @@ -377,6 +377,19 @@ public class HadoopJobExecHelper { reportTime = System.currentTimeMillis(); } + Counters ctrs = th.getCounters(); + + if (ctrs != null) { + Counter counterCpuMsec = ctrs.findCounter("org.apache.hadoop.mapred.Task$Counter", + "CPU_MILLISECONDS"); + if (counterCpuMsec != null) { + long newCpuMSec = counterCpuMsec.getValue(); + if (newCpuMSec > cpuMsec) { + cpuMsec = newCpuMSec; + } + } + } + if (cpuMsec > 0) { String status = "MapReduce Total cumulative CPU time: " + Utilities.formatMsecToStr(cpuMsec); console.printInfo(status); @@ -385,7 +398,6 @@ public class HadoopJobExecHelper { boolean success; - Counters ctrs = th.getCounters(); if (fatal) { success = false; } else { @@ -403,17 +415,6 @@ public class HadoopJobExecHelper { } } - if (ctrs != null) { - Counter counterCpuMsec = ctrs.findCounter("org.apache.hadoop.mapred.Task$Counter", - "CPU_MILLISECONDS"); - if (counterCpuMsec != null) { - long newCpuMSec = counterCpuMsec.getValue(); - if (newCpuMSec > cpuMsec) { - cpuMsec = newCpuMSec; - } - } - } - MapRedStats mapRedStats = new MapRedStats(numMap, numReduce, cpuMsec, success, rj.getID().toString()); mapRedStats.setCounters(ctrs);