HiveServer类未找到异常

时间:2015-05-20 12:17:47

标签: hadoop hive classnotfoundexception hiveql java.lang.class

我正在尝试从命令提示符运行配置单元它正常工作。但是当我尝试使用“hive --service hiveserver”命令运行hiveserver时,我得到以下异常。

Starting Hive Thrift Server
Exception in thread "main" java.lang.ClassNotFoundException: org.apache.hadoop.hive.service.HiveServer
    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:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:214)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

然后我尝试使用命令“hive --service hiveserver2”;我仍然没有找到任何解决方案。

任何人都可以为这个问题提出解决方案。

2 个答案:

答案 0 :(得分:1)

可能是另一个已经侦听端口10000的进程(另一个hiveserver)。

你可以通过以下方式检查: netstat -ntulp | grep':10000'看到它,如果发现然后杀死这个过程。

否则在另一个端口上启动服务器。

顺便提一下你使用哪个版本?

答案 1 :(得分:0)

当我在hadoop类路径中找不到hive-service-*.jar时,我发生了这个错误。只需将hive-service-*.jar复制到hadoop lib文件夹或export classpath中的hadoop-env.sh即可。我已经提到了如何在下面添加classpath。

hadoop-env.sh中添加此行:

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hive/lib/hive-*.jar

我已经提到了hive的路径为/usr/local/hive,因为我在该位置安装了hive。将其更改为指向您的蜂巢安装。