一、环境
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 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、文档比较粗糙,有疑问可以发邮件交流:dajuezhao@gmail.com
分享到:
相关推荐
Hive JDBC连接是Java应用程序与Hive数据仓库进行交互的一种方式。它允许程序通过标准的JDBC接口查询和操作Hive中的数据。在使用Hive JDBC进行连接时,需要依赖一系列的jar包来确保所有必要的功能得以实现。下面将...
hive-jdbc
hive权限,通过自定义jar对hive的10000端口进行权限管控,直接放入到hive所在的lib环境下,然后对xml文件进行相应的配置
Hive JDBC连接示例该项目展示了如何使用各种不同的方法连接到Hiveserver2。 所有类仅适用于Hiveserver2。 正在使用Cloudera JDBC驱动程序,可以从下载。 在撰写本文时,最新版本为v2.5.15 。要求: 您需要下载驱动...
Hive JDBC驱动是Hive与各种数据库管理工具、应用程序之间建立连接的关键组件,使得用户可以通过标准的JDBC接口来访问和操作Hive中的数据。 标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded...
jdbc连接hive的小示例程序,使用方法: 1、在Hadoop服务器上启动远程服务接口,命令: nohup hive --service hiveserver 10000 & (指定端口启动) 2、将test主程序里的IP改为自己用的Hadoop服务器ip,即可使用。
apache seatunnel支持hive jdbc
Hive JDBC是Apache Hive项目的一部分,它提供了一个Java数据库连接(JDBC)接口,使得其他应用程序,如Python、Java或任何支持JDBC的环境,能够与Hive进行交互。Hive JDBC驱动程序允许用户通过标准的JDBC API来执行...
本教程将深入讲解如何使用Hive JDBC在Java项目中建立与Hive的连接,并通过Maven来管理依赖。 首先,让我们了解Hive JDBC的基本概念。JDBC是Java中用于数据库访问的标准API,它定义了一组接口和类,使得开发者可以...
1. HiveJDBC4.jar:这是Hive JDBC的主要库,包含了实现Hive JDBC驱动的所有类和方法。它使得Java应用程序能够通过JDBC API连接到Hive服务器,执行查询,并处理结果。 2. hive_metastore.jar:Hive元数据存储服务的...
Hive JDBC驱动是连接Hadoop生态系统中的Hive数据仓库的重要桥梁,它允许用户通过Java数据库连接(JDBC)标准来访问Hive。在Hive 2.5.15和2.6.1这两个版本中,都包含了对Hive查询语言(HQL)的支持以及对大数据处理的...
标题中的"jdbc连接hive数据库的驱动jar包"指的是Hive JDBC驱动的Java类库文件,通常是一个.jar文件,包含了所有必要的类和方法,使得Java应用程序能够建立到Hive服务器的连接,执行查询并获取结果。这个“jar包”...
hive2.3.2 JDBC连接 ,sql developer可用。选择第三方jdbc,加入,就可以显示hive连接。用的cloudra的jdbc用于连接操作数据库,java开发请使用maven获取开源组件。
需要注意的是,Hive JDBC连接可能需要Hadoop的相关配置,如HDFS的地址和Hive Metastore的URI,这些配置可以通过设置系统属性或在`hive-site.xml`中定义,并通过`java -D`命令传递给JVM。 此外,Hive JDBC还支持连接...
Hive JDBC 连接器是Hive生态系统中的重要组成部分,它扩展了Hive的功能,使得非Java应用也能轻松地与Hive交互。 Hive 2.5.20 版本的发布可能包含了一些关键改进和修复,例如性能优化、错误修正和新特性。具体到版本...
HiveJDBC 提供了一个桥梁,使得开发者和数据分析师可以使用支持 JDBC 的任何工具(如 SQL 客户端、BI 工具或自定义应用程序)来连接和操作 Hive。 Hive JDBC4 是该驱动程序的特定版本,它基于 JDBC 4 规范,提供了...
Hive JDBC是Apache Hive项目的一部分,它为Hive数据仓库提供了与Java数据库连接(JDBC)接口的兼容性。这使得开发人员能够使用标准的JDBC驱动程序来连接到Hive服务器,从而在各种应用程序中方便地进行大数据查询和...
本篇文章将详细讲解如何通过Impala JDBC连接到Hive库,并介绍相关的POM配置。 首先,让我们理解JDBC。JDBC是Java中用于与各种数据库交互的一套标准API,它允许Java开发者使用SQL语句来操作数据库。对于Hive和Impala...
以上代码片段展示了如何通过Hive JDBC连接到Hive服务器,并执行一个简单的SQL查询。注意,你需要替换`hostname`、`port`、`default`、`username`和`password`为你自己的Hive服务器配置。 总结来说,"hive-jdbc.zip...
2. 创建JDBC连接:`Connection conn = DriverManager.getConnection("jdbc:hive2://<HIVE_SERVER>:<PORT>/<DB_NAME>", "<USERNAME>", "<PASSWORD>")` 3. 执行HQL(Hive Query Language):`Statement stmt = conn....