一文帶你了解數(shù)據(jù)倉(cāng)庫(kù)HIVE的安裝過程

HIVE是一個(gè)數(shù)據(jù)倉(cāng)庫(kù),該倉(cāng)庫(kù)基于hadoop框架,可以將存在hdfs上的結(jié)構(gòu)化數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表。HIVE可以使用類SQL語(yǔ)句來(lái)處理結(jié)構(gòu)化數(shù)據(jù)(查詢數(shù)據(jù)),也即是把結(jié)構(gòu)化數(shù)據(jù)當(dāng)成一張類mysql中的表,采用SQL語(yǔ)句查詢。

結(jié)構(gòu)化數(shù)據(jù)即行數(shù)據(jù),可以用二維表結(jié)構(gòu)來(lái)表現(xiàn)的數(shù)據(jù);非結(jié)構(gòu)化數(shù)據(jù)即不能二維表結(jié)構(gòu)來(lái)表現(xiàn)的數(shù)據(jù),包括所有格式的辦公文檔、文本、圖片、XML、HTML、各類報(bào)表、圖像和音頻/視頻信息。

Hive 的本質(zhì)是將 SQL 語(yǔ)句轉(zhuǎn)換為 MapReduce 任務(wù)運(yùn)行,使不熟悉 MapReduce 的用戶很方便地利用 HQL 處理和計(jì)算 HDFS 上的結(jié)構(gòu)化的數(shù)據(jù),適用于離線的批量數(shù)據(jù)計(jì)算。

HIVE官網(wǎng)

官網(wǎng)介紹:

The Apache Hive ? data warehouse software facilitates reading,writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.

1 MySQL 安裝

HIVE默認(rèn)把元數(shù)據(jù)放在內(nèi)嵌的 Derby 數(shù)據(jù)庫(kù)中,但由于Derby數(shù)據(jù)庫(kù)只能允許一個(gè)會(huì)話連接,不適用實(shí)際生產(chǎn)環(huán)境中,所以本文采用MySQL存儲(chǔ)HIVE的元數(shù)據(jù)。

MySQL下載地址

采用yum工具安裝MySQL

#下載mysql80-community-release-el8-1.noarch.rpm
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
#安裝rpm軟件包
yum localinstall mysql80-community-release-el8-1.noarch.rpm
#安裝mysql服務(wù)端
yum install mysql-community-server
#啟動(dòng)mysql服務(wù)端,并設(shè)置開機(jī)啟動(dòng)
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload
#登陸mysql客戶端之前先修改root賬戶的默認(rèn)密碼
#日志文件中查看mysql的root用戶默認(rèn)密碼
grep 'temporary password' /var/log/mysqld.log
#mysql客戶端登陸,填寫上邊命令取出的密碼,三個(gè)選一個(gè)。
mysql -uroot -p
#修改密碼,密碼必須要有大小寫和數(shù)字。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pass9999';
修改好密碼,要重新啟動(dòng)服務(wù)端。
systemctl restart mysqld
#登陸客戶端
mysql -uroot -p Pass9999
#修改root的遠(yuǎn)程訪問權(quán)限,即可遠(yuǎn)程連接mysql。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Pass9999' WITH GRANT OPTION;
#刷新MySQL的系統(tǒng)權(quán)限
FLUSH PRIVILEGES;
在這里插入圖片描述

mysql存貯hive的元數(shù)據(jù),元數(shù)據(jù)都有哪些表,每個(gè)表具體含義如下:

在這里插入圖片描述
SELECT * FROM `VERSION`
SELECT * FROM `DBS`
SELECT * FROM `TBLS`
  • version 表:hive版本信息


    在這里插入圖片描述
  • DBS表:hive數(shù)據(jù)庫(kù)相關(guān)的元數(shù)據(jù)表


    在這里插入圖片描述
  • TBLS表:hive表和視圖相關(guān)的元數(shù)據(jù)表


    在這里插入圖片描述

2 HIVE 安裝

我下載的軟件包為:apache-hive-3.1.2-bin.tar.gz,下載地址可以從hadoop集群搭建那篇文章中找。

# 解壓縮/usr/local下
tar -zxvf apache-hive-3.1.2-bin.tar.gz /usr/local
#重命名
mv apache-hive-3.1.2-bin hive-3.1.2
#配置環(huán)境變量
vi /etc/profile
#在文檔末尾添加如下配置
export HIVE_HOME=/usr/local/hive-3.1.2
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$HIVE_HOME/bin:$PATH
#立即生效環(huán)境變量
source /etc/profile
#cd 到文件下
/usr/local/hive-3.1.2/conf
#復(fù)制一份文件為hive-site.xml
cp hive-default.xml.template hive-site.xml
#清空hive-site.xml的內(nèi)容,添加如下內(nèi)容
<configuration>
    <property><!--數(shù)據(jù)庫(kù)連接地址,使用MySQL存儲(chǔ)元數(shù)據(jù)信息,創(chuàng)建hive DB-->
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
    </property>
    <property><!--數(shù)據(jù)庫(kù)驅(qū)動(dòng)-->
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
    </property>
    <property><!--數(shù)據(jù)庫(kù)用戶名-->
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      <description>Username to use against metastore database</description>
    </property>
    <property><!--密碼-->
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>Pass-9999</value>
      <description>password to use against metastore database</description>
    </property>
    <property><!--HDFS路徑,用于存儲(chǔ)不同 map/reduce 階段的執(zhí)行計(jì)劃和這些階段的中間輸出結(jié)果。-->
      <name>hive.exec.local.scratchdir</name>
      <value>/tmp/hive</value>
    </property>
    <property><!--Hive 查詢?nèi)罩舅诘哪夸?,HDFS路徑-->
      <name>hive.querylog.location</name>
      <value>/tmp/logs</value>
      </property>
    <property><!--本地表的默認(rèn)位置,HDFS路徑-->
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
    </property>
    <property><!--本地模式開啟,3種啟動(dòng)模式,具體看下文-->
      <name>hive.metastore.local</name>
      <value>true</value>
    </property>
    <property
      <name>hive.server2.logging.operation.log.location</name>
      <value>/tmp/logs</value>
      </property>
      <property>
      <name>hive.downloaded.resources.dir</name>
      <value>/tmp/hive${hive.session.id}_resources</value>
    </property>
</configuration>

#修改hive配置文件
#cd 到bin文件下
/usr/local/hive-3.1.2/bin
#添加如下配置
export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}
export JAVA_HOME=/usr/local/jdk1.8.0_261
export HADOOP_HOME=/usr/local/hadoop-3.2.1
export HIVE_HOME=/usr/local/hive-3.1.2
#添加java驅(qū)動(dòng)
cd /usr/local/hive-3.1.2/lib
#把jar放在lib文件下,該文件從網(wǎng)上下載。
mysql-connector-java-5.1.49-bin.jar
#對(duì)Hive進(jìn)行初始化并啟動(dòng)Hive
# cd 到bin文件下,對(duì)hive初始化,主要是初始化mysql,添加mysql為hive的元數(shù)據(jù)庫(kù)。
cd /usr/local/hive-3.1.2/bin
schematool -initSchema -dbType mysql
#啟動(dòng)hive,直接輸入hive啟動(dòng)
hive
#查看database 和 table
show databases;
show tables;
在這里插入圖片描述

文章持續(xù)更新,可以微信搜索「 大數(shù)據(jù)分析師知識(shí)分享」第一時(shí)間閱讀,回復(fù)【666】獲取大數(shù)據(jù)相關(guān)資料。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容