2012-11-11 45 views
1

我已经下载了最新的Hive稳定版,当我启动/ usr/local/hive/bin/hive时,它给了我这个错误:启动Hive时出错:java.lang.NoClassDefFoundError:org/apache/hadoop/hive/conf/HiveConf

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:264) 
at org.apache.hadoop.util.RunJar.main(RunJar.java:149) 
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:423) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
... 3 more 

Hadoop的DFS启动和工作,我已经改变/usr/local/hive/conf/hive-env.sh出口HADOOP_HOME。

有谁知道我还能做什么? 谢谢。

+0

这是因为您的类路径没有正确设置。您能否描述您如何安装Hive? –

+0

我从http://apache.rediris.es/hive/stable/hive-0.8.1.tar.gz 下载了Hive,然后移至/ usr/local并授予它777权限。 如果我在控制台中键入“echo $ CLASSPATH”,我会得到:/ usr/local/hive/bin /:/ usr/local/hive/lib /:/ usr/local/hadoop/bin /目录。 Hive希望找到哪个变量或路径? 谢谢。 – sergi123

回答

1

除了编辑hive-env.sh之外,还需要编辑你的bash_profile。

vim ~/.bash_profile 

以下行添加到您的.bash_profile

export HIVE_HOME=/usr/local/hive 
export PATH=$PATH:$HIVE_HOME/bin 

保存此文件,然后

source ~/.bash_profile 

如果仍然不工作,请提供您的hive-env.sh文件和蜂巢-site.xml文件。另外请告诉我,如果您使用derby或mysql作为metastore。

+0

对〜。/ bashrc进行了这些更改,但仍然无效。 hive-env.sh export HADOOP_HOME =/usr/local/hadoop hive-site.xml:conf目录中不存在。 另外我没有安装任何Metastore,它没有在这里说任何事情:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-InstallingHivefromaStableRelease 谢谢。 $ $ HADOOP_HOME /斌/ Hadoop的FS -mkdir/tmp目录 $ $ HADOOP_HOME /斌/ Hadoop的FS -mkdir /用户/蜂巢/仓库 $:因为它说,在入门 – sergi123

+0

对不起,我有metastore,创造了它$ HADOOP_HOME/bin/hadoop fs -chmod g + w/tmp $ $ HADOOP_HOME/bin/hadoop fs -chmod g + w/user/hive/warehouse – sergi123

+0

您能否回应HADOOP_HOME和HIVE_HOME。由于您没有专门为mysql元数据配置,这意味着您正在使用derby(否则问题可能与我们现在可以避免的mysql连接器有关)。你可以请把这个添加到bash_profile中,并告诉我会发生什么? –

0

解决移动:

export HADOOP_CLASSPATH=/usr/local/hbase/hbase-0.94.1.jar:/usr/local/hbase/hbase-0.94.1-test.jar:/usr/local/hbase/conf:/usr/local/hbase/lib/zookeeper-3.4.3.jar:/usr/local/hive/lib/*.jar:/usr/local/hbase 

/usr/local/hadoop/conf/hadoop-env.sh的〜/ .bashrc

感谢您的帮助。