簡體   English   中英

Hive JDBC Connection NoClassDefFoundError

[英]Hive JDBC Connection NoClassDefFoundError

我正在使用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 / local / hadoop / lib / *:。 CLASSPATH = $ CLASSPATH:/usr/local/apache-hive-2.1.1-bin/lib

我收到以下錯誤。

錯誤StatusLogger找不到log4j2配置文件。 使用默認配置:僅將錯誤記錄到控制台。 線程“main”中的異常java.lang.NoClassDefFoundError:org / apache / hadoop / hive / ql / metadata / HiveException org.apache.hive.service.cli.thrift.EmbeddedThriftBinaryCLIService。(EmbeddedThriftBinaryCLIService.java:33)at org。 apache.hive.jdbc.HiveConnection。(HiveConnection.java:163)atg.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)at java.sql.DriverManager.getConnection(DriverManager.java:664)at at java.ql.DriverManager.getConnection(DriverManager.java:247)位於sun.reflect的sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)的com.raad.ams.bean.HiveJdbc.main(HiveJdbc.java:17)中。 Native.MethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at com.intellij.rt.execution .application.AppMain.main(AppMain.java:147)由java.net.URLClassL引起的:java.lang.ClassNotFoundException:org.apache.hadoop.hive.ql.metadata.HiveException oader.findClass(URLClassLoader.java:381)位於java.lang.ClassLoader.loadClass(ClassLoader.java:424)的sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass (ClassLoader.java:357)

任何幫助,將不勝感激。

以下是我的建議:創建一個Maven / Gradle項目並在pom中添加Hive-jdbc。 它將下載所有依賴項。

否則請檢查: 依賴關系

您需要包含所有依賴項標簽下的jar。

我遇到了類似的問題,我們在Robot automation frameworkHive上遇到了noclassdeffound錯誤。 它看起來是jar兼容性問題。 我們通過將最新的hive jdbc maven依賴項添加到pom文件來解決它,並且它工作正常。 您應該檢查所有必需的Hive相關jar並相應地更新它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM