java.lang.classnotfoundexception:eclipse中的org.apache.hadoop.hive.jdbc.hivedriver

jaql4c8m  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(1103)

我还添加了usr/local/share/hadoop/mapreduce/*jars、usr/local/hadoop/common、hive-exec-.jar、hive-metastore-.jar和hive-jdbc-.jar的所有jars文件。
Hive终端工作良好。
我的代码是:

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)
rdlzhqv9

rdlzhqv91#

在您的代码中,没有正确提到配置单元的驱动程序类。应该是这样的
private static string drivername=“org.apache.hive.jdbc.hivedriver”;
如果上述更改不能解决您的问题,则意味着jar文件不在需要显式添加的类路径上。
对于基于maven的项目,您只需添加hivejdbcjar的依赖项。
如果您没有使用maven,那么在eclipse中执行以下步骤:
选择项目->构建路径->配置构建路径->库->添加外部jar->选择配置单元jdbc/hiveexec/hiveservice jar的路径
除了hivejar之外,您还需要添加其他依赖jar作为http核心、http客户机、hadoop公共、commons日志、slf4j jar。

xnifntxz

xnifntxz2#

确定你想要哪个jar(Hive)。。因为它有不同的版本旧的verisonjar是

org.apache.hadoop.hive.jdbc.HiveDriver

这是MVN报告
最新的jar是 org.apache.hive.jdbc.HiveDriver 这是新的设置
请检查您的依赖关系

相关问题