gpt4 book ai didi

java - 无法连接到hive server2(SQL异常、thrift传输异常等)

转载 作者:行者123 更新时间:2023-12-01 08:55:19 25 4
gpt4 key购买 nike

我们尝试使用 JAR 连接到 hive server2 数据库:

  1. hadoop-common-2.7.1.2.3.2.0-2950.jar
  2. hive-jdbc-1.2.1.2.3.2.0-2950-standalone.jar

我们将这 2 个 jar 集成到 Eclipse 项目中,连接到 hive 数据库的代码是:

Connection con=null;
try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
StringBuffer jdbcConnectionString = new StringBuffer();
jdbcConnectionString.append("jdbc:hive2://10.205.64.70:10000/default");
con = DriverManager.getConnection(jdbcConnectionString.toString(),"********","********");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

但是当我们执行时,我们收到如下错误

java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://10.205.64.70:10002/imsone: Invalid status 72
Could not open client transport with JDBC Uri: jdbc:hive2://10.205.64.70:10002/imsone: Invalid status 72
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:209)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at dummy.connectToHive.connect(connectToHive.java:40)
at dummy.connectToHive.main(connectToHive.java:16)
Caused by: org.apache.thrift.transport.TTransportException: Invalid status 72
at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)
at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:184)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:307)
at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:227)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:182)
... 5 more

有人可以帮我解决这个问题吗?

最佳答案

错误 72 是一个错误的 url 问题。您的 hive2 服务器是否以 HTTP 模式运行?

HiveServer2 以 HTTP 模式运行时的连接 URL 为:-

jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>

其中:- 是 hive-site.xml 中配置的相应 HTTP 端点。默认值为 cliservice。

HTTP 传输模式的默认端口为 10001。

您可以尝试以下网址吗:

jdbc:hive2://10.205.64.70:10001/default;transportMode=http;httpPath=cliservice

关于java - 无法连接到hive server2(SQL异常、thrift传输异常等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42067483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com