1. 程式人生 > >基礎概念 之 Hadoop family

基礎概念 之 Hadoop family

常見 核心 技術 分布式文件系 大數 hdfs 理論 操作 其中

Hadoop家族的技術,網上資料多如牛毛,但是還是那句老話——好腦瓜不如爛筆頭,看的再多也不如自己動手寫一寫。

Hadoop是一個分布式系統,有兩個關鍵組件——HDFS和MapReduce,HDFS負責分布式文件存儲,MapReduce是執行分布式任務的算法。

MapReduce只是一個分布式數據處理算法,簡單來說就是,把針對大數據的一個任務分解成若幹個小任務,交給若幹個計算節點去執行,然後把所有小任務的執行結果匯總起來,得到最終的輸出結果。“拆分”叫做Map,“匯總”叫做Reduce。其中還涉及Shuffle等處理過程,暫不細究。

HDFS是一個分布式文件系統,高可靠、可擴展,理論上可以存儲任何文件(一般不適合存儲大量的微小文件)。HDFS是Hadoop家族最基礎最核心的技術。

HDFS是一個通用的文件系統,通用的東西往往未必好用,尤其在特定的使用場景下。所以以HDFS為基礎,衍生出了Hive、HBase,這兩個技術都是為了處理HDFS中存儲的數據。

Hive類似MySQL,是一個結構化數據庫,支持常見的SQL操作,這裏稱作HQL,不同於一般的結構化數據庫,Hive在HDFS上存儲數據庫文件,同時利用MapReduce處理所有SQL操作,充分利用了Hadoop的兩項核心技術,但是代價是實時性很差,因為其中涉及到大量的磁盤讀寫操作。

HBase和Hive很不一樣,它采用key-value的方式存儲數據,以列族的方式存儲(半)結構化數據,這極大的提升了查詢效率,尤其適合那些只需要查詢個別幾列數據的場合。所以HBase適合實時處理,Hive適合做離線統計。

參考資料:

https://www.cnblogs.com/justinzhang/p/4273470.html

https://www.yiibai.com/hbase/

基礎概念 之 Hadoop family