今天看了看HIVE的视频,迫不及待的按照hive试试看。
主要分几个步骤:
1、将HIVE下载下来。
2、将HIVE解压到目录中。
3、将关键变量设置上
A、export HIVE_HOME=/usr/local/hive-0.11.0/
B、export PATH=$PATH:HIVE_HOME/bin
4、启动hive
其中在开始启动的时候报错
[hadoop@namenode hive-0.11.0]$
[hadoop@namenode hive-0.11.0]$ ./bin/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:249)
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:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 3 more
开始不明白为什么,我这里应该是hadoop的变量和hive的变量都配置对了,经过从网上找到了解决方案,在hadoop_env.sh中的HADOOP_CLASSPATH变量设置的时候应该
HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hadoop/hadoop-1.2.1/lib
这样问题就顺利解决了。
我分析这里的原因是hive再启动的时候是直接将hadoop_env.sh中HADOOP_CLASSPATH的变量内容用起来,而不是我们环境变量中的HADOOP_CLASSPATH,于是导致找不到类。