我正在使用Hive 2.1.1并尝试创建连接。以下是我正在尝试的代码:
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://", "", "");
Statement stmt = con.createStatement();
stmt.executeQuery("CREATE DATABASE userdb");
System.out.println("Database userdb created successfully.");
con.close();
}
这些是我在bashrc中声明的类路径:
CLASSPATH = $ CLASSPATH:/usr/lib/hive/lib/hive-jdbc-2.1.1.jar CLASSPATH = $ CLASSPATH:在/ usr /本地/ Hadoop的/ lib目录/ * :. CLASSPATH = $ CLASSPATH:/usr/local/apache-hive-2.1.1-bin/lib
我收到以下错误。
ERROR StatusLogger找不到log4j2配置文件。使用默认值 配置:仅将错误记录到控制台。线程中的异常 “main”java.lang.NoClassDefFoundError: org / apache / hadoop / hive / ql / metadata / HiveException at org.apache.hive.service.cli.thrift.EmbeddedThriftBinaryCLIService。(EmbeddedThriftBinaryCLIService.java:33) 在 org.apache.hive.jdbc.HiveConnection。(HiveConnection.java:163) 在org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)at java.sql.DriverManager.getConnection(DriverManager.java:664)at java.sql.DriverManager.getConnection(DriverManager.java:247)at com.raad.ams.bean.HiveJdbc.main(HiveJdbc.java:17)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 引起:java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.metadata.HiveException at java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)at at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
任何帮助都将不胜感激。
答案 0 :(得分:1)
答案 1 :(得分:0)
我遇到了类似的问题,我们在noclassdeffound
和Robot automation framework
上遇到Hive
错误。它看起来是jar兼容性问题。我们通过将最新的hive jdbc
maven依赖项添加到pom文件来解决它,并且它有效。
您应该检查所有必需的Hive相关的jar并相应地更新它们。