柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù)集群中部署Hive
柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù)集群中部署Hive
hive安裝
1)把a(bǔ)pache-hive-3.1.3-bin.tar.gz上傳到Linux的/opt/software目錄下
2)解壓apache-hive-3.1.3-bin.tar.gz到/opt/module/目錄下面
tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/
3)修改apache-hive-3.1.3-bin.tar.gz的名稱為hive
mv /opt/module/apache-hive-3.1.3-bin/ /opt/module/hive
4)修改/etc/profile.d/my_env.sh,添加環(huán)境變量
sudo vim /etc/profile.d/my_env.sh
(1)添加內(nèi)容
#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin
(2)source一下
source /etc/profile.d/my_env.sh
5)初始化元數(shù)據(jù)庫(默認(rèn)是derby數(shù)據(jù)庫)
bin/schematool -dbType derby -initSchema
啟動(dòng)并使用Hive
1)啟動(dòng)Hive
bin/hive
2)使用Hive
hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"ss");
hive> select from stu;
觀察HDFS的路徑/user/hive/warehouse/stu,體會(huì)Hive與Hadoop之間的關(guān)系。
Hive中的表在Hadoop中是目錄;Hive中的數(shù)據(jù)在Hadoop中是文件。
注意:Hive默認(rèn)使用的元數(shù)據(jù)庫為derby。derby數(shù)據(jù)庫的特點(diǎn)是同一時(shí)間只允許一個(gè)客戶端訪問。如果多個(gè)Hive客戶端同時(shí)訪問,就會(huì)報(bào)錯(cuò)。由于在企業(yè)開發(fā)中,都是多人協(xié)作開發(fā),需要多客戶端同時(shí)訪問Hive,怎么解決呢?我們可以將Hive的元數(shù)據(jù)改為用MySQL存儲(chǔ),MySQL支持多客戶端同時(shí)訪問。
MySQL安裝
需要保證配置好Mysql數(shù)據(jù)庫集群,可以參考:https://blog.csdn.net/weixin_73195042/article/details/137126148
配置Hive元數(shù)據(jù)存儲(chǔ)到MySQL
配置元數(shù)據(jù)到MySQL
1)新建Hive元數(shù)據(jù)庫
登錄MySQL
mysql -uroot -p123456
#創(chuàng)建Hive元數(shù)據(jù)庫
mysql> create database metastore;
mysql> quit;
2)將MySQL的JDBC驅(qū)動(dòng)拷貝到Hive的lib目錄下。
cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
3)在$HIVE_\HOME/conf目錄下新建hive-site.xml文件
vim $HIVE_HOME/conf/hive-site.xml
添加如下內(nèi)容:
4)初始化Hive元數(shù)據(jù)庫(修改為采用MySQL存儲(chǔ)元數(shù)據(jù))
bin/schematool -dbType mysql -initSchema -verbose
驗(yàn)證元數(shù)據(jù)是否配置成功
1)再次啟動(dòng)Hive
bin/hive
2)使用Hive
hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"ss");
hive> select * from stu;
3)在Xshell窗口中開啟另一個(gè)窗口開啟Hive(兩個(gè)窗口都可以操作Hive,沒有出現(xiàn)異常)
hive> show databases;
hive> show tables;
hive> select * from stu;
Hive服務(wù)部署
在遠(yuǎn)程訪問Hive數(shù)據(jù)時(shí),客戶端并未直接訪問Hadoop集群,而是由Hivesever2代理訪問。由于Hadoop集群中的數(shù)據(jù)具備訪問權(quán)限控制,所以此時(shí)需考慮一個(gè)問題:那就是訪問Hadoop集群的用戶身份是誰?是Hiveserver2的啟動(dòng)用戶?還是客戶端的登錄用戶?
答案是都有可能,具體是誰,由Hiveserver2的hive.server2.enable.doAs參數(shù)決定,該參數(shù)的含義是是否啟用Hiveserver2用戶模擬的功能。若啟用,則Hiveserver2會(huì)模擬成客戶端的登錄用戶去訪問Hadoop集群的數(shù)據(jù),不啟用,則Hivesever2會(huì)直接使用啟動(dòng)用戶訪問Hadoop集群數(shù)據(jù)。模擬用戶的功能,默認(rèn)是開啟的。
柚子快報(bào)邀請(qǐng)碼778899分享:大數(shù)據(jù)集群中部署Hive
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。