大數據-Hive 的三種交互方式
- 2019 年 12 月 26 日
- 筆記
2.7. Hive 的三種交互方式
第一種交互方式 bin/hive
cd /export/servers/apache-hive-3.1.0-bin/ bin/hive
創建一個資料庫
create database if not exists mytest;
第二種交互方式 HiveServer2
hive官方推薦使用hiveserver2的這種交互方式,需要我們啟動hiveserver2這個服務端,然後通過客戶 端去進行連接
啟動服務端(前台啟動命令如下)
cd /export/servers/apache-hive-3.1.0-bin/ bin/hive --service hiveserver2
重新開一個窗口啟動我們的客戶單進行連接
cd /export/servers/apache-hive-3.1.0-bin bin/beeline !connect jdbc:hive2://node03.hadoop.com:10000
進行連接,用戶名為hadoop 密碼為123456出現以下錯誤

解決方法:關閉hive的服務端,在hadoop的配置文件core-site.xml當中添加以下兩行配置,然後重啟 hdfs以及yarn集群
<property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>root</value> </property>
重新進行啟動hive的服務端,然後繼續使用客戶端進行連接即可
啟動服務端
cd /export/servers/apache-hive-3.1.0-bin/ bin/hive --service hiveserver2
開一個新的xshell會話窗口,客戶端進行連接
cd /export/servers/apache-hive-3.1.0-bin bin/beeline !connect jdbc:hive2://node03.hadoop.com:10000
第三種交互方式:使用sql語句或者sql腳本進行交互
不進入hive的客戶端直接執行hive的hql語句
cd /export/servers/apache-hive-3.1.0-bin bin/hive -e "create database if not exists mytest;"
或者我們可以將我們的hql語句寫成一個sql腳本然後執行
cd /export/servers vim hive.sql
create database if not exists mytest; use mytest; create table stu(id int,name string);
通過hive -f 來執行我們的sql腳本
hive -f /export/servers/hive.sql

