`
gaojingsong
  • 浏览: 1181905 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【七】java代码操作hive

 
阅读更多
 package cn.com.hivedemo.hivedemo;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import org.apache.hadoop.hive.jdbc.HiveDriver;
/**
 * Hello world!
   使用java操作hive,用maven进行管理依赖 
 *     hive --service hiveserver -p 50000 &  
 <dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.9.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</exclusion>
</exclusions>
</dependency>
   <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.8.0</version>
</dependency>
    <dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo2-api</artifactId>
<version>2.3-eb</version>
</dependency>
  </dependencies>
 
 */
public class App 
{
    public static void main( String[] args ) throws Exception
    {
        System.out.println( "Hello World!" );
//        createTableDemo();
//        insertTableDemo();
      
//        selectDemo();
        countDemo();
        showTablesDemo();
    }
    
    private static final String URLHIVE = "jdbc:hive://hadoop0:50000/default";  
    private static Connection connection = null;  
  
    public static Connection getHiveConnection() {  
        if (null == connection) {  
            synchronized (HiveDriver.class) {  
                if (null == connection) {  
                    try {  
                        Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");  
                        connection = DriverManager.getConnection(URLHIVE, "", "");  
                    } catch (SQLException e) {  
                        e.printStackTrace();  
                    } catch (ClassNotFoundException e) {  
                        e.printStackTrace();  
                    }  
                }  
            }  
        }  
        return connection;  
    }  
    
 
    public static void createTableDemo() throws SQLException {  
        String tweetTableSql = "create TABLE IF not EXISTS  student1(name String,age int)";  
        System.out.println("=====createTableDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        stmt.execute(tweetTableSql);  
        stmt.close();
        System.out.println("=====createTableDemo end========");
       
    }  
   
    public static void insertTableDemo() throws SQLException {  
        String tweetTableSql = "LOAD DATA LOCAL INPATH '/opt/stu.txt' OVERWRITE INTO TABLE student1";  
        System.out.println("=====insertTableDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        stmt.execute(tweetTableSql);  
        stmt.close();
        System.out.println("=====insertTableDemo end========");
       
    }  
    
    public static void selectDemo() throws SQLException {  
        String tweetTableSql = "select * from student1";  
        System.out.println("=====selectDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        ResultSet rs = stmt.executeQuery(tweetTableSql);  
        while(rs.next()){
        System.out.println(rs.getString(1)+rs.getString(2));
        }
        System.out.println("=====selectDemo end========");
       
    }  
    public static void selectDemo1() throws SQLException {  
        String tweetTableSql = "select * from student1 where name='MM'";  
        System.out.println("=====selectDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        ResultSet rs = stmt.executeQuery(tweetTableSql);  
        while(rs.next()){
        System.out.println(rs.getString(1)+rs.getString(2));
        }
        System.out.println("=====selectDemo end========");
       
    }  
    
    public static void countDemo() throws SQLException {  
        String tweetTableSql = " select count(*) from  student1 ";  
        System.out.println("=====countDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        ResultSet rs = stmt.executeQuery(tweetTableSql);  
        while(rs.next()){
        System.out.println(rs.getString(1));
        }
        System.out.println("=====countDemo end========");
       
    }  
    
    public static void showTablesDemo() throws SQLException {  
        String tweetTableSql = " show tables ";  
        System.out.println("=====showTablesDemo begin========");
        Statement stmt = getHiveConnection().createStatement();  
        ResultSet rs = stmt.executeQuery(tweetTableSql);  
        while(rs.next()){
        System.out.println(rs.getString(1));
        }
        System.out.println("=====showTablesDemo end========");
       
    }  
    
    
    
    /**
     * JDK使用1.6.0.x
     Exception in thread "main" java.lang.UnsupportedClassVersionError:             org/apache/hadoop/hive/metastore/api/MetaException : Unsupported major.minor version 51.0
    换成1.8就OK
     * 
     */
    
    
  • 大小: 88.2 KB
  • 大小: 142.2 KB
分享到:
评论

相关推荐

    使用javaJDBC连接hive数据,实现简单的操作!

    在Java代码中,我们可以通过`DriverManager.getConnection()`方法来实现。下面是一个基本的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class...

    java访问hive数据库所需全部jar包

    2. **Java API for Hive**:Hive提供了Java API,允许开发者通过编写Java代码来连接、查询和操作Hive数据库。这个API包括Hive JDBC驱动和Hive Metastore服务客户端,使得Java应用程序能够与Hive Server交互。 3. **...

    hadoop+hive+mapreduce的java例子

    基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 ...这时候,你就可以通过Java代码来连接hiveserver,代码如下:

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

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

    java jdbc连接hive所需要所有jar包,请测有效。

    以下是一段基本的Java代码示例,展示了如何使用JDBC连接到Hive: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ...

    java_hive简单查询

    在Java代码中,首先需要创建一个`DriverManager.getConnection()`实例,提供Hive服务器的URL、用户名和密码。例如: ```java String url = "jdbc:hive2://localhost:10000/default;principal=hive/_HOST@YOUR-...

    java根据excel生成 hive建表语句

    在你的压缩包文件"my-test-poi"中,可能包含了测试用的Excel文件或其他与该过程相关的Java代码。你可以根据这些文件进行实际操作,以便更好地理解和实现这个功能。 总的来说,通过Java结合Apache POI库,我们可以...

    kerberos认证hive连接代码

    本篇将详细介绍如何在Spring MVC框架中配置Kerberos认证,并通过Java代码与Hive建立安全连接。 首先,`Kerberos认证`是一种基于票据的认证机制,它通过三向握手确保了通信双方的身份,并防止中间人攻击。在Hive中...

    大数据java操作hive.pdf

    《大数据Java操作Hive》 本文主要探讨了如何在Java环境下操作Hive,涉及Hive的基本操作、数据库和表的创建、数据导入以及Eclipse中使用Maven进行Java连接Hive的方法。 首先,Hive是一种基于Hadoop的大数据处理工具...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    接下来,我们将编写Java代码来连接到Hive服务器。以下是一个基本示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public ...

    项目实战——Spark将Hive表的数据写入ElasticSearch(Java版本)

    Spark与Hive的集成允许我们直接操作Hive表,将Hive数据转换为Spark DataFrame,这样就可以利用Spark的并行计算能力进行数据预处理和转换。 3. **数据转换**: 在从Hive加载数据到Spark后,可能需要对数据进行清洗...

    大数据java操作hive

    ### 大数据Java操作Hive知识点详解 #### 一、Hive简介与基本配置 **Hive** 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 ...

    hive客户端java代码示例.zip

    接下来,我们来看一个简单的Java代码示例,该示例展示了如何连接到Hive服务器、执行SQL查询并获取结果: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.jdbc.HiveDriver; ...

    Java连接Hadoop hive数据库jar包合集

    综上所述,这些jar包组合在一起,为Java应用程序提供了连接到Hadoop Hive数据库的能力,通过编写Java代码,可以执行SQL查询,操作Hive中的数据。记得在部署时,将这些库复制到项目的lib目录或配置到类路径中,以便...

    java调用hive需要的jar

    Hive-JDBC驱动提供了一个桥梁,让Java代码可以执行Hive的SQL语句。在"java调用hive需要的jar"中,`hive-jar`可能就是包含Hive JDBC驱动的JAR文件。 2. **添加依赖**: 在Java项目中,你需要将Hive的JDBC JAR文件...

    hive+mysql-connector-java-5.1.38.zip

    标题中的"hive+mysql-connector-java-5.1.38.zip"暗示了这个压缩包包含与Hive和MySQL数据库连接相关的组件,特别是MySQL的Java连接器(JDBC驱动)。MySQL Connector/J是MySQL官方提供的用于Java应用程序连接到MySQL...

    java连接hive数据库的demo

    在Java中与Hive连接通常涉及到使用Hive JDBC驱动,这是一个Java数据库连接(JDBC)接口,使得Java应用能够像操作关系型数据库一样操作Hive。 以下是一些关键知识点: 1. **Hive JDBC驱动**:Hive提供了JDBC驱动...

    HIVE文件读写

    开发自定义SerDe可能涉及编写Java代码并将其打包成JAR文件,然后在Hive中注册这个JAR,并在创建表时指定使用这个SerDe。 总的来说,Hive文件读写结合Linux环境提供了强大的大数据处理能力,而BCD解析则是处理特定...

    星环hive-8.0.2 java 依赖包全集

    因此,这些依赖包可能涉及Inceptor的API、连接器、优化器或其他核心组件,帮助开发者在Java应用中无缝集成和操作Inceptor数据仓库。 总结来说,这个"星环hive-8.0.2 java 依赖包全集"是针对星环Inceptor 8.0.2版本...

Global site tag (gtag.js) - Google Analytics