如何在ubuntu中集成java和hive?

Posted

技术标签:

【中文标题】如何在ubuntu中集成java和hive?【英文标题】:How to integrate java and hive in ubuntu? 【发布时间】:2016-01-12 07:07:44 【问题描述】:

我是 hadoop 新手。我正在使用 ubuntu 并安装了 hadoop、hive 和 pig。我正在尝试在 java 中创建一个接口,该接口获取配置单元查询并在后台执行它。

我正在使用 IDE Eclipse -mars

源代码

    package com.soniya.demo2;


    import java.sql.SQLException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.sql.DriverManager;


    public class TestJdb
    
      private static String driver = "org.hadoop.apache.hive.jdbc.HiveDriver";

      /**
       * @param args
       * @throws SQLException
       */
      public static void main(String[] args) throws SQLException 
          try 
          Class.forName(driver);
         catch (ClassNotFoundException e) 
          e.printStackTrace();
          System.exit(1);
        

        Connection connect = DriverManager.getConnection("jdbc:hive2://:16074/default","","");
        Statement state = connect.createStatement();
        String tableName = "test";
        state.executeQuery("drop table " + tableName);
        ResultSet res = state.executeQuery("create table " + tableName + " (key int, value string)");

       // Query to show tables
        String show = "show tables";
        System.out.println("Running show");
        res = state.executeQuery(show);
        if (res.next()) 
          System.out.println(res.getString(1));
        

        // Query to describe table
        String describe = "describe " + tableName;
        System.out.println("Running describe");
        res = state.executeQuery(describe);
        while (res.next()) 
          System.out.println(res.getString(1) + "\t" + res.getString(2));
        

      
    

我收到以下错误

java.lang.ClassNotFoundException: org.hadoop.apache.hive.jdbc.HiveDriver
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at com.soniya.demo2.TestJdb.main(TestJdb.java:21)

帮我解决这个问题。 我已经包含了像 hive-jdbc、hadoop-common 这样的 jar 文件,但它不起作用,也尝试使用 hive lib jar 文件仍然得到同样的错误。 在此先感谢

【问题讨论】:

【参考方案1】:

尝试将driverName替换为“org.apache.hive.jdbc.HiveDriver”而不是“org.apache.hadoop.hive.jdbc.HiveDriver”;

【讨论】:

以上是关于如何在ubuntu中集成java和hive?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java SpringBoot 项目中集成 Olingo(Odata)

如何在 Web 应用程序中集成签名板

我如何在我的网站中集成贝宝?爪哇

如何在项目中集成弹簧靴

在cm安装的大数据管理平台中集成impala之后读取hive表中的数据的设置(hue当中执行impala的数据查询)

如何在 ASP.NET MVC 中集成 AngularJS