日食中的java.lang.ClassNotFoundException:org.apache.hadoop.hive.jdbc.HiveDriver

时间:2017-07-29 14:15:23

标签: java hadoop hive

我还添加usr / local / share / hadoop / mapreduce / * jars,usr / local / hadoop / common,hive-exec-xxx.jar,hive-metastore-xxx.jar和hive-的所有jar文件JDBC-xxx.jar。

蜂巢终端运作良好。

我的代码是:

private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

try {
        Class.forName(driverName);
        Connection con;

        con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");

        Statement stmt = con.createStatement();

        stmt.executeQuery("CREATE DATABASE demodb");
        System.out.println("Database userdb created successfully.");

        con.close();

    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

例外:

java.lang.ClassNotFoundException: org.apache.hadoop.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:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at hive.CRUDHive.main(CRUDHive.java:15)

2 个答案:

答案 0 :(得分:3)

确定你想要哪个jar(配置单元)..因为它有不同的版本 旧的verison jar是

org.apache.hadoop.hive.jdbc.HiveDriver

这是mvnrepository

最新的jar是org.apache.hive.jdbc.HiveDriver here is the new settings

请检查您的依赖

答案 1 :(得分:0)

在您的代码中,提示hive的驱动程序类错误。它应该 d如下所示

  

private static String driverName =“org.apache.hive.jdbc.HiveDriver”;

如果上述更改无法解决您的问题,则表示jar文件不在您需要明确添加的类路径中。

对于基于maven的项目,您只需添加hive-jdbc jar的依赖项即可。

如果您不使用maven,那么在eclipse中执行以下步骤:

  

选择项目 - >构建路径 - >配置构建路径 - >图书馆 - >   添加外部罐子 - >选择hive-jdbc / hive-exec / hive-service jar的路径

除了hive jar,你需要添加其他依赖的jar作为http-core,http-client,hadoop-common,commons-logging,slf4j jars。