Index: ql/src/java/org/apache/hadoop/hive/ql/exec/HadoopJobExecHelper.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/HadoopJobExecHelper.java (revision 1179456) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/HadoopJobExecHelper.java (working copy) @@ -312,6 +312,20 @@ errMsg.setLength(0); updateCounters(ctrs, rj); + + // Prepare data for Client Stat Publishers (if any present) and execute them + if (clientStatPublishers.size() > 0 && ctrs != null) { + Map exctractedCounters = extractAllCounterValues(ctrs); + for (ClientStatsPublisher clientStatPublisher : clientStatPublishers) { + try { + clientStatPublisher.run(exctractedCounters, rj.getID().toString()); + } catch (RuntimeException runtimeException) { + LOG.error("Exception " + runtimeException.getClass().getCanonicalName() + + " thrown when running clientStatsPublishers. The stack trace is: ", + runtimeException); + } + } + } String report = " " + getId() + " map = " + mapProgress + "%, reduce = " + reduceProgress + "%"; @@ -373,14 +387,6 @@ } } - //Prepare data for Client Stat Publishers (if any present) and execute them - if (clientStatPublishers.size() > 0 && ctrs != null){ - Map exctractedCounters = extractAllCounterValues(ctrs); - for(ClientStatsPublisher clientStatPublisher : clientStatPublishers){ - clientStatPublisher.run(exctractedCounters, rj.getID().toString()); - } - } - if (ctrs != null) { Counter counterCpuMsec = ctrs.findCounter("org.apache.hadoop.mapred.Task$Counter", "CPU_MILLISECONDS");