hive - java.lang.NoClassDefFoundError:org / apache / hadoop / hive / conf / HiveVariableSource

时间:2016-05-31 10:00:37

标签: hadoop hive

我安装了hadoop-2.7.1和hive-2.0.1。

这是我的目录结构:

~/hadoop-2.7.1/ # hadoop directory
~/hadoop-2.7.1/hive/apache-hive-2.0.1-bin # hive directory

我的问题是,当我在./hive中启动~/hadoop-2.7.1/hive/apache-hive-2.0.1-bin/bin/时,会发生以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/conf/HiveVariableSource
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveVariableSource
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more

我刚刚下载了apache-hive-2.0.1-bin.tar.gz并将其解压缩。我没有做任何其他配置。

我正在使用amazon ec2(ubuntu)并且所有hadoop节点都启动良好。

修改

这是我的hadoop-env.sh

...(omitted)...
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}

# A string representing this instance of hadoop. $USER by default.
export HADOOP_IDENT_STRING=$USER

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export PATH=${JAVA_HOME}/bin:${PATH}
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar:${HADOOP_CLASSPATH}

1 个答案:

答案 0 :(得分:0)

我有类似的问题,但问题不同。

我需要从 hadoop-env.sh 中删除HADOOP_ *定义。

在我的配置中,.bashrc中没有它们,但我将它们放入了/etc/profile.d /

中的文件中

我在这里找到了解决方案: http://sedeks.blogspot.com/2013/02/apache-hive-error-resolution.html