您的位置:首页 > 编程语言 > Java开发

Hive启动报错无法找到class— java.lang.NoClassDefFoundError

2015-08-16 16:23 573 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: