HIVE與mysql的關係

來源:互聯網
上載者:User

標籤:

Hive是一個基於Hadoop的資料倉儲平台。通過hive,我們可以方便地進行ETL的工作。hive定義了一個類似於SQL的查詢語言:HQL,能 夠將使用者編寫的QL轉化為相應的Mapreduce程式基於Hadoop執行。

Hive是Facebook 2008年8月剛開源的一個資料倉儲架構,其系統目標與 Pig 有相似之處,但它有一些Pig目前還不支援的機制,比如:更豐富的類型系統、更類似SQL的查詢語言、Table/Partition中繼資料的持久化等。

Hive  可以看成是從SQL到Map-Reduce的  映射器 

hive的組件和體系架構:

hive web介面啟動:./hive --service hwi

瀏覽器訪問:http://localhost:9999/hwi/

預設情況下,Hive中繼資料儲存在內嵌的 Derby 資料庫中,只能允許一個會話串連,只適合簡單的測試。為了支援多使用者多會話,則需要一個獨立的中繼資料庫,我們使用 MySQL 作為中繼資料庫,Hive 內部對 MySQL 提供了很好的支援。

Hive安裝

內嵌模式:中繼資料保持在內嵌的Derby模式,只允許一個會話串連

本地獨立模式:在本地安裝Mysql,把中繼資料放到Mysql內

遠程模式:中繼資料放置在遠端Mysql資料庫。

Hive的資料放在哪兒?

資料在HDFS的warehouse目錄下,一個表對應一個子目錄。

本地的/tmp目錄存放日誌和執行計畫

hive的表分為兩種,內表和外表。 
Hive 建立內部表時,會將資料移動到資料倉儲指向的路徑;若建立外部表格,僅記錄資料所在的路徑,不對資料的位置做任何改變。 
在刪除表的時候,內部表的中繼資料和資料會被一起刪除, 而外部表格只刪除中繼資料,不刪除資料。這樣外部表格相對來說更加安全些,資料群組織也更加靈活,方便共用來源資料。

使用Mysql作為Hive metaStore的儲存資料庫

其中主要涉及到的表如下:
表名 說明 關聯鍵
TBLS 所有hive表的基本資料(表名,建立時間,所屬者等)
TBL_ID,SD_ID
TABLE_PARAM 表級屬性,(如是否外部表格,表注釋,最後修改時間等) TBL_ID
COLUMNS Hive表欄位資訊(欄位注釋,欄位名,欄位類型,欄位序號) SD_ID
SDS 所有hive表、表分區所對應的hdfs資料目錄和資料格式 SD_ID,SERDE_ID
SERDE_PARAM 序列化還原序列化資訊,如行分隔字元、資料行分隔符號、NULL的表示字元等 SERDE_ID
PARTITIONS Hive表分區資訊(所屬表,分區值) PART_ID,SD_ID,TBL_ID
PARTITION_KEYS Hive分區表分區鍵(即分區欄位) TBL_ID
PARTITION_KEY_VALS Hive表分區名(索引值) PART_ID

HIVE與mysql的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.