You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by se...@apache.org on 2018/06/18 22:03:40 UTC
[49/67] [abbrv] hive git commit: HIVE-19921: Fix perf duration and
queue name in HiveProtoLoggingHook (Harish JP, reviewd by Anishek Agarwal)
HIVE-19921: Fix perf duration and queue name in HiveProtoLoggingHook (Harish JP, reviewd by Anishek Agarwal)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/c4eb647c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/c4eb647c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/c4eb647c
Branch: refs/heads/master-txnstats
Commit: c4eb647c6ffffda499541ce178bf82433c26f25e
Parents: 4810511
Author: Anishek Agarwal <an...@gmail.com>
Authored: Mon Jun 18 09:08:34 2018 -0700
Committer: Anishek Agarwal <an...@gmail.com>
Committed: Mon Jun 18 09:08:34 2018 -0700
----------------------------------------------------------------------
.../hive/ql/hooks/HiveProtoLoggingHook.java | 6 +++-
.../hive/ql/hooks/TestHiveProtoLoggingHook.java | 29 +++++++++++++++-----
2 files changed, 27 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/c4eb647c/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java
index eef6ac9..bddca1a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HiveProtoLoggingHook.java
@@ -366,6 +366,7 @@ public class HiveProtoLoggingHook implements ExecuteWithHookContext {
ApplicationId llapId = determineLlapId(conf, executionMode);
if (llapId != null) {
addMapEntry(builder, OtherInfoType.LLAP_APP_ID, llapId.toString());
+ builder.setQueue(conf.get(HiveConf.ConfVars.LLAP_DAEMON_QUEUE_NAME.varname));
}
conf.stripHiddenConfigurations(conf);
@@ -391,7 +392,10 @@ public class HiveProtoLoggingHook implements ExecuteWithHookContext {
builder.setOperationId(hookContext.getOperationId());
}
addMapEntry(builder, OtherInfoType.STATUS, Boolean.toString(success));
- JSONObject perfObj = new JSONObject(hookContext.getPerfLogger().getEndTimes());
+ JSONObject perfObj = new JSONObject();
+ for (String key : hookContext.getPerfLogger().getEndTimes().keySet()) {
+ perfObj.put(key, hookContext.getPerfLogger().getDuration(key));
+ }
addMapEntry(builder, OtherInfoType.PERF, perfObj.toString());
return builder.build();
http://git-wip-us.apache.org/repos/asf/hive/blob/c4eb647c/ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java
----------------------------------------------------------------------
diff --git a/ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java b/ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java
index 98b73e8..96fb73c 100644
--- a/ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java
+++ b/ql/src/test/org/apache/hadoop/hive/ql/hooks/TestHiveProtoLoggingHook.java
@@ -22,6 +22,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Map;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
@@ -46,6 +47,9 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
public class TestHiveProtoLoggingHook {
@@ -106,6 +110,8 @@ public class TestHiveProtoLoggingHook {
@Test
public void testPostEventLog() throws Exception {
context.setHookType(HookType.POST_EXEC_HOOK);
+ context.getPerfLogger().PerfLogBegin("test", "LogTest");
+ context.getPerfLogger().PerfLogEnd("test", "LogTest");
EventLogger evtLogger = new EventLogger(conf, SystemClock.getInstance());
evtLogger.handle(context);
@@ -119,7 +125,11 @@ public class TestHiveProtoLoggingHook {
Assert.assertEquals("test_op_id", event.getOperationId());
assertOtherInfo(event, OtherInfoType.STATUS, Boolean.TRUE.toString());
- assertOtherInfo(event, OtherInfoType.PERF, null);
+ String val = findOtherInfo(event, OtherInfoType.PERF);
+ Map<String, Long> map = new ObjectMapper().readValue(val,
+ new TypeReference<Map<String, Long>>() {});
+ // This should be really close to zero.
+ Assert.assertTrue("Expected LogTest in PERF", map.get("LogTest") < 100);
}
@Test
@@ -158,15 +168,20 @@ public class TestHiveProtoLoggingHook {
return event;
}
- private void assertOtherInfo(HiveHookEventProto event, OtherInfoType key, String value) {
+ private String findOtherInfo(HiveHookEventProto event, OtherInfoType key) {
for (MapFieldEntry otherInfo : event.getOtherInfoList()) {
if (otherInfo.getKey().equals(key.name())) {
- if (value != null) {
- Assert.assertEquals(value, otherInfo.getValue());
- }
- return;
+ return otherInfo.getValue();
}
}
- Assert.fail("Cannot find key: " + key);
+ Assert.fail("Cannot find key " + key);
+ return null;
+ }
+
+ private void assertOtherInfo(HiveHookEventProto event, OtherInfoType key, String value) {
+ String val = findOtherInfo(event, key);
+ if (value != null) {
+ Assert.assertEquals(value, val);
+ }
}
}