【数据仓库】Hive环境搭建和基础用法
簡介
Hive是基于Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,是一個可以對Hadoop中的大規模存儲的數據進行查詢和分析存儲的組件,Hive數據倉庫工具能將結構化的數據文件映射為一張數據庫表,并提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行,使用成本低,可以通過類似SQL語句實現快速MapReduce統計,使MapReduce變得更加簡單,而不必開發專門的MapReduce應用程序。hive十分適合對數據倉庫進行統計分析。
一、Hive基礎簡介
1、基礎描述
Hive是基于Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,是一個可以對Hadoop中的大規模存儲的數據進行查詢和分析存儲的組件,Hive數據倉庫工具能將結構化的數據文件映射為一張數據庫表,并提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行,使用成本低,可以通過類似SQL語句實現快速MapReduce統計,使MapReduce變得更加簡單,而不必開發專門的MapReduce應用程序。hive十分適合對數據倉庫進行統計分析。
2、組成與架構
用戶接口:ClientCLI、JDBC訪問Hive、WEBUI瀏覽器訪問Hive。
元數據:Hive將元數據存儲在數據庫中,如mysql、derby。Hive中的元數據包括表的名字,表的列和分區以及屬性,表的屬性(是否為外部表等),表的數據所在目錄等。
驅動器:基于解釋器、編輯器、優化器完成HQL查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。
執行器引擎:ExecutionEngine把邏輯執行計劃轉換成可以運行的物理計劃。
Hadoop底層:基于HDFS進行存儲,使用MapReduce進行計算,基于Yarn的調度機制。
Hive收到給客戶端發送的交互請求,接收到操作指令(SQL),并將指令翻譯成MapReduce,提交到Hadoop中執行,最后將執行結果輸出到客戶端。
二、Hive環境安裝
準備安裝包
hive-3.1.2,依賴Hadoop集群環境,位置放在 hadoop102 服務上。
解壓重命名
tar -zxvf apache-hive-hive-3.1.2-bin.tar.gz mv apache-hive-hive-3.1.2-bin/ hive-3.1.2修改配置文件
創建配置文件
[codingce@linuxmxz conf]$ pwd /opt/module/hive-3.1.2/conf [codingce@linuxmxz conf]$ mv hive-env.sh.template hive-env.sh添加內容
[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配置內容一個是Hadoop路徑,和hive配置文件路徑。
創建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文件夾導入mysql jar 包
Hadoop配置
首先啟動hdfs和yarn;然后在HDFS上創建/tmp和/user/hive/warehouse兩個目錄并修改賦予權限。
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基礎操作
查看數據庫
hive> show databases ;選擇數據庫
hive> use default;查看數據表
hive> show tables;創建數據庫使用
hive> create database mytestdb; hive> show databases ; default mytestdb hive> use mytestdb;創建表
create table hv_user (id int, name string, age int);查看表結構
hive> desc hv_user; id int name string age int添加表數據
insert into hv_user values (1, "test-user", 23);查詢表數據
hive> select * from hv_user ;注意:這里通過對查詢日志的觀察,明顯看出Hive執行的流程。
刪除表
hive> drop table hv_user ;退出Hive
hive> quit;查看Hadoop目錄
# hadoop fs -ls /user/hive/warehouse /user/hive/warehouse/mytestdb.db通過Hive創建的數據庫和數據存儲在HDFS上。
總結
以上是生活随笔為你收集整理的【数据仓库】Hive环境搭建和基础用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Anaconda-- conda 创建、
- 下一篇: 累计连续签到设计和实现