You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by he...@apache.org on 2011/09/13 19:31:12 UTC
svn commit: r1170260 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/ java/org/apache/hadoop/hive/ql/exec/
java/org/apache/hadoop/hive/ql/lockmgr/
java/org/apache/hadoop/hive/ql/parse/ java/org/apache/hadoop/hive/ql/plan/
test/org/apache/hadoop...
Author: heyongqiang
Date: Tue Sep 13 17:31:11 2011
New Revision: 1170260
URL: http://svn.apache.org/viewvc?rev=1170260&view=rev
Log:
HIVE-2217: add Query text for debugging in lock data (Jiayan Jiang via He Yongqiang)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
hive/trunk/ql/src/test/results/clientpositive/lock1.q.out
hive/trunk/ql/src/test/results/clientpositive/lock2.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java Tue Sep 13 17:31:11 2011
@@ -73,6 +73,7 @@ public class Context {
private final Configuration conf;
protected int pathid = 10000;
protected boolean explain = false;
+ protected String cmd = "";
// number of previous attempts
protected int tryCount = 0;
private TokenRewriteStream tokenRewriteStream;
@@ -125,6 +126,21 @@ public class Context {
return explain;
}
+ /**
+ * Set the original query command.
+ * @param cmd the original query command string
+ */
+ public void setCmd(String cmd) {
+ this.cmd = cmd;
+ }
+
+ /**
+ * Find the original query command.
+ * @return the original query command string
+ */
+ public String getCmd () {
+ return cmd;
+ }
/**
* Get a tmp directory on specified URI
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java Tue Sep 13 17:31:11 2011
@@ -410,6 +410,7 @@ public class Driver implements CommandPr
command = new VariableSubstitution().substitute(conf,command);
ctx = new Context(conf);
ctx.setTryCount(getTryCount());
+ ctx.setCmd(command);
ParseDriver pd = new ParseDriver();
ASTNode tree = pd.parse(command, ctx);
@@ -706,7 +707,8 @@ public class Driver implements CommandPr
HiveLockObjectData lockData =
new HiveLockObjectData(plan.getQueryId(),
String.valueOf(System.currentTimeMillis()),
- "IMPLICIT");
+ "IMPLICIT",
+ plan.getQueryStr());
if (t != null) {
locks.add(new HiveLockObj(new HiveLockObject(t, lockData), mode));
@@ -806,7 +808,8 @@ public class Driver implements CommandPr
HiveLockObjectData lockData =
new HiveLockObjectData(plan.getQueryId(),
String.valueOf(System.currentTimeMillis()),
- "IMPLICIT");
+ "IMPLICIT",
+ plan.getQueryStr());
// Lock the database also
try {
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Tue Sep 13 17:31:11 2011
@@ -1976,12 +1976,16 @@ public class DDLTask extends Task<DDLWor
outStream.write(separator);
outStream.writeBytes(lock.getHiveLockMode().toString());
if (isExt) {
- outStream.write(terminator);
HiveLockObjectData lockData = lock.getHiveLockObject().getData();
if (lockData != null) {
- outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId() + " ");
- outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime() + " ");
- outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode() + " ");
+ outStream.write(terminator);
+ outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId());
+ outStream.write(terminator);
+ outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime());
+ outStream.write(terminator);
+ outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode());
+ outStream.write(terminator);
+ outStream.writeBytes("LOCK_QUERYSTRING:" + lockData.getQueryStr());
}
}
outStream.write(terminator);
@@ -2029,7 +2033,8 @@ public class DDLTask extends Task<DDLWor
HiveLockObjectData lockData =
new HiveLockObjectData(lockTbl.getQueryId(),
String.valueOf(System.currentTimeMillis()),
- "EXPLICIT");
+ "EXPLICIT",
+ lockTbl.getQueryStr());
if (partSpec == null) {
HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockData), mode, true);
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java Tue Sep 13 17:31:11 2011
@@ -31,13 +31,16 @@ public class HiveLockObject {
private String lockTime; // time at which lock was acquired
// mode of the lock: EXPLICIT(lock command)/IMPLICIT(query)
private String lockMode;
+ private String queryStr;
public HiveLockObjectData(String queryId,
String lockTime,
- String lockMode) {
+ String lockMode,
+ String queryStr) {
this.queryId = queryId;
this.lockTime = lockTime;
this.lockMode = lockMode;
+ this.queryStr = queryStr.trim();
}
@@ -50,6 +53,7 @@ public class HiveLockObject {
queryId = elem[0];
lockTime = elem[1];
lockMode = elem[2];
+ queryStr = elem[3];
}
public String getQueryId() {
@@ -64,8 +68,12 @@ public class HiveLockObject {
return lockMode;
}
+ public String getQueryStr() {
+ return queryStr;
+ }
+
public String toString() {
- return queryId + ":" + lockTime + ":" + lockMode;
+ return queryId + ":" + lockTime + ":" + lockMode + ":" + queryStr;
}
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java Tue Sep 13 17:31:11 2011
@@ -1571,6 +1571,7 @@ public class DDLSemanticAnalyzer extends
LockTableDesc lockTblDesc = new LockTableDesc(tableName, mode, partSpec,
HiveConf.getVar(conf, ConfVars.HIVEQUERYID));
+ lockTblDesc.setQueryStr(this.ctx.getCmd());
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
lockTblDesc), conf));
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java Tue Sep 13 17:31:11 2011
@@ -35,6 +35,7 @@ public class LockTableDesc extends DDLDe
private String mode;
private Map<String, String> partSpec;
private String queryId;
+ private String queryStr;
public LockTableDesc() {
}
@@ -77,4 +78,12 @@ public class LockTableDesc extends DDLDe
public void setQueryId(String queryId) {
this.queryId = queryId;
}
+
+ public String getQueryStr() {
+ return queryStr;
+ }
+
+ public void setQueryStr(String queryStr) {
+ this.queryStr = queryStr;
+ }
}
Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Tue Sep 13 17:31:11 2011
@@ -948,6 +948,7 @@ public class QTestUtil {
"-I", "at junit",
"-I", "Caused by:",
"-I", "LOCK_QUERYID:",
+ "-I", "LOCK_TIME:",
"-I", "grantTime",
"-I", "[.][.][.] [0-9]* more",
"-I", "job_[0-9]*_[0-9]*",
Modified: hive/trunk/ql/src/test/results/clientpositive/lock1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/lock1.q.out?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock1.q.out Tue Sep 13 17:31:11 2011
@@ -56,7 +56,10 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
-LOCK_QUERYID:njain_20101206231818_eec284bc-9a38-4ba5-b59e-7bc770db8bd2 LOCK_TIME:1291706323232 LOCK_MODE:EXPLICIT
+LOCK_QUERYID:jiayan_20110907105858_10aedc77-c380-4192-871e-83b17567adab
+LOCK_TIME:1315418321759
+LOCK_MODE:EXPLICIT
+LOCK_QUERYSTRING:LOCK TABLE tstsrc shared
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE tstsrc
@@ -101,7 +104,10 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
-LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT
+LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70
+LOCK_TIME:1315418322548
+LOCK_MODE:EXPLICIT
+LOCK_QUERYSTRING:lock TABLE tstsrc SHARED
PREHOOK: query: SHOW LOCKS tstsrc
PREHOOK: type: SHOWLOCKS
POSTHOOK: query: SHOW LOCKS tstsrc
@@ -130,9 +136,15 @@ POSTHOOK: type: SHOWLOCKS
POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrc SHARED
-LOCK_QUERYID:njain_20101206231818_d29191d9-ed78-4e6d-80df-2fc47d70adef LOCK_TIME:1291706324583 LOCK_MODE:EXPLICIT
-default@tstsrc SHARED
-LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT
+LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70
+LOCK_TIME:1315418322548
+LOCK_MODE:EXPLICIT
+LOCK_QUERYSTRING:lock TABLE tstsrc SHARED
+default@tstsrc SHARED
+LOCK_QUERYID:jiayan_20110907105858_fa544f90-07cc-4176-813c-ed9a91bc56ac
+LOCK_TIME:1315418322895
+LOCK_MODE:EXPLICIT
+LOCK_QUERYSTRING:LOCK TABLE tstsrc SHARED
PREHOOK: query: SHOW LOCKS tstsrc
PREHOOK: type: SHOWLOCKS
POSTHOOK: query: SHOW LOCKS tstsrc
Modified: hive/trunk/ql/src/test/results/clientpositive/lock2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/lock2.q.out?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock2.q.out Tue Sep 13 17:31:11 2011
@@ -106,7 +106,10 @@ POSTHOOK: Lineage: tstsrc.value SIMPLE [
POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ]
POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ]
default@tstsrcpart@ds=2008-04-08/hr=11 EXCLUSIVE
-LOCK_QUERYID:njain_20101206171111_df7566b7-88ed-482a-827f-6cc3fac55d63 LOCK_TIME:1291684308414 LOCK_MODE:EXPLICIT
+LOCK_QUERYID:jiayan_20110907111919_b1ed9c04-a24b-432e-be72-4953089559b9
+LOCK_TIME:1315419586383
+LOCK_MODE:EXPLICIT
+LOCK_QUERYSTRING:LOCK TABLE tstsrcpart PARTITION(ds='2008-04-08', hr='11') EXCLUSIVE
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE tstsrc