hadoop生態--Hive(1)--Hive入門

是什麼?

hive,是基於hadoop的數據倉庫,用於處理結構化數據。適合作OLAP。存儲數據結構(schema)在數據庫中,處理數據進入hdfs。 java

大量的MR任務繁重,爲了簡化編寫MR的工做量,hive提供了一個框架,能夠把一個相似sql的查詢語句翻譯成MR程序,而後把job提交到hdfs上進行查詢;到hdfs上查詢哪一個表呢?這就是hive提供的另外一個功能,把hdfs的一個文件,映射成一張hive表,在查詢時就是把job在hdfs上處理該文件。mysql

那麼hive表和hdfs的映射關係要怎麼記錄呢?hive在進行表映射的時候使用mysal記錄hive表和hdfs文件的映射關係(使用mysql存儲元數據,元數據包括表的屬性、表的名稱、表的列、分區及其屬性以及表數據所在的目錄等)linux

 

hive負責把相似sql的查詢語句翻譯成MR程序;mysql存儲表和待查詢文件的映射關係;HDFS上運行這些HDFS程序;sql

創建一張表hive內部的工做機制:mysql記錄表定義,在hdfs中建立目錄,把數據存儲到目錄就能夠進行數據處理。數據庫

數據庫和數據倉庫:vim

數據庫和數據倉庫從本質上來講是一致的,都是基於某種模型來組織、管理數據。只是二者的使用場景不一樣,數據庫更關注業務交易處理(OLTP)是業務性數據庫,而數據倉庫更關注數據分析處理(OLAP)屬於分析性數據庫,因此二者的數據庫模型會有很大差別。centos

數據庫一般追求交易的速度、完整性、數據的一致性等,數據庫模型聽從範式模型,儘可能減小數據冗餘,保證引用完整性;而數據倉庫強調數據分析的效率,複雜查詢的速度以及數據之間的相關性分析,在數據庫模型上,數據倉庫喜歡使用多維模型,從而提升數據分析的效率。安全

 討論數據庫和數據倉庫的區別,實際上是在討論OLTP和OLAP:數據結構

 數據處理大體能夠分紅兩大類:聯機事務處理OLTP(on-line transaction processing)、聯機分析處理OLAP(On-Line Analytical Processing)。OLTP是傳統的關係型數據庫的主要應用,主要是基本的、平常的事務處理,例如銀行交易。OLAP是數據倉庫系統的主要應用,支持複雜的分析操做,側重決策支持,而且提供直觀易懂的查詢結果。 併發

OLTP:聯機事務處理。負責基本業務的正常運轉。也能夠稱面向交易的處理系統,它是針對具體業務在數據庫聯機的平常操做,一般對少數記錄進行查詢、修改。用戶較爲關心操做的響應時間、數據的安全性、完整性和併發的支持用戶數等問題。傳統的數據庫系統做爲數據管理的主要手段,主要用於操做型處理。

OLAP:聯機分析處理。負責發如今業務數據積累時產生的價值。通常針對某些主題歷史數據進行分析,支持管理決策。


 hive 安裝部署

部署以前先考慮下須要部署啥,部署到哪裏。
部署啥?hive,hdfs(存儲數據)、mysql(存儲元數據)。安裝hive的機器上須要安裝有hadoop,這個機器能夠訪問mysql(遠程或本地)
部署到哪裏?hive對hdfs而言,就是一個客戶端,因此能夠安裝在任意位置,只須要能夠和hdfs通訊便可,不必定要在hdp集羣上。
 下面介紹步驟:
0、安裝hadoop和mysql
安裝hadoop:搭建hadoop集羣,並在安裝hive的機器上安裝hadoop做爲客戶端;安裝mysql:安裝在hive機器能夠通訊的機器上便可。
一、hive下載、解壓
二、在$HIVE_HOME/conf下增長hive-site.xml
配置存儲元數據的mysql信息,包括數據庫地址、用戶名、密碼等。內容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://192.168.1.8: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>admin</value>
    </property>
</configuration>
View Code
三、複製依賴包,放到lib下
mysql-connector-java-5.1.37.jar 注意到maven官網下載對應你的mysql版本的jar包
四、配置hadoophome和hivehome
編輯配置文件添加內容
vim /etc/profile   
使配置生效
source /etc/profile
五、進行一些有利於使用的配置
在linux當前目錄,建立文件.hiverc,添加內容
[root@centos7 ~]# vim .hiverc
set hive.cli.print.header=true;
set hive.cli.print.current.db=true;
以上兩句分別設置查詢結果時顯示錶頭     設置顯示當前使用的庫
相關文章
相關標籤/搜索