`

转 Hive的JDBC连接方法

阅读更多

操作时注意四点

1. 在连接程序运行前要导入hive文件下面的所有的包

2. 运行时间可能较长,这是正常的,只要耐心等待

3. 输入hive --service hiveserver之后,命令框卡住不动是正常情况,如果要使其成为后台程序,只要改输入为 hive --service hiveserver &即可

4. 真正应用是需要将metadata另外放置在一台机器上,并且导入到mysql中是比较通用的方法。







一般来说我们对hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连接都存放一个元数据,各个之间都不相同,所以,对于这样的模式我建议是用来做一些测试比较合适,并不适合做产品的开发和应用。

一、环境

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

*/

}

}

分享到:
评论

相关推荐

    hive jdbc 连接所需要的jar包

    Hive JDBC连接是Java应用程序与Hive数据仓库进行交互的一种方式。它允许程序通过标准的JDBC接口查询和操作Hive中的数据。在使用Hive JDBC进行连接时,需要依赖一系列的jar包来确保所有必要的功能得以实现。下面将...

    hive-jdbc hive jdbc驱动

    hive-jdbc

    apache seatunnel支持hive jdbc

    apache seatunnel支持hive jdbc

    hive jdbc依赖的jar包

    Hive JDBC是Apache Hive项目的一部分,它提供了一个Java数据库连接(JDBC)接口,使得其他应用程序,如Python、Java或任何支持JDBC的环境,能够与Hive进行交互。Hive JDBC驱动程序允许用户通过标准的JDBC API来执行...

    jdbc连接hive数据库的驱动jar包

    标题中的"jdbc连接hive数据库的驱动jar包"指的是Hive JDBC驱动的Java类库文件,通常是一个.jar文件,包含了所有必要的类和方法,使得Java应用程序能够建立到Hive服务器的连接,执行查询并获取结果。这个“jar包”...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    本教程将深入讲解如何使用Hive JDBC在Java项目中建立与Hive的连接,并通过Maven来管理依赖。 首先,让我们了解Hive JDBC的基本概念。JDBC是Java中用于数据库访问的标准API,它定义了一组接口和类,使得开发者可以...

    hive jdbc连接方式加密

    hive权限,通过自定义jar对hive的10000端口进行权限管控,直接放入到hive所在的lib环境下,然后对xml文件进行相应的配置

    hive jdbc驱动 2.5.15 及 2.6.1两个版本

    Hive JDBC驱动是连接Hadoop生态系统中的Hive数据仓库的重要桥梁,它允许用户通过Java数据库连接(JDBC)标准来访问Hive。在Hive 2.5.15和2.6.1这两个版本中,都包含了对Hive查询语言(HQL)的支持以及对大数据处理的...

    Hive-jdbc-3.1.1.zip

    8. **API文档**:Hive-jdbc-3.1.1.zip可能包含了Javadoc文档,这为开发者提供了详细的API参考,帮助他们理解和使用Hive JDBC的各种方法和类。 9. **示例和教程**:虽然压缩包本身可能不包含示例代码,但Hive JDBC...

    hive-jdbc所需jar(精简可用)

    2. 创建JDBC连接:`Connection conn = DriverManager.getConnection("jdbc:hive2://&lt;HIVE_SERVER&gt;:&lt;PORT&gt;/&lt;DB_NAME&gt;", "&lt;USERNAME&gt;", "&lt;PASSWORD&gt;")` 3. 执行HQL(Hive Query Language):`Statement stmt = conn....

    hive的jdbc连接驱动包

    hive的jdbc连接,亲身试验可以使用,但有时还需要hive其他环境

    HiveJDBC4.jar客户端连接hive-jdbc驱动包

    cloudera.com为我们提供的hiveserver2-JDBC驱动包,不需要把10几个jar找齐就能使用了。

    hive驱动包hive-jdbc-uber-2.6.5.0-292.jar(用户客户端连接使用)

    Hive JDBC驱动是Hive与各种数据库管理工具、应用程序之间建立连接的关键组件,使得用户可以通过标准的JDBC接口来访问和操作Hive中的数据。 标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded...

    jdbc 连接impala或者jdbc连接hive

    下面将详细介绍如何使用JDBC连接Hive和Impala。 1. **JDBC连接Hive** Hive提供了一个名为Hive JDBC的驱动,它允许外部应用程序通过JDBC协议与Hive服务通信。要建立JDBC连接到Hive,你需要以下步骤: - **获取...

    HiveJDBC4.jar

    HiveJDBC驱动可直接配合DBeaver使用,新建连接 -&gt; Apache Hive -&gt;编辑驱动设置(删除默认地址) -&gt;添加文件 -&gt;选中下载的文件 -&gt;点击找到类 -&gt;确定

    HiveJDBC41.jar

    hive的驱动包,支持使用jdbc的方式连接hive组件,可在客户端使用sql进行数据库操作

    hive连接jdbc的jar包

    1. HiveJDBC4.jar:这是Hive JDBC的主要库,包含了实现Hive JDBC驱动的所有类和方法。它使得Java应用程序能够通过JDBC API连接到Hive服务器,执行查询,并处理结果。 2. hive_metastore.jar:Hive元数据存储服务的...

    hive-jdbc-1.1.0驱动相关jar包

    Hive JDBC驱动是连接Hadoop Hive数据库的重要组件,它允许用户通过Java编程语言或任何支持JDBC的工具(如SQL客户端)与Hive进行交互。Hive JDBC 1.1.0版本是这个驱动的一个特定迭代,提供了对Hive查询、数据操作和...

    hive-jdbc-uber-2.6.5.0-292.zip

    1. 配置JDBC连接:首先,我们需要配置Hive JDBC的连接字符串,格式通常为`jdbc:hive2://&lt;host&gt;:&lt;port&gt;/;&lt;configuration parameters&gt;`。 2. 建立连接:使用Java的`DriverManager.getConnection()`方法建立到Hive服务...

    hive-jdbc-1.1.0-cdh5.12.1 连接库 jar包

    2. 创建一个JDBC连接字符串,格式通常为`jdbc:hive2://&lt;HIVESERVER&gt;:&lt;PORT&gt;/&lt;DATABASE&gt;`, 其中 `&lt;HIVESERVER&gt;` 是Hive服务器的地址,`&lt;PORT&gt;` 是Hive Thrift服务器监听的端口,`&lt;DATABASE&gt;` 是默认数据库名称。...

Global site tag (gtag.js) - Google Analytics