可能是配置的问题。
我将hive.metastore.uris从配置文件中注释掉之后解决了hiveserver2启动成功但无法通过beeline连接的问题。
[root@node03 conf]# vi hive-site.xml <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive_remote/warehouse</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node01/hive_remote?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>node03</value> </property> <!-- <property> <name>hive.metastore.uris</name> <value>thrift://node03:9083</value> </property> --> </configuration>
---------------------------------------------------------
问题过程:
我创建了4台centos虚拟机,node03做hive的mestore和hiveserver2节点,node04做hive客户端。
在node使用hiveserver2命令之后,在hive04使用beeline连接时出现无法连接的问题:
[root@node04 conf]# beeline -u jdbc:hive2://node03:10000/default -n root Connecting to jdbc:hive2://node03:10000/default Error: Could not open client transport with JDBC Uri: jdbc:hive2://node03:10000/default: java.net.ConnectException: Connection refused (Connection refused) (state=08S01,code=0) Beeline version 1.2.2 by Apache Hive 0: jdbc:hive2://node03:10000/default (closed)>
首先想到去查看10000端口的状态:
发现10000端口已经启用了,这就很奇怪了。
想了一会儿,尝试把metastore也启动起来看看,启动metastore之后发现node04居然可以连接了!
自己对hive-site.xml配置也不是很熟悉,但是之前搭建hive的时候确实遇到过hiverserver2无法启动的问题,当时好像删掉了什么东西。
既然metastore的配置和hiveserver2的配置有关联(?),那就去掉一个试试。
于是把node03中hive-site.xml里的metastore的配置去掉,重新启动hiveserver2,在node04再次用beeline连接,竟然可以了???