`

通过JDBC驱动连接Hive操作实例

    博客分类:
  • hive
 
阅读更多

启动Hive远程服务接口:

 

bin/hive --service hiveserver
测试代码如下:

package com.hadoop.hive;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


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://10.2.136.22:10000/default", "", "");
	    Statement stmt = con.createStatement();
	    String tableName = "testHiveDriverTable";
	    stmt.executeQuery("drop table " + tableName);
	    ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
	    // show tables
	    String sql = "show tables '" + tableName + "'";
	    System.out.println("Running: " + sql);
	    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));
	    }
	  }
}

分享到:
评论

相关推荐

    JDBC连接Hive实例

    1. **下载Hive JDBC驱动**:Hive的JDBC驱动通常包含在Hive的lib目录下,或者可以从Apache官方网站下载。确保获取的是与你的Hive版本兼容的JDBC驱动。 2. **配置JDBC连接参数**:为了连接Hive,我们需要知道以下信息...

    Hive驱动1.1.0.zip

    2. **hive-jdbc.jar**:提供Hive的JDBC驱动,使你能通过JDBC接口连接到Hive服务器。 3. **libthrift.jar**:Thrift库,Hive使用的RPC框架,用于跨语言通信。 4. **hadoop-common.jar** 和 **hadoop-hdfs.jar**:...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    Hive JDBC(Java Database Connectivity)是Hive提供的一种接口,使得其他编程语言,如Java,能够通过JDBC驱动程序与Hive进行交互,实现数据查询、分析和操作。本教程将深入讲解如何使用Hive JDBC在Java项目中建立与...

    java操作Hive源码之HiveJDBC实例(mysql数据库)

    HiveJDBC是Hive提供的一种JDBC驱动,使得任何支持JDBC的应用程序,如Java,都能连接到Hive服务器,执行查询和操作Hive中的数据。在这个实例中,我们将使用它来连接到运行MySQL作为元数据存储的Hive服务。 2. **...

    hive-jdbc-uber-2.6.5.0-292.zip

    描述中提到的问题是用户在使用DataGrip尝试连接Hive数据库时遇到困难,但通过这个特定版本的Hive JDBC驱动程序可以成功建立连接。这暗示可能存在兼容性问题,或者是DataGrip内置的默认驱动与某些Hive实例不匹配,而...

    用于hive的实例

    本文将通过一个具体的Java与Hive结合的实例,深入讲解如何利用Java API进行Hive的操作,以加深对Hive语句的理解。 首先,要使用Java与Hive交互,我们需要引入Hive的JDBC驱动。在项目中,可以通过Maven或Gradle添加...

    Cloudera_HiveJDBC_2.5.4.1006.zip

    6. **数据库连接**:通过JDBC驱动建立Hive连接的基本步骤包括:(1) 创建`java.sql.DriverManager`实例;(2) 调用`DriverManager.getConnection()`方法,传入Hive服务器的URL、用户名和密码;(3) 获取`java.sql....

    DbVisualizer最新版本连接hive所需全部jar包

    2. **hive-jdbc.jar**:Hive JDBC驱动程序,使得像DbVisualizer这样的第三方工具可以通过JDBC接口连接到Hive服务器。 3. **hadoop-client.jar**:包含了Hadoop客户端的所有依赖,允许Hive与Hadoop集群通信。 4. **...

    java通过jdbc连接impala所需jar

    3. **加载驱动**: 在建立连接之前,需要通过`Class.forName()`加载Impala的JDBC驱动。 4. **创建Statement或PreparedStatement**: 通过连接对象创建`Statement`或`PreparedStatement`实例,用于执行SQL查询。 5. *...

    hive-jdbc.7z

    总的来说,Hive JDBC驱动是连接Hive与各种编程语言之间的桥梁,使得开发人员能够灵活地在Hadoop集群上进行数据操作和分析,而无需深入理解MapReduce或HDFS的底层细节。通过正确配置和使用Hive JDBC,你可以构建高效...

    SQuirrel SQL Client配置hive驱动

    3. **配置阿里云Hive连接**:如果Hive实例部署在阿里云上,你可能需要使用阿里云Hive JDBC驱动,其驱动类名可能不同,例如`com.aliyun.odps.jdbc.Driver`,请根据实际情况调整。 4. **创建新阿里云Hive连接**:在...

    hive-3.1.2&mysql-5.7.2安装包.rar

    接着,将 MySQL JDBC 驱动添加到 Hive 的类路径中,以便 Hive 可以通过 JDBC 连接到 MySQL 数据库。 对于 MySQL,你需要先解压 RPM 包,然后使用 `yum` 或 `rpm` 命令安装 MySQL 服务。配置 MySQL 服务器,创建用户...

    hadoop+hive+mapreduce的java例子

     Hive提供了jdbc驱动,使得我们可以用Java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。同关系型数据库一样,我们也需要将Hive的服务打开;在Hive 0.11.0版本之前,只有HiveServer服务可用,你得在...

    连接各种数据库url和驱动器

    不使用JDBC-ODBC桥的方式可以直接通过JDBC驱动连接数据库,例如: - 对于SQL Server,可以使用 `com.microsoft.sqlserver.jdbc.SQLServerDriver`。 - 对于MySQL,可以使用 `com.mysql.jdbc.Driver`。 - 对于Oracle...

    ImpalaJDBC连接所需Jar

    Impala提供了不同版本的JDBC驱动以兼容不同的Java环境和JDBC规范。在提供的压缩包中,包括了ImpalaJDBC3、ImpalaJDBC4和ImpalaJDBC41三个版本的驱动: 1. **ImpalaJDBC3**:这是针对JDBC 3.0规范的驱动,适用于较旧...

    kettle数据库驱动包.zip

    这个驱动包中的MySQL驱动可能包含JDBC驱动类库(通常以.jar文件形式存在),如`mysql-connector-java.jar`,它是连接Kettle到MySQL数据库的关键。 接下来是Oracle驱动。Oracle数据库是全球最广泛使用的商业数据库之...

    各数据库驱动jar包

    5. **Impala-Hive**:Impala和Hive是两个不同的大数据处理引擎,它们分别有自己的JDBC驱动。`impala-jdbc.jar`用于Impala,而`hive-jdbc.jar`则服务于Hive。这两个驱动让Java应用能够查询存储在Hadoop集群上的数据,...

    java_hive简单查询

    这些库包含Hive JDBC驱动,允许Java应用程序通过JDBC接口与Hive通信。 3. **设置Hive JDBC连接**: 在Java代码中,首先需要创建一个`DriverManager.getConnection()`实例,提供Hive服务器的URL、用户名和密码。...

    CDH550@hive 使用及操作说明

    除了Beeline之外,还可以使用标准的JDBC驱动程序来访问Hive。这种方式适用于开发Java应用程序时调用Hive SQL查询。例如,在Java程序中使用如下代码: ```java Connection conn = DriverManager.getConnection("jdbc:...

    HIVE PDF PDF

    - **JDBC驱动配置**:Hive使用JDBC驱动来连接MySQL数据库,其中元数据存储在MySQL的`metastore`库中。 - **Hive-site.xml配置**:Hive的配置文件`hive-site.xml`中配置了JDBC连接MySQL的详细信息,包括连接地址、...

Global site tag (gtag.js) - Google Analytics