首先先簡單介紹下hive:
Hive是一個基於Hadoop的數據倉庫工具,可以將結構化的數據文件映射成一張數據表,並可以使用類似SQL的方式來對數據文件進行讀寫以及管理。這套Hive SQL 簡稱HQL。Hive的執行引擎可以是MR、Spark、Tez。
核心架構:
Hive官網地址
http://hive.apache.org/
下載地址
http://archive.apache.org/dist/hive/
hive的安裝部署
Hive常用的安裝分三種
(注意:Hive會自動監測Hadoop的環境變量,所以在安裝hive之前就必須啟動Hadoop,如未安裝hadoop,請移步看本人的另一篇博客
地址:https://www.cnblogs.com/s1023/p/12439518.html)
第一種:本地模式(多用戶模式)
使用hive自帶默認元數據庫derby來進行存儲,通常用於測試
a.優點:使用簡單,不用進行配置
b.缺點:只支持單session
安裝步驟:
首先將下載好的hive安裝包上傳到linux上
1、解壓hive,並配置環境變量
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
vi /etc/profile
source /etc/profile
export HIVE_HOME=/opt/app/hive
export PATH=$HIVE_HOME/bin:$PATH
2、配置hive-env.sh,如果不存在,就用hive.env.sh.template復制一個
export HIVE_CONF_DIR=/opt/app/hive/conf export JAVA_HOME=/opt/app/jdk export HADOOP_HOME=/opt/app/hadoop
3、啟動hive:(注:啟動之前要啟動hdfs sbin/start-dfs.sh 和yarn sbin/start-yarn.sh )
bin/hive
進入后可以執行下面命令進行操作
show dataases; #查看數據庫
show tables; #查看表
簡單sql演示執行
# 創建表 create table dog(id int,name string); select * from dog; insert into dog values(1,"wangcai"); desc dog; #查看表結構 quit # 退出
配置安裝mysql:
安裝包准備
#查看mysql是否安裝,如果安裝了,卸載mysql rpm -qa|grep mysql #如果出現下面的提示,就說明系統已經有了mysql,要卸載 mysql-libs-5.1.73-7.el6.x86_64 # 卸載mysql rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64
安裝MySql服務器
==mysql安裝的步驟介紹==
1.安裝mysql服務端(先從本地上傳服務端和客戶端到服務器,盡量使用root用戶操作)
rpm -ivh MySQL-server-5.6.rpm
#注意:如果是mini版本安裝,提前要安裝下面一個依賴庫:
yum install libaio
2.查看產生的隨機密碼
cat /root/.mysql_secret
3.查看mysql狀態
service mysql status
4.啟動mysql
service mysql start
安裝MySql客戶端
1.安裝mysql客戶端
rpm -ivh MySQL-client-5.6.rpm
2.鏈接mysql
命令格式:mysql -u用戶名 -p密碼
mysql -uroot -pabcdefafd
注意:
abcdefafd為安裝mysql服務端時第2部查看產生的隨機密碼,直接復制即可
3.修改密碼
mysql>SET PASSWORD=PASSWORD('123123');
第二種模式:遠程模式1
將元數據庫放在該台機器上)(多用戶模式)
通常使用關系型數據庫來進行元數據存儲(mysql、oracle等執行帶jdbc驅動的數據庫)
- 優點:支持多session
- 缺點:需要配置、還需要安裝mysql等關系型數據庫(已安裝好)
步驟:
– 1、解壓並配置環境變量
– 2、配置hive的配置文件
– cp hive-env.sh.template hive-env.sh vi hive-env.sh(可以配置jdk、hive的conf路徑)
– 3、在Hive的conf配置hive的自定義配置文件 vi hive-site.xml:如下:
<configuration> <!--配置mysql的連接字符串--> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <!--配置mysql的連接驅動--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <!--配置登錄mysql的用戶--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <!--配置登錄mysql的密碼--> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123123</value> <description>password to use against metastore database</description> </property> </configuration>
4、將mysql的驅動包mysql-connector-java-5.1.27-bin.jar上傳到$HIVE_HOME/lib下(==注意:驅動是jar結尾,不是tar結尾==)
5、啟動hive
第三種模式:遠程模式2
(將元數據庫放在其他機器上)(多用戶模式)
和1差不多,只是將元數據放在別的服務器上,這種的就是咱們常說的集群模式。
可以有一個hive的server和多個hive的client。