Hive啓動報錯無法找到class— java.lang.NoClassDefFoundError

Hive啓動時,報錯無法找到class,如java.lang.NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/CommandNeedRetryException

        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:274)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.ql.CommandNeedRetryException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

        ... 3 more


Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveConf
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:274)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:153)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 3 more


分析:

這類問題很可能是由環境配置導致導致的問題,回想最近都沒有改動Hive的相關配置文件,動的只有hadoop 裏的配置。

想起之前用hadoop編譯Java 文件測試,修改過hadoop/conf/ 下的 hadoop-env.sh ,增加了以下內容:

export HADOOP_CLASSPATH=/home/suh/hadoop-1.2.1/myclass

確實問題就是由這個引發的,hive連接到hadoop集羣需要找到類,這個類包的路徑就是通過HADOOP_CLASSPATH 環境變量來指定的,我將其指向了個空目錄,啓動hive的時候當然就包各種類無法找到的問題。


解決方案:

修改配置文件hadoop/conf/ hadoop-env.sh,將HADOOP_CLASSPATH原來的值改爲如下,重啓hadoop集羣,然後啓動hive,啓動成功。

export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin

發佈了103 篇原創文章 · 獲贊 14 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章