Hive的JDBC连接
来源:互联网 发布:如何网络推广 编辑:程序博客网 时间:2024/04/28 00:51
一、环境
Hadoop 0.20.2版本、Hive-0.5.0版本、JDK1.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 blocke.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 tablesString sql = "show tables ";System.out.println("Running: " + sql);ResultSet res = stmt.executeQuery(sql);if (res.next()) {System.out.println(res.getString(1));}// describe tablesql = "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.html2、wiki的资料,比较权威的,可以看看:http://wiki.apache.org/hadoop/Hive/HiveClient3、淘宝也有相关的资料,可以看看:http://www.tbdata.org/archives/4994、文档比较粗糙,有疑问可以发邮件交流:dajuezhao@gmail.com
- Hive的JDBC连接
- Hive的JDBC连接方法
- jdbc连接hive的问题
- hive jdbc连接时的乱码问题
- jdbc连接hive超时的问题
- hive jdbc连接时的乱码问题
- Hive学习笔记 6 Hive的JDBC连接
- Hive使用JDBC连接
- hive jdbc 连接 注意事项
- Jdbc连接Hive
- 通过JDBC连接hive
- Hive JDBC 连接
- hive JDBC连接示例
- HIVE JDBC连接详解
- JDBC连接Hive
- hive jdbc连接
- java jdbc 连接hive
- Jdbc连接Hive数据库
- Java开发工具配置 UltraEdit
- JSONArray.fromObject转换不了,提示JSONArray没有fromObject方法
- Struts2中iterator标签遍历map总结
- TCP/UDP 介绍
- 中缀表达式转后缀表达式并计算后缀表达式的值...
- Hive的JDBC连接
- bat for 循环
- ubuntu 基本命令
- 如何解决You don't have permission to access / on this server
- 如图7-49左图所示
- VPTR与Vtable
- 不同服务器数据库之间的数据操作
- sqlserver 常用sql 累积
- 数据库营销的发展趋势