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