Hive 安装问题:NoClassDefFoundError
Posted
技术标签:
【中文标题】Hive 安装问题:NoClassDefFoundError【英文标题】:Hive Installation issues: NoClassDefFoundError 【发布时间】:2013-06-23 23:31:19 【问题描述】:我正在尝试在本地计算机上以伪分布式模式运行 Hadoop 和 Hive。我已经运行了 hadoop,但是当我尝试运行 Hive 时,它给了我以下错误
`Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift/TException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:266)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
Caused by: java.lang.ClassNotFoundException: org.apache.thrift.TException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
... 3 more `
我已尝试调试问题,但找不到丢失的内容。 我的 HADOOP_HOME、HADOOP_CLASSPATH 设置正确。此外,HADOOP_CLASSPATH 包含 libthrift-0.9.0.jar,其中包含上述错误中显示的类。
有什么建议吗?
【问题讨论】:
【参考方案1】:您是否正确设置了这些?并确保您也设置了这些变量:
export HIVE_HOME=/path/to/your/hive/folder
export PATH=$HIVE_HOME/bin:$PATH
为了避免这些问题,请使用 Hadoop 和 Hive 的最新稳定版本。
【讨论】:
是的,我已经在 bashrc 中正确设置了所有这些变量。这些包括 HADOOP_HOME、HBASE_HOME、HIVE_HOME、HADOOP_CONF_DIR、HIVE_CONF_DIR、HIVE_CONF_DIR。我下载了 Hive 的稳定版本,不确定 Hadoop,因为我已经有一段时间没有下载 Hadoop了。 您是否已将 hive/lib 添加到您的路径中? 否,但它不是由 hive 脚本自动添加的吗?另外,你的意思是环境变量 $PATH 吗?我不明白为什么我们需要将它添加到 PATH 中?但无论如何,hive 脚本会自动将 HIVE_LIB 路径中的所有 jar 包含到 HADOOP_CALSSPATH 中。 添加了哪里(到什么)?是的环境变量路径。您需要将它添加到 PATH 以便它在您的“机器”类路径中可用。 HADOOP_CALSSPATH 本身是不够的。 好吧,我也这样做了。但这并没有改变这种情况。我仍然得到同样的错误。这就是我的 bashrc 文件现在的样子。 export HADOOP_HOME="/home/kannu/Desktop/hadoop-1.0.4" export HADOOP_PREFIX=$HADOOP_HOME export HADOOP_CONF_DIR="$HADOOP_PREFIX/conf" export HABSE_HOME="$HADOOP_PREFIX/hbase-0.94.8" export HIVE_HOME="$HADOOP_PREFIX /hive/trunk/build/dist" export HIVE_CONF_DIR=$HIVE_HOME/conf export HIVE_LIB=$HIVE_HOME/lib export PATH=$HADOOP_PREFIX/bin:$PATH export PATH=$HBASE_HOME/bin:$PATH export PATH=$HIVE_HOME/bin :$PATH 导出 PATH=$HIVE_LIB:$PATH【参考方案2】:你应该进入$HADOOP_HOME/conf,修改"hadoop-env.sh"文件。修改行"export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/home/itcast/hadoop-1.1.2 /myclass”像这样。
【讨论】:
以上是关于Hive 安装问题:NoClassDefFoundError的主要内容,如果未能解决你的问题,请参考以下文章
UCanAccess 出现 ClassNotFoundException 和 NoClassDefFound 错误
XStream noClassDefFound 错误取决于运行时
Android 应用程序在 SDK-tools 更新版本后崩溃(NoClassDefFound,工具版本 22)
XML 代码运行正常,但 junit 因 NoClassDefFound 而失败