2

我试图在我的本地机器上以伪分布式模式运行 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,其中包含上述错误中显示的类。

有什么建议我在这里缺少什么吗?

4

2 回答 2

0

你有没有正确设置这些?并确保您也设置了这些变量:

export HIVE_HOME=/path/to/your/hive/folder
export PATH=$HIVE_HOME/bin:$PATH

为了避免这些问题,请使用 Hadoop 和 Hive 的最新稳定版本。

于 2013-06-23T23:46:46.320 回答
0

您应该输入 $HADOOP_HOME/conf,修改“hadoop-env.sh”文件。修改行“export HADOOP_CLASSPATH= $HADOOP_CLASSPATH :/home/itcast/hadoop-1.1.2/myclass” 像这样。

于 2015-09-10T16:55:44.290 回答