【问题标题】:java.lang.ClassNotFoundException: org.apache.hadoop.hive.jdbc.HiveDriver in eclipsejava.lang.ClassNotFoundException:日食中的 org.apache.hadoop.hive.jdbc.HiveDriver
【发布时间】:2017-07-29 14:15:22
【问题描述】:

我还添加了 usr/local/share/hadoop/mapreduce/*jars、usr/local/hadoop/common、hive-exec-xxx.jar、hive-metastore-xxx.jar 和 hive-的所有 jars 文件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)

【问题讨论】:

  • 如果你真的想在你的项目中包含 Hadoop 库,我建议你要么使用 Maven/Gradle。 Apache Spark 也更容易集成到您的 Hadoop 代码中
  • 您的驱动程序类不在您的运行时类路径中。如果您可以使用 cricket_007 建议会更好。
  • 我是 hadoop 新手,您能解释一下如何检查驱动程序类是否在正确的类路径中。

标签: java hadoop hive


【解决方案1】:

确定你想要哪个 jar (hive) .. 因为它有不同的版本 旧版本的罐子是

org.apache.hadoop.hive.jdbc.HiveDriver

这里是mvnrepository

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

请检查您的依赖项

【讨论】:

    【解决方案2】:

    在您的代码中,未正确提及 hive 的驱动程序类。它应该 d如下

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

    如果上述更改不能解决您的问题,则表示 jar 文件不在您需要显式添加的类路径上。

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

    如果你没有使用 maven,那么在 eclipse 中执行以下步骤:

    选择项目->构建路径->配置构建路径->库-> 添加外部 jars -> 选择 hive-jdbc/hive-exec/hive-service jars 的路径

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

    【讨论】:

    • 在将“org.apache.hadoop.hive.jdbc.HiveDriver”更改为“org.apache.hive.jdbc.HiveDriver”后显示错误“找不到适合 jdbc:hive://localhost 的驱动程序” :10000/默认”。
    • 你把依赖jar添加到类路径了吗?
    • 在形成连接字符串时,您还需要使用 "jdbc:hive2://:/"
    • @PraveenParihar 使用 jdbc:hive2://
    猜你喜欢
    • 2014-09-24
    • 2015-07-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2011-01-19
    相关资源
    最近更新 更多