【问题标题】:HiveServer Class Not Found Exception未找到 HiveServer 类异常
【发布时间】:2015-08-01 16:28:51
【问题描述】:

我正在尝试从命令提示符运行 hive,它工作得非常好。但是当我尝试使用“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”;我仍然没有找到任何解决方案。

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

【问题讨论】:

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


    【解决方案1】:

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

    您可以通过以下方式检查它: 网络统计-ntulp | grep ':10000' 查看它,如果找到则终止该进程。

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

    顺便问一下你用的是哪个版本?

    【讨论】:

    • 我尝试了该建议,但没有进程或 hiveserver 监听此端口。我正在使用 Apache Hive 1.1.0
    【解决方案2】:

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

    hadoop-env.sh中添加这一行:

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

    我已经将 hive 的路径称为/usr/local/hive,因为我已经在该位置安装了 hive。将其更改为指向您的配置单元安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-09
      • 2016-09-13
      • 2016-10-01
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多