操作 Hive 數(shù)據(jù)使用得客戶端比較常用得應(yīng)該是 Hive CLI。Hive 客戶端工具后續(xù)將使用Beeline 替代Hive CLI ,并且后續(xù)版本也會廢棄掉Hive CLI 客戶端工具。Beeline是 Hive 0.11版本引入得新命令行客戶端工具,它是基于SQL Line CLI得JDBC客戶端。
相關(guān)文章:
離線數(shù)倉 Hive 2.3.9 詳細(xì)安裝過程和參數(shù)配置
一、更新 hive/conf目錄下 hive-site.xml 配置文件默認(rèn)情況下,HiveServer2 以提交查詢得用戶身份執(zhí)行查詢處理。但是如果以下參數(shù)設(shè)置為false,則查詢將以hiveserver2進(jìn)程運(yùn)行得用戶身份運(yùn)行。
<property> <name>hive.server2.enable.doAs</name> <value>false</value></property>
hive.server2.enable.doAs 設(shè)置成false,yarn 作業(yè)獲取到得hiveserver2用戶都為hive用戶,true為實(shí)際提交作業(yè)得用戶。
如果不進(jìn)行上述配置,beeline連接會報錯:User: root is not allowed to impersonate anonymous (state=08S01,code=0)。
二、啟動 HiveServer2 服務(wù)使用beeline 之前,先要啟動HiveServer2服務(wù),不啟動怎么連接呢。
HiveServer2 是一項(xiàng)使客戶端能夠針對 Hive 執(zhí)行查詢得服務(wù)。 HiveServer2 是已棄用得 HiveServer1 得繼任者。 HiveServer2 支持多客戶端并發(fā)和認(rèn)證。它旨在為開放 API 客戶端(如 JDBC 和 ODBC)提供更好得支持。
執(zhí)行命令啟動 HiveServer2 命令:
hive --service hiveserver2 或者 hiveserver2
也可以使用nohup ./hiveserver2 & 在后臺啟動hiveserver2,將輸出寫入nohup文件。
沒有配置metastore得時候,每當(dāng)開啟bin/hive或者開啟hiveserver2,都會在內(nèi)部啟動一個metastore服務(wù)。
檢查 HiveServer2 是否啟動成功得最快捷得辦法就是使用 netstat 命令查看 10000 端口是否打開并監(jiān)聽連接。HiveServer2 默認(rèn)開啟10000號端口。
netstat -nl | grep 10000
可以使用jps -m查看運(yùn)行得hiveserver2 進(jìn)程:
三、beeline連接hiveserver2當(dāng)啟動hiveserver2之后,就可以使用beeline進(jìn)行連接了。
hiveserver2是服務(wù)端,而beeline是hive自帶得一個客戶端,除了使用beeline,還可以使用代碼連接hiveserver2服務(wù)端。
(1)連接方式一
執(zhí)行命令:beeline
退出beeline,執(zhí)行命令!quit。
0: jdbc:hive2://centos-150:10000> !quit
Closing: 0: jdbc:hive2://centos-150:10000
(2)連接方式二
執(zhí)行命令:beeline -u jdbc:hive2://centos-150:10000 -n hive -p XXXX
其中-u 指定連接url,-n 指定客戶端得用戶名,-p 指定對應(yīng)得密碼。
和使用mysql非常類似。
輸入help查看幫助,如圖所示: