HiveのJDBC接続
一、環境
Hadoop 0.20.2バージョン、Hive-0.5.0バージョン、JDK 1.6
二、使用目的
1、一般的にhiveの操作はcli、つまりLinuxのコンソールを通じて行われていますが、これは本質的には接続ごとにメタデータが格納され、それぞれの間に異なるので、このようなモデルについては、いくつかのテストを行うのが適切で、製品の開発と応用に適していないことをお勧めします.
2、そのために発生するJDBC接続の方式は、もちろんODBCなど他の接続方式もある.
三、接続の配置
1.hive-site.xml
2、埋め込み式のderbyに対してhiveのlibディレクトリの下にファイルderbyがあることを要求する.JArは、カスタマーサービスモードのderbyに対してderbyclientが要求されている.jarファイル、このファイルは自分でダウンロードする必要があります.
3、構成が完了したら、hive--service hiveserverと入力し、服を起動することができます.
四、インスタンスコード
主にJDBCでHiveのソースコードを接続します.
Hadoop 0.20.2バージョン、Hive-0.5.0バージョン、JDK 1.6
二、使用目的
1、一般的にhiveの操作はcli、つまりLinuxのコンソールを通じて行われていますが、これは本質的には接続ごとにメタデータが格納され、それぞれの間に異なるので、このようなモデルについては、いくつかのテストを行うのが適切で、製品の開発と応用に適していないことをお勧めします.
2、そのために発生するJDBC接続の方式は、もちろんODBCなど他の接続方式もある.
三、接続の配置
1.hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!-- derby,create true , metastore_db-->
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<!-- derby,hadoopor ,192.168.0.3 derby IP , 4567 -->
<!--<value>jdbc:derby://192.168.0.3:4567/hadoopor;create=true</value>—>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value> derby
<!--<value>org.apache.derby.jdbc.ClientDriver</value>--> derby
<description>Driver class name for a JDBC metastore</description>
</property>
2、埋め込み式のderbyに対してhiveのlibディレクトリの下にファイルderbyがあることを要求する.JArは、カスタマーサービスモードのderbyに対してderbyclientが要求されている.jarファイル、このファイルは自分でダウンロードする必要があります.
3、構成が完了したら、hive--service hiveserverと入力し、服を起動することができます.
四、インスタンスコード
主にJDBCでHiveのソースコードを接続します.
public class HiveJdbcClient {
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(1);
}
Connection con = DriverManager.getConnection("jdbc:hive://IP:10000/default", "", "");
Statement stmt = con.createStatement();
String tableName = "http_test";
// stmt.executeQuery("drop table " + tableName);
// ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
// show tables
String sql = "show tables ";
System.out.println("Running: " + sql);
ResultSet res = stmt.executeQuery(sql);
if (res.next()) {
System.out.println(res.getString(1));
}
// describe table
sql = "describe " + tableName;
System.out.println("Running: " + sql);
res = stmt.executeQuery(sql);
while (res.next()) {
System.out.println(res.getString(1) + "/t" + res.getString(2));
}
// load data into table
// NOTE: filepath has to be local to the hive server
// NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per line
/**
* String filepath = "/tmp/a.txt"; sql = "load data local inpath '" + filepath + "' into table " + tableName;
* System.out.println("Running: " + sql); res = stmt.executeQuery(sql);
*
* // select * query sql = "select * from " + tableName; System.out.println("Running: " + sql); res =
* stmt.executeQuery(sql); while (res.next()) { System.out.println(String.valueOf(res.getInt(1)) + "/t" +
* res.getString(2)); }
*
* // regular hive query sql = "select count(1) from " + tableName; System.out.println("Running: " + sql); res =
* stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1)); }
*/
}
}
、
1、 :http://bbs.hadoopor.com/thread-219-1-3.html
2、wiki , , :http://wiki.apache.org/hadoop/Hive/HiveClient
3、 , :http://www.tbdata.org/archives/499
4、 , :[email protected]