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);
+  }
+}