You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2014/08/21 02:55:59 UTC
svn commit: r1619273 -
/hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java
Author: brock
Date: Thu Aug 21 00:55:58 2014
New Revision: 1619273
URL: http://svn.apache.org/r1619273
Log:
HIVE-7819 - CounterStatsAggregator throws a class cast exception
Modified:
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java
Modified: hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java?rev=1619273&r1=1619272&r2=1619273&view=diff
==============================================================================
--- hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java (original)
+++ hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/stats/CounterStatsAggregator.java Thu Aug 21 00:55:58 2014
@@ -41,14 +41,16 @@ public class CounterStatsAggregator impl
@Override
public boolean connect(Configuration hconf, Task sourceTask) {
- try {
- jc = new JobClient(toJobConf(hconf));
- RunningJob job = jc.getJob(((MapRedTask)sourceTask).getJobID());
- if (job != null) {
- counters = job.getCounters();
+ if (sourceTask instanceof MapRedTask) {
+ try {
+ jc = new JobClient(toJobConf(hconf));
+ RunningJob job = jc.getJob(((MapRedTask)sourceTask).getJobID());
+ if (job != null) {
+ counters = job.getCounters();
+ }
+ } catch (Exception e) {
+ LOG.error("Failed to get Job instance for " + sourceTask.getJobID(),e);
}
- } catch (Exception e) {
- LOG.error("Failed to get Job instance for " + sourceTask.getJobID(),e);
}
return counters != null;
}
@@ -59,9 +61,13 @@ public class CounterStatsAggregator impl
@Override
public String aggregateStats(String counterGrpName, String statType) {
- // In case of counters, aggregation is done by JobTracker / MR AM itself
- // so no need to aggregate, simply return the counter value for requested stat.
- return String.valueOf(counters.getGroup(counterGrpName).getCounter(statType));
+ long value = 0;
+ if (counters != null) {
+ // In case of counters, aggregation is done by JobTracker / MR AM itself
+ // so no need to aggregate, simply return the counter value for requested stat.
+ value = counters.getGroup(counterGrpName).getCounter(statType);
+ }
+ return String.valueOf(value);
}
@Override