You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2020/08/10 14:48:55 UTC
[hive] branch master updated: HIVE-22934 Hive server interactive
log counters to error stream ( Ramesh Kumar via Ashutosh Chauhan)
This is an automated email from the ASF dual-hosted git repository.
hashutosh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 4457c3e HIVE-22934 Hive server interactive log counters to error stream ( Ramesh Kumar via Ashutosh Chauhan)
4457c3e is described below
commit 4457c3ec9360650be021ea84ed1d5d0f007d8308
Author: Ramesh Thangarajan <ra...@cloudera.com>
AuthorDate: Wed Jul 1 12:26:49 2020 -0700
HIVE-22934 Hive server interactive log counters to error stream ( Ramesh Kumar via Ashutosh Chauhan)
Signed-off-by: Ashutosh Chauhan <ha...@apache.org>
---
.../hadoop/hive/cli/TestCliDriverMethods.java | 1 +
.../java/org/apache/hadoop/hive/ql/QTestUtil.java | 4 +++-
.../hadoop/hive/ql/session/SessionState.java | 28 +++++++++++++++++++++-
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/cli/src/test/org/apache/hadoop/hive/cli/TestCliDriverMethods.java b/cli/src/test/org/apache/hadoop/hive/cli/TestCliDriverMethods.java
index 5f21900..37448fe 100644
--- a/cli/src/test/org/apache/hadoop/hive/cli/TestCliDriverMethods.java
+++ b/cli/src/test/org/apache/hadoop/hive/cli/TestCliDriverMethods.java
@@ -331,6 +331,7 @@ public class TestCliDriverMethods {
sessionState.err = new SessionStream(data);
sessionState.out = new SessionStream(System.out);
+ sessionState.setIsQtestLogging(true);
try {
CliSessionState.start(sessionState);
CliDriver cliDriver = new CliDriver();
diff --git a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
index 6f42bbe..20ee2fe 100644
--- a/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
+++ b/itests/util/src/main/java/org/apache/hadoop/hive/ql/QTestUtil.java
@@ -623,6 +623,7 @@ public class QTestUtil {
}
File outf = new File(logDir, stdoutName);
setSessionOutputs(fileName, ss, outf);
+ ss.setIsQtestLogging(true);
if (fileName.equals("init_file.q")) {
ss.initFiles.add(AbstractCliConfig.HIVE_ROOT + "/data/scripts/test_init_file.sql");
@@ -638,13 +639,14 @@ public class QTestUtil {
ss.out.flush();
}
if (ss.err != null) {
- ss.out.flush();
+ ss.err.flush();
}
qTestResultProcessor.setOutputs(ss, fo, fileName);
ss.err = new CachingPrintStream(fo, true, "UTF-8");
ss.setIsSilent(true);
+ ss.setIsQtestLogging(true);
}
public CliSessionState startSessionState(boolean canReuseSession) throws IOException {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
index 0bf6735..5d42efb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
@@ -161,6 +161,11 @@ public class SessionState implements ISessionAuthState{
protected boolean isSilent;
/**
+ * silent mode.
+ */
+ protected boolean isQtestLogging;
+
+ /**
* verbose mode
*/
protected boolean isVerbose;
@@ -372,6 +377,10 @@ public class SessionState implements ISessionAuthState{
}
}
+ public boolean getIsQtestLogging() {
+ return isQtestLogging;
+ }
+
public boolean isHiveServerQuery() {
return this.isHiveServerQuery;
}
@@ -383,6 +392,10 @@ public class SessionState implements ISessionAuthState{
this.isSilent = isSilent;
}
+ public void setIsQtestLogging(boolean isQtestLogging) {
+ this.isQtestLogging = isQtestLogging;
+ }
+
public ReentrantLock getCompileLock() {
return compileLock;
}
@@ -1179,6 +1192,17 @@ public class SessionState implements ISessionAuthState{
return (ss != null) ? ss.getIsSilent() : isSilent;
}
+
+ /**
+ * Is the logging to the info stream is enabled, or not.
+ * @return True if the logging is disabled to the HiveServer2 or HiveCli info stream
+ */
+ public boolean getIsQtestLogging() {
+ SessionState ss = SessionState.get();
+ // use the session or the one supplied in constructor
+ return (ss != null) ? ss.getIsQtestLogging() : false;
+ }
+
/**
* Logs into the log file.
* BeeLine uses the operation log file to show the logs to the user, so depending on the
@@ -1270,7 +1294,9 @@ public class SessionState implements ISessionAuthState{
* @param detail Extra detail to log which will be not printed if null
*/
public void printError(String error, String detail) {
- getErrStream().println(error);
+ if(!getIsSilent() || getIsQtestLogging()) {
+ getErrStream().println(error);
+ }
LOG.error(error + StringUtils.defaultString(detail));
}
}