hive启动时报Exception in thread "main" java.lang.NoClassDefFoundError错误

0 报错如下:

[root@hadoop3 ~]# hive
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:205)
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.Cl

1 报错原因:

之间在做 eclipse通过ant下写 hbase api来调用远程hbase时,出现过调用找不到hbase包的问题,

在 hadoop-env.sh中,那时候引入hbase包写法为:

export HADOOP_CLASSPATH=opt/hbase-0.98.12/lib/*

这么写将上面的$HADOOP_CLASSPATH覆盖掉,因此会报错,现在修改为:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/hbase-0.98.12/lib/*

具体脚本见连接  hbase java api, NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguratio

编辑

修改好后就可以正常启动hive了,上面的报错不是hive的问题。

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2279346