【发布时间】: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 新手,您能解释一下如何检查驱动程序类是否在正确的类路径中。