org.apache.hive.service.cli.HiveSQLException:java.lang.NoClassDefFoundError:org / apache / hadoop / ipc / CallerContext $ Builder

时间:2017-03-31 20:16:55

标签: java hadoop hive

我正在尝试将我的hive jdbc客户端连接到hiveserver2。  我正在使用以下maven

<dependency>
  <groupId>org.apache.hive</groupId>
  <artifactId>hive-service</artifactId>
  <version>1.2.1000.2.4.2.12-1</version>
</dependency>

hiveserver2.start() started my hiveserver2.

但是当我使用以下代码启动我的jdbc客户端时:

val con: Connection = DriverManager
      .getConnection("jdbc:hive2://localhost:10000/default", "", "")
    val stmt: Statement = con.createStatement
stmt.execute("create table if not exists student (id int))

它给了我以下例外:

  

org.apache.hive.service.cli.HiveSQLException:   java.lang.NoClassDefFoundError:   org / apache / hadoop / ipc / CallerContext $ Builder at   org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:256)at   org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:242)at   org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:254)

任何人都可以帮我确定这个或解决方案的原因。

提前致谢。

1 个答案:

答案 0 :(得分:0)

可能由于多种原因而发生:-

  1. 相应的jar将不可用,即 具有正确版本的hivejdbcdriver jar,例如:“ hive-jdbc-1.2.1.jar” 有时你可能会用 “ hive-jdbc-1.2.1-standalone.jar”(取决于您的用例方式 是)在librarys文件夹或.m2存储库中。
  2. 或者,它也可以 如果罐子可能没有添加到您的类路径中(为此添加一个条目 .classpath文件中的jar),具体取决于应用程序的方式 内置的。