Hive||beeline連線的InvalidURL

突突修發表於2018-03-09

今天在使用hive的client工具beeline時遇到了一個Invalid URL的錯誤。環境資訊如下:
hiveclient: bd23
hiveserver2: cloud011

hiveclient所在主機的jdk 1.7_51,hive 0.12和hadoop 2.3.0是從伺服器端拷貝過來的,環境變數一切OK.
執行連線報了Invalid URL的錯誤:
$ beeline
Beeline version 0.12.0 by Apache Hive
beeline> !connect jdbc:hive2://cloud011:10000
scan complete in 2ms
Connecting to jdbc:hive2://cloud011:10000
Enter username for jdbc:hive2://cloud011:10000:
Enter password for jdbc:hive2://cloud011:10000:
Error: Invalid URL: jdbc:hive2://cloud011:10000 (state=08S01,code=0)

開始的一段時間都在糾結這個jdbc的URL格式問題,後來在cloudra論壇上找到了一個方法,
直接呼叫的jdbc:hive2的驅動測試是正常的,證明CLASSPATH等環境變數沒有問題。

這時候感覺很可能不是客戶端的問題,矛頭指向伺服器端:

發現繫結的主機地址是localhost,而localhost的地址是127.0.0.1。這應該就是問題所在,從伺服器本地測試:

連線成功!

下面就要把引數改一下,然後重啟服務

重啟服務後檢查監聽地址,這次是正確的了。

再次在客戶端主機上測試連線:

成功。

cloudra論壇上下面有個類似的錯誤:
cannot connect by beeline
http://community.cloudera.com/t5/Batch-SQL-Apache-Hive/Cannot-connect-to-beeline/td-p/5723/page/3
看來當beeline連線失敗的時候都會報這個invalid URL的錯誤,確實給定位問題帶來了不小的困難。


相關文章