Dear Wiki user, You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.
The following page has been changed by RaghothamMurthy: http://wiki.apache.org/hadoop/Hive/HiveClient New page: This page describes the different clients supported by Hive. The command line client currently only supports an embedded server. The JDBC and thrift-java clients support both embedded and standalone servers. Clients in other languages only support standalone servers. For details about the standalone server see [wiki:Self:Hive/HiveServer HiveServer]. = Command line = Operates in embedded mode only, i.e., it needs to have access to the hive libraries. For more details see [wiki:Self:Hive/GettingStarted GettingStarted]. = JDBC = For embedded mode, uri is just "jdbc:hive://". For standalone server, uri is "jdbc:hive://host:port/dbname" where host and port are determined by where the hive server is run. For example, "jdbc:hive://localhost:10000/default". Currently, the only dbname supported is "default". {{{ import java.sql.*; class HiveJdbcClient { public static void main(String[] args) { String uri = "jdbc:hive://"; // for embedded mode String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; // load the hive jdbc driver Class.forName(driverName); // currently do not support username and password Connection con = DriverManager.getConnection(uri, ""/*user*/, ""/*passwd*/); Statement stmt = con.createStatement(); // DDL Statement stmt.executeQuery("CREATE TABLE r(a STRING, b INT, c DOUBLE)"); stmt.executeQuery("CREATE TABLE s(a STRING, b INT, c DOUBLE)"); // Metadata ResultSet res = stmt.executeQuery("SHOW TABLES"); // fetch results while (res.next()) { // Column indexes start from 1 System.out.println("Table name: " + res.getString(1)); } // Metadata ResultSet res = stmt.executeQuery("DESCRIBE r"); while (res.next()) { System.out.println("Column Name: " + res.getString(1)); System.out.println("Column Type: " + res.getString(2)); System.out.println("Comment: " + res.getString(3)); } // DML Statement stmt.executeQuery("LOAD TABLE LOCAL INPATH '/path/to/file' INTO TABLE r"); // Select res = stmt.executeQuery("SELECT * FROM r"); while (res.next()) { System.out.println(res.getString(1)); System.out.println(res.getInt(2)); System.out.println(res.getDouble(3)); } // Insert res = stmt.executeQuery("INSERT OVERWRITE TABLE s SELECT * FROM r WHERE b > 10"); } } }}} = Python = Set PYTHONPATH to build/dist/lib/py {{{ #!/usr/bin/env python import sys from hive import ThriftHive from hive.ttypes import HiveServerException from thrift import Thrift from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol try: transport = TSocket.TSocket('localhost', 10000) transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) client = ThriftHive.Client(protocol) transport.open() client.execute("CREATE TABLE r(a STRING, b INT, c DOUBLE)") client.execute("LOAD TABLE LOCAL INPATH '/path' INTO TABLE r") client.execute("SELECT * FROM r") while (row = client.fetchOne()): print row client.execute("SELECT * FROM r") print client.fetchAll() transport.close() except Thrift.TException, tx: print '%s' % (tx.message) }}} = PHP = Thrift Java Client = = ODBC = In the works. = Thrift C++ Client In the works.
