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 2012/11/23 05:59:59 UTC
svn commit: r1412752 -
/hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java
Author: hashutosh
Date: Fri Nov 23 04:59:58 2012
New Revision: 1412752
URL: http://svn.apache.org/viewvc?rev=1412752&view=rev
Log:
HIVE-3722 : Create index fails on CLI using remote metastore. Adding missed file (Kevin Wilfong via Ashutosh Chauhan)
Added:
hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java
Added: hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java?rev=1412752&view=auto
==============================================================================
--- hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java (added)
+++ hive/branches/branch-0.10/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java Fri Nov 23 04:59:58 2012
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.metadata;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.metastore.HiveMetaStore;
+import org.apache.hadoop.util.StringUtils;
+
+/**
+ *
+ * TestHiveRemote.
+ *
+ * Tests using the Hive metadata class to make calls to a remote metastore
+ */
+public class TestHiveRemote extends TestHive {
+
+ /**
+ * Starts a remote metastore
+ */
+ private static class RunMS implements Runnable {
+ String port;
+
+ public RunMS(String port) {
+ this.port = port;
+ }
+
+ @Override
+ public void run() {
+ try {
+ HiveMetaStore.main(new String[] { port });
+ } catch (Throwable e) {
+ e.printStackTrace(System.err);
+ assert false;
+ }
+ }
+
+ }
+
+ /**
+ * Start a remote metastore and initialize a Hive object pointing at it.
+ */
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ hiveConf = new HiveConf(this.getClass());
+ String port = findFreePort();
+ hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://localhost:" + port);
+
+ Thread t = new Thread(new RunMS(port));
+ t.start();
+
+ // Wait a little bit for the metastore to start.
+ Thread.sleep(5000);
+
+
+ try {
+ hm = Hive.get(hiveConf);
+ } catch (Exception e) {
+ System.err.println(StringUtils.stringifyException(e));
+ System.err
+ .println("Unable to initialize Hive Metastore using configuration: \n "
+ + hiveConf);
+ throw e;
+ }
+ }
+
+ /**
+ * Finds a free port.
+ *
+ * @return a free port
+ * @throws IOException
+ */
+ private String findFreePort() throws IOException {
+ ServerSocket socket= new ServerSocket(0);
+ int port = socket.getLocalPort();
+ socket.close();
+ return String.valueOf(port);
+ }
+}