【数据仓库】Hive环境搭建和基础用法
簡介
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,是一個可以對Hadoop中的大規(guī)模存儲的數(shù)據(jù)進(jìn)行查詢和分析存儲的組件,Hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行,使用成本低,可以通過類似SQL語句實現(xiàn)快速MapReduce統(tǒng)計,使MapReduce變得更加簡單,而不必開發(fā)專門的MapReduce應(yīng)用程序。hive十分適合對數(shù)據(jù)倉庫進(jìn)行統(tǒng)計分析。
一、Hive基礎(chǔ)簡介
1、基礎(chǔ)描述
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,是一個可以對Hadoop中的大規(guī)模存儲的數(shù)據(jù)進(jìn)行查詢和分析存儲的組件,Hive數(shù)據(jù)倉庫工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供SQL查詢功能,能將SQL語句轉(zhuǎn)變成MapReduce任務(wù)來執(zhí)行,使用成本低,可以通過類似SQL語句實現(xiàn)快速MapReduce統(tǒng)計,使MapReduce變得更加簡單,而不必開發(fā)專門的MapReduce應(yīng)用程序。hive十分適合對數(shù)據(jù)倉庫進(jìn)行統(tǒng)計分析。
2、組成與架構(gòu)
用戶接口:ClientCLI、JDBC訪問Hive、WEBUI瀏覽器訪問Hive。
元數(shù)據(jù):Hive將元數(shù)據(jù)存儲在數(shù)據(jù)庫中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)以及屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
驅(qū)動器:基于解釋器、編輯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃的生成。
執(zhí)行器引擎:ExecutionEngine把邏輯執(zhí)行計劃轉(zhuǎn)換成可以運行的物理計劃。
Hadoop底層:基于HDFS進(jìn)行存儲,使用MapReduce進(jìn)行計算,基于Yarn的調(diào)度機制。
Hive收到給客戶端發(fā)送的交互請求,接收到操作指令(SQL),并將指令翻譯成MapReduce,提交到Hadoop中執(zhí)行,最后將執(zhí)行結(jié)果輸出到客戶端。
二、Hive環(huán)境安裝
準(zhǔn)備安裝包
hive-3.1.2,依賴Hadoop集群環(huán)境,位置放在 hadoop102 服務(wù)上。
解壓重命名
tar -zxvf apache-hive-hive-3.1.2-bin.tar.gz mv apache-hive-hive-3.1.2-bin/ hive-3.1.2修改配置文件
創(chuàng)建配置文件
[codingce@linuxmxz conf]$ pwd /opt/module/hive-3.1.2/conf [codingce@linuxmxz conf]$ mv hive-env.sh.template hive-env.sh添加內(nèi)容
[codingce@linuxmxz conf]$ vim hive-env.sh export HADOOP_HOM=/opt/module/hadoop-3.1.1 export HIVE_CONF_DIR=/opt/module/hive-3.1.2/conf[codingce@linuxmxz conf]$ vim /etc/profile.d/my_env.sh
# JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_221 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.1 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin#ZOOKEEPER_HOME export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.6 export PATH=.:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$PATH# HBASE_HOME export HBASE_HOME=/opt/module/hbase-2.2.7 export PATH=$HBASE_HOME/bin:$PATH# HIVE_HOME export HIVE_HOME=/opt/module/hive-3.1.2 export PATH=$PATH:$HIVE_HOME/bin配置內(nèi)容一個是Hadoop路徑,和hive配置文件路徑。
創(chuàng)建hive-site.xml
[codingce@linuxmxz conf]$ vim hive-site.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>hive.metastore.warehouse.dir</name><value>/usr/local/hadoop/hive/warehouse</value><description>location of default database for the warehouse</description></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/metastore</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionPassword </name><value>1234567</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value><description>Username to use against metastore database</description></property> </configuration>在lib文件夾導(dǎo)入mysql jar 包
Hadoop配置
首先啟動hdfs和yarn;然后在HDFS上創(chuàng)建/tmp和/user/hive/warehouse兩個目錄并修改賦予權(quán)限。
hadoop fs -mkdir /tmp hadoop fs -mkdir -p /user/hive/warehouse hadoop fs -chmod g+w /tmp hadoop fs -chmod g+w /user/hive/warehouse啟動Hive
hive基礎(chǔ)操作
查看數(shù)據(jù)庫
hive> show databases ;選擇數(shù)據(jù)庫
hive> use default;查看數(shù)據(jù)表
hive> show tables;創(chuàng)建數(shù)據(jù)庫使用
hive> create database mytestdb; hive> show databases ; default mytestdb hive> use mytestdb;創(chuàng)建表
create table hv_user (id int, name string, age int);查看表結(jié)構(gòu)
hive> desc hv_user; id int name string age int添加表數(shù)據(jù)
insert into hv_user values (1, "test-user", 23);查詢表數(shù)據(jù)
hive> select * from hv_user ;注意:這里通過對查詢?nèi)罩镜挠^察,明顯看出Hive執(zhí)行的流程。
刪除表
hive> drop table hv_user ;退出Hive
hive> quit;查看Hadoop目錄
# hadoop fs -ls /user/hive/warehouse /user/hive/warehouse/mytestdb.db通過Hive創(chuàng)建的數(shù)據(jù)庫和數(shù)據(jù)存儲在HDFS上。
總結(jié)
以上是生活随笔為你收集整理的【数据仓库】Hive环境搭建和基础用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Anaconda-- conda 创建、
- 下一篇: 累计连续签到设计和实现