diff --git ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbLockManager.java ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbLockManager.java index 5f02950..de7d414 100644 --- ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbLockManager.java +++ ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbLockManager.java @@ -20,6 +20,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.hive.metastore.HiveMetaStoreClient; +import org.apache.hadoop.hive.metastore.IMetaStoreClient; import org.apache.hadoop.hive.metastore.api.*; import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.thrift.TException; @@ -42,10 +43,10 @@ private static final long MAX_SLEEP = 15000; private HiveLockManagerCtx context; private Set locks; - private HiveMetaStoreClient client; + private IMetaStoreClient client; private long nextSleep = 50; - DbLockManager(HiveMetaStoreClient client) { + DbLockManager(IMetaStoreClient client) { locks = new HashSet(); this.client = client; } @@ -210,8 +211,8 @@ public int hashCode() { /** * Clear the memory of the locks in this object. This won't clear the locks from the database. * It is for use with - * {@link #DbLockManager(org.apache.hadoop.hive.metastore.HiveMetaStoreClient).commitTxn} and - * {@link #DbLockManager(org.apache.hadoop.hive.metastore.HiveMetaStoreClient).rollbackTxn}. + * {@link #DbLockManager(org.apache.hadoop.hive.metastore.IMetaStoreClient).commitTxn} and + * {@link #DbLockManager(org.apache.hadoop.hive.metastore.IMetaStoreClient).rollbackTxn}. */ void clearLocalLockRecords() { locks.clear(); diff --git ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java index 64c17dd..8f7c759 100644 --- ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java +++ ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java @@ -31,6 +31,8 @@ import org.apache.hadoop.hive.ql.hooks.Entity; import org.apache.hadoop.hive.ql.hooks.ReadEntity; import org.apache.hadoop.hive.ql.hooks.WriteEntity; +import org.apache.hadoop.hive.ql.metadata.Hive; +import org.apache.hadoop.hive.ql.metadata.HiveException; import org.apache.hadoop.hive.ql.metadata.Table; import org.apache.thrift.TException; @@ -46,7 +48,7 @@ static final private Log LOG = LogFactory.getLog(CLASS_NAME); private DbLockManager lockMgr = null; - private HiveMetaStoreClient client = null; + private IMetaStoreClient client = null; private long txnId = 0; DbTxnManager() { @@ -311,7 +313,6 @@ protected void destruct() { try { if (txnId > 0) rollbackTxn(); if (lockMgr != null) lockMgr.close(); - if (client != null) client.close(); } catch (Exception e) { LOG.error("Caught exception " + e.getClass().getName() + " with message <" + e.getMessage() + ">, swallowing as there is nothing we can do with it."); @@ -326,10 +327,12 @@ private void init() throws LockException { "methods."); } try { - client = new HiveMetaStoreClient(conf); + Hive db = Hive.get(conf); + client = db.getMSC(); } catch (MetaException e) { - throw new LockException(ErrorMsg.METASTORE_COULD_NOT_INITIATE.getMsg(), - e); + throw new LockException(ErrorMsg.METASTORE_COULD_NOT_INITIATE.getMsg(), e); + } catch (HiveException e) { + throw new LockException(ErrorMsg.METASTORE_COULD_NOT_INITIATE.getMsg(), e); } } }