【发布时间】:2018-07-09 02:50:27
【问题描述】:
我也是 Hadoop 和 Hive 的新手。我正在尝试通过创建 Java 项目并添加以下所有必需库来从 Java 连接到 Hive
$HIVE_HOME/lib/*.jar
$HADOOP_HOME/share/hadoop/mapreduce/*.jar
$HADOOP_HOME/share/hadoop/common/*.jar
以下是我连接 Hive 数据库的示例代码。
package com.stpl.hive.jdbc;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
public class HiveSample {
//private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException,
ClassNotFoundException {
// Register driver and create driver instance
Class.forName(driverName);
// get connection
Connection con = DriverManager.getConnection(
"jdbc:hive2://localhost:10000/default", "", "");
Statement stmt = con.createStatement();
stmt.execute("CREATE DATABASE newdatabase");
System.out.println("Database userdb created successwdbfully.");
con.close();
}
}
运行时出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at java.sql.DriverManager.isDriverAllowed(DriverManager.java:556)
at java.sql.DriverManager.getConnection(DriverManager.java:661)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at com.stpl.hive.jdbc.HiveSample.main(HiveSample.java:18)
我是否缺少要添加到项目中的任何其他 jar?请帮我解决这个错误。我正在使用 Hive 2.3.2 版本。请问我是否需要任何其他细节来解决它。
【问题讨论】:
标签: java jdbc hive derby noclassdeffounderror