先介紹一下本地模式和遠程模式:
當使用本地模式時,Hive將其元數(shù)據(jù)存儲在本地數(shù)據(jù)庫(例如MySQL)中,使其成為一個獨立的數(shù)據(jù)處理系統(tǒng)。在本地模式中,Hive的配置文件(hive-site.xml)中的連接URL指向本地數(shù)據(jù)庫,而不是嵌入式模式中使用的Derby數(shù)據(jù)庫。此模式適用于小規(guī)模的數(shù)據(jù)處理需求,通常在單個節(jié)點上運行。
在遠程模式下,Hive被配置為通過Thrift服務與遠程的Hive服務器進行通信。這允許將Hive設置為分布式系統(tǒng),其中Hive客戶端和Hive服務器可以分布在不同的節(jié)點上。在這種情況下,Hive客戶端通過Thrift協(xié)議與Hive服務器通信,執(zhí)行查詢和操作。遠程模式適用于需要處理大規(guī)模數(shù)據(jù)集的場景,可以充分利用分布式計算資源。
1.本地模式的安裝與配置:
該模式需將hive-site.xml中的ConnectionURL指向mysql,并配置好驅(qū)動名、數(shù)據(jù)庫連接賬號,在slave1下
(1)、Hive的配置:
1.配置hive-site.xml:
vi ?hive-site.xml
<property>
? ? <name>hive.metastore.warehouse.dir</name> ?
? ? <value>/warehousedir/home</value> ?
</property>?
<property>
? ? ? ? ?<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.222.174:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
? ? <name>javax.jdo.option.ConnectionDriverName</name>
? ? <value>com.mysql.jdbc.Driver</value>
</property>
<property>
? ? <name>javax.jdo.option.ConnectionUserName</name>
? ? <value>root</value>
</property>
<property>
? ? <name>javax.jdo.option.ConnectionPassword</name>
? ? <value>123456</value>
</property>
<property>
? ? <name>hive.metastore.schema.verification</name>
? ? <value>false</value>
</property>
(前提:要啟動hadoop:cd/usr/hadoop/hadoop-2.7.3 接著sbin/start-all.sh)
2.啟動hive:
bin/hive ?--service?
3.遠程模式的安裝與配置:
(slave2安裝mysql,hive做本地模式;slave1作為hive server;slave2作為客戶端)
(1)slave2中安裝mysql
1. (安裝MySQL的引導包)
(1). yum install -y wget ??
(2). wget -I -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm ?
(3). ls查看,若沒有則重新安裝一次)?
2. 安裝文件:rpm -ivh mysql57-community-release-el7-8.noarch.rpm
3. 安裝MySQL服務器:yum -y install mysql-community-server
4. 安裝補?。?strong>rpm?--import?https://repo.mysql.com/RPM-GPG-KEY-mysql-2022)
5. 重載被MySQL安裝修改了的文件:systemctl daemon-reload
6. 首次啟動MySQL:systemctl start ?mysqld.service
查看MySQL的運行狀態(tài):systemctl status ?mysqld.service
7. 修改數(shù)據(jù)庫密碼及密碼規(guī)則:
(1). 查密碼:grep "password" /var/log/mysqld.log (查看的是臨時密碼)
(2). 登錄MySQL:mysql -uroot –p ?(-p后面加臨時密碼,臨時密碼與
p之間沒有間隔)
(3). 修改密碼規(guī)則:set global validate_password_policy=0;
? ? ? ? ? ? ? ? set global validate_password_mixed_case_count=0;
? ? ? ? ? ? ? ? set global validate_password_number_count=3;
? ? ? ? ? ? ? ? set global validate_password_special_char_count=0;
? ? ? ? ? ? ? ? set global validate_password_length=1;
(4). 修改密碼:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
(5). quit 或\q退出后重新登錄;
8. 讓別的服務器遠程訪問mysql:
(1).提高權(quán)限:create user ‘root'@‘%' identified by'123456';
? ? ? ? ? ? ? ? ? ? ?GRANT ALL PRIVILEGES ON *.* TO ‘root'@‘%'WITH GRANT OPTION;
(2).刷新權(quán)限:flush privileges;
(3).修改mysql數(shù)據(jù)庫中的user表:update user set host = '%' where user?= 'root’; (若已經(jīng)改好則會出錯,用Ctrl+c退出即可)
(4).驗證是否修改好:use mysql;
? ? ? ? ? ? ? ? ? ? ? ? ?select host, user from user;
(2)將hive2.1.1傳到master:/opt/soft
mkdir ?/usr/hive
tar ?-zxvf ? /opt/soft/hive-2.1.1-bin.tar.gz ?-C ? /usr/hive
(4)配置環(huán)境變量:
vi /etc/profile:
#hive
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export PATH=$PATH:$HIVE_HOME/bin
(5) 解決jar包依賴和版本沖突
(在master)cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
上傳mysql-connector-java-5.1.7-bin.jar包至/usr/hive/apache-hive-2.1.1-bin/lib
(5)分發(fā)給其他三臺
scp ?–r ?/usr/hive master:/usr
(6)配置hive-env.sh:
cd $HIVE_HOME/conf
cp ?hive-env.sh.template ? hive-env.sh
vi ?hive-env.sh
HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
(7)配置hive-site.xml:
vi ?hive-site.xml
(1).slave1 作為服務端(處理元數(shù)據(jù)):
hive-site.xml配置如下:<configuration> <property> ? ? <name>hive.metastore.warehouse.dir</name> ? ? <value>/warehousedir/home</value> </property> <property> ? <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value> </property> <property> ? <name>javax.jdo.option.ConnectionDriverName</name> ? <value>com.mysql.jdbc.Driver</value> </property> <property> ? <name>javax.jdo.option.ConnectionUserName</name> ? <value>root</value> </property> <property> ? <name>javax.jdo.option.ConnectionPassword</name> ? <value>123456</value> </property> <property> ? <name>hive.metastore.schema.verification</name> ?<value>false</value> </property> <property> ? <name>datanucleus.schema.autoCreateAll</name> ? <value>true</value> </property> <property> ? ? <name>hive.exec.scratchdir</name> ? ? <value>/tmp/hive</value> </property> <property> ? ? <name>hive.exec.local.scratchdir</name> ? ? <value>/tmp/hive/local</value> </property> <property> ? ? <name>hive.downloaded.resources.dir</name> <value>/tmp/hive/resources</value> </property> </configuration>
(2)slave2 作為客戶端配置hive ??
<configuration>
<property>
? ? <name>hive.metastore.warehouse.dir</name>?
? ? <value>/warehousedir/home</value>?
</property>
<property>
? ? <name>hive.metastore.local</name>?
? ? <value>false</value>?
</property>
<property>
? ? <name>hive.metastore.uris</name>?
? ? <value>thrift://slave1:9083</value>?
</property>
<property>
? ? <name>hive.exec.scratchdir</name>
? ? <value>/tmp/hive</value>
? </property>
? <property>
? ? <name>hive.exec.local.scratchdir</name>
? ? <value>/tmp/hive/local</value>
? </property>
? <property>
? ? <name>hive.downloaded.resources.dir</name>
? ? <value>/tmp/hive/resources</value>
? </property>
</configuration>
(8)初始化數(shù)據(jù)庫(或不需要)
schematool -dbType mysql -initSchema
(9)啟動hive
(slave1)bin/hive --service metastore
(slave2)bin/hive
在slave2中打開hive,此時通過slave1 遠程調(diào)用mysql,slave1處于元數(shù)據(jù)服務掛起狀態(tài)
至此,本地部署和遠程部署已全部完成文章來源:http://www.zghlxwxcb.cn/news/detail-808407.html
xml文件也已全部打包好,放在文章頂部,需要者自取文章來源地址http://www.zghlxwxcb.cn/news/detail-808407.html
到了這里,關(guān)于Hive數(shù)據(jù)庫:嵌入、本地、遠程全攻略(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!