beeline 可以连接到 jdbc:hive2:// 但无法连接到 jdbc:hive2://localhost:10000

问题描述

我正在为与 Hive 服务器的直线连接而苦苦挣扎。在我的服务器上(名字为Sun,所有操作都在这台服务器上),在hive文件夹中,我可以用./bin/beeline启动beeline然后连接hive:!connect jdbc:hive2://,然后我就成功连接到我的hive,我可以运行 hive-sql 语句。

但是,当我尝试 ./bin/beeline -u jdbc:hive2://localhost:10000 -n hive -p mypassword 时,我无法直接连接到 hive,并显示错误消息“错误:无法使用 JDBC Uri 打开客户端传输:jdbc:hive2://localhost:10000”

我已尝试关注许多帖子(例如 beeline cannot connect to hive2serverConnecting to Hive using BeelineCannot connect to beeline hive2),但仍然找不到解决方案。为什么我无法连接localhost:10000(或者它的这台Sun机器的IP)?

有谁知道我为什么会出现这样的错误以及如何解决它?

hadoop@Sun:/opt/apache-hive-3.1.2-bin$ ./bin/beeline
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/apache-hive-3.1.2-bin/lib/log4j-slf4j-impl- 
2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/hadoop-3.2.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Beeline version 3.1.2 by Apache Hive
beeline> !connect jdbc:hive2://
Connecting to jdbc:hive2://
Enter username for jdbc:hive2://: hive
Enter password for jdbc:hive2://: ****
21/06/14 23:02:10 [main]: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Hive Session ID = ae2fb753-de6d-4522-b128-770b1c358c8b
21/06/14 23:02:11 [main]: WARN session.SessionState: metastore_FILTER_HOOK will be ignored,since hive.security.authorization.manager is set to instance of HiveAuthorizerFactory.
Connected to: Apache Hive (version 3.1.2)
Driver: Hive JDBC (version 3.1.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://> show databases;
OK
+----------------+
| database_name  |
+----------------+
| default        |
| testwimp       |
| wimp           |
+----------------+
3 rows selected (1.978 seconds)
0: jdbc:hive2://> !connect jdbc:hive2://localhost:10000
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: hive
Enter password for jdbc:hive2://localhost:10000: ****
21/06/14 23:02:57 [main]: WARN jdbc.HiveConnection: Failed to connect to localhost:10000
Could not open connection to the HS2 server. Please check the server URI and if the URI is correct,then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0)
0: jdbc:hive2://>

解决方法

这里有详细解答:

https://www.programmersought.com/article/93495333620/

总之,检查 hiverserver2 是否启动,10000 端口号是否打开。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...