1- hive和sqoop組件介紹

Hive:Facebook爲了解決海量日誌數據的分析而開發了Hive,後來開源給了Apache軟件基金會。Hive是一種用類SQL語句來協助讀寫、管理那些存儲在分佈式存儲系統(hadoop)上大數據集的數據倉庫軟件。

Hive的特點:

1:通過類SQL腳本執行大數據平臺數據讀取和寫入以及數據分析,避免開發人員需要寫複雜的mapredurce程序,讓數據分析人員專注他們的分析工作。

2:非富的分析函數和窗口函數,不滿足需求的還支持自定義的開發函數。

3:hive是不存儲數據的,都存儲在HDFS平臺上,只是對每個數據文件做一個映射成數據庫裏的表和字段,一般通過關係庫來存儲這些元數據。

4:適用於支持離線計算的場景,適合支持大數據量的計算。

Hive的架構:

 

Sqoop:是一個ETL工具,主要用於HDFS與關係庫的數據同步。

導入:將數據從關係型數據庫導入 HDFS 中,其流程圖如下所示

用戶輸入一個 Sqoop import 命令,Sqoop 會從關係型數據庫中獲取元數據信息,比如要操作數據庫表的 schema是什麼樣子,這個表有哪些字段,這些字段都是什麼數據類型等。它獲取這些信息之後,會將輸入命令轉化爲基於 Map 的 MapReduce作業。這樣 MapReduce作業中有很多 Map 任務,每個 Map 任務從數據庫中讀取一片數據,這樣多個 Map 任務實現併發的拷貝,把整個數據快速的拷貝到 HDFS 上。

 

導出:將數據從 HDFS 導入關係型數據庫表中,其流程圖如下所示

用戶輸入一個 Sqoop export 命令,它會獲取關係型數據庫的 schema,建立 Hadoop 字段與數據庫表字段的映射關係。 然後會將輸入命令轉化爲基於 Map 的 MapReduce作業,這樣 MapReduce作業中有很多 Map 任務,它們並行的從 HDFS 讀取數據,並將整個數據拷貝到數據庫中。

以上是簡單介紹了下在大數據倉庫下的主要2個組件。在下面的課程裏將介紹這些組件的語法和案例,再通過遷移我們之前的項目代碼,實現在大數據平臺上的數據開發。

更多技術文章請關注公衆號BLT328(長按後點識別圖中二維碼):

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章