簡述Hive的三種啟動方式及內建服務
一 Thrift服務
通過hiveServer/hiveServer2啟動Thrift服務,客戶端連線Thrift服務訪問Hive資料庫(JDBC,JAVA等連線Thrift服務訪問Hive)。
<property> <name>hive.server2.thrift.port</name> <value></value> <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>127.0.0.1</value> <description>Bind host on which to run the HiveServer2 Thrift service.</description> </property> <property> <name>hive.server2.enable.doAs</name> <value>false</value> <description> Setting this property to true will have HiveServer2 execute Hive operations as the user making the calls to it. 如果為True:Hive Server會以提交使用者的身份去執行語句 如果為False:會以hive server daemon的admin user來執行語句 </description> </property>
啟動Thrift服務:
hive --service hiveserver2
測試Thrift服務:
新開一個命令列視窗,執行beeline命令:
二 Hive的三種啟動方式
1. hive命令列模式
進入hive安裝目錄下,輸入命令:
或者輸入命令:
hive --service cli
用於Linux平臺命令列查詢,查詢語句基本和MySQL查詢語句類似。
2. hive web介面的啟動模式
Hive 2.0 以後才支援Web UI的
bin/hive –service hwi (& 表示後臺執行)
用於通過瀏覽器來訪問hive,感覺沒多大用途,瀏覽器訪問地址是:
127.0.0.1:9999/hwi
3. hive 遠端服務 (埠號10000) 啟動方式 (Thrift服務)
bin/hive –service hiveserver2 &(&表示後臺執行)
用java,python等程式實現通過jdbc等驅動的訪問hive就用這種起動方式了,這個是程式設計師最需要的方式了
三 Hive幾種內建服務
執行命令:
bin/hive --service help
我們可以看到上邊輸出項Server List,裡邊顯示出Hive支援的服務列表,beeline cli help hiveserver2 hiveserver hwi jar lineage metastore metatool orcfiledump rcfilecat。
下面介紹最有用的一些服務
1、cli:是Command Line Interface 的縮寫,是Hive的命令列介面,用的比較多,是預設服務,直接可以在命令列裡使用。
3、hwi:其實就是hive web interface的縮寫它是hive的web藉口,是hive cli的一個web替代方案。
2、hiveserver:這個可以讓Hive以提供Thrift服務的伺服器形式來執行,可以允許許多個不同語言編寫的客戶端進行通訊,使用需要啟動HiveServer服務以和客戶端聯絡,
我們可以通過設定HIVE_PORT環境變數來設定伺服器所監聽的埠,在預設情況下,埠號為10000,這個可以通過以下方式來啟動Hiverserver:
bin/hive --service hiveserver -p 10002
其中-p引數也是用來指定監聽埠的
4、jar:與hadoop jar等價的Hive介面,這是執行類路徑中同時包含Hadoop 和Hive類的Java應用程式的簡便方式
5、metastore:在預設的情況下,metastore和hive服務執行在同一個程序中,使用這個服務,可以讓metastore作為一個單獨的程序執行。
我們可以通過METASTOE——PORT來指定監聽的埠號