java代码操作hive是怎样的

76次阅读
没有评论

共计 4234 个字符,预计需要花费 11 分钟才能阅读完成。

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

     * 

     */

关于 java 代码操作 hive 是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注丸趣 TV 行业资讯频道了解更多相关知识。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计4234字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)