【发布时间】:2016-09-21 22:24:06
【问题描述】:
我已经使用 JDBC api 连接到 HIVE2,引用 here,它是成功的,所以为了方便访问,我想围绕它创建一个 webapp,使用 JSP 作为前端页面来输入服务器名称和查询。虽然所有参数都从 JSP 页面正确解析到 servlet,但在连接到所需的 HIVE 服务器时会引发错误 将 libthrift 和 hive JARS 放在 WEB-INF/lib 目录中,我将它们放在 WEB-INF/lib 和类路径中。
问题在于 hive jar 首先出现在 WEB-INF/lib 中,并且由于它没有“org.apache.thrift.protocol.TProtocol.getScheme()”方法,所以我一直没有收到这样的方法错误。我提到了 here 和 here 并将 libthrift jar 移动到 WEB-INF/classes 但它有帮助:
Jar 版本:libthrift-0.9.3 和 hive-0.4.1
【问题讨论】:
-
你对 Hive 版本是认真的吗?? V0.4.1于2009发布; Cloudera 发行版随 V1.2 一起发布(而且他们非常谨慎);并且 V2.0 可用。
-
@SamsonScharfrichter:嗨,我指的是 link 上下文中的 Hive2,我们的 hive 服务器版本是“hive-0.13”
-
Hive2 通常指的是“HiveServer2”,即第 2 代 JDBC 服务。与 Hive 版本无关。
-
好的...但它之前工作正常...只是在尝试构建网络应用程序之后它失败了
-
我猜 WEB-INF/lib 中的排序是问题,因为 hive-0.4.1 jar 没有“Tprotocol.getScheme()”方法
标签: java tomcat hadoop jdbc hive