多是配置的問題。java
我將hive.metastore.uris從配置文件中註釋掉以後解決了hiveserver2啓動成功但沒法經過beeline鏈接的問題。node
[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>
---------------------------------------------------------mysql
問題過程:sql
我建立了4臺centos虛擬機,node03作hive的mestore和hiveserver2節點,node04作hive客戶端。centos
在node使用hiveserver2命令以後,在hive04使用beeline鏈接時出現沒法鏈接的問題:spa
[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端口的狀態:.net
發現10000端口已經啓用了,這就很奇怪了。code
想了一下子,嘗試把metastore也啓動起來看看,啓動metastore以後發現node04竟然能夠鏈接了!server
本身對hive-site.xml配置也不是很熟悉,可是以前搭建hive的時候確實遇到過hiverserver2沒法啓動的問題,當時好像刪掉了什麼東西。xml
既然metastore的配置和hiveserver2的配置有關聯(?),那就去掉一個試試。
因而把node03中hive-site.xml裏的metastore的配置去掉(其實hive服務端好像也不必配置metastore uri,只要客戶端知道在哪不就好了嗎),從新啓動hiveserver2,在node04再次用beeline鏈接,居然能夠了???