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