Hadoop學習之HBase和Hive的區別

2022-09-15 04:39:09 字數 1098 閱讀 6863

hive是為簡化編寫mapreduce程式而生的,使用mapreduce做過資料分析的人都知道,很多分析程式除業務邏輯不同外,程式流程基本一樣。在這種情況下,就需要hive這樣的使用者程式設計介面。hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯表,就是些表的定義等,也就是表的元資料。使用sql實現hive是因為sql大家都熟悉,轉換成本低,類似作用的pig就不是sql。  

hbase為查詢而生的,它通過組織起節點內所有機器的記憶體,提供乙個超大的記憶體hash表,它需要組織自己的資料結構,包括磁碟和記憶體中的,而hive是不做這個的,表在hbase中是物理表,而不是邏輯表,搜尋引擎使用它來儲存索引,以滿足查詢的實時性需求簡單來說hive用來批量處理資料,hbase用來快速索引資料。

hbase是乙個分布式的基於列儲存的非關係型資料庫。hbase的查詢效率很高,主要由於查詢和展示結果。  

hive是分布式的關係型資料庫。主要用來並行分布式 處理 大量資料。hive中的所有查詢除了"select * from table;"都是需要通過map\reduce的方式來執行的。由於要走map\reduce,即使乙個只有1行1列的表,如果不是通過select * from table;方式來查詢的,可能也需要8、9秒。但hive比較擅長處理大量資料。當要處理的資料很多,並且hadoop集群有足夠的規模,這時就能體現出它的優勢。 

通過hive的儲存介面,hive和hbase可以整合使用。  

hadoop中的mapreduce是乙個使用簡易的軟體框架,基於它寫出來的應用程式能夠執行在由上千個商用機器組成的大型集群上,並以一種可靠容錯的式並行處理上t級別的資料集。mapreduce是一種程式設計模型,用於大規模資料集(大於1tb)的並行運算。概念"map(對映)"和"reduce(化簡)",和他們的主要思想,都是從函式式程式語言裡借來的,還有從向量程式語言裡借來的特性。他極大地方便了程式設計人員在不會分布式並行程式設計的情況下,將自己的程式執行在分布式系統上。當前的軟體實現是指定乙個map(對映)函式,用來把一組鍵值對對映成一組新的鍵值對,指定併發的reduce(化簡)函式,用來保證所有對映的鍵值對中的每乙個共享相同的鍵組   

hadoop學習筆記之hbase原理

hbase是面向列儲存的nosql資料庫。行的每一列被劃分到某一列族,調優和儲存都是基於列族完成的。在資料庫中,行的每一列作為儲存的基本單位,其結構關係為,每一行包含乙個或多個列族,乙個列族包含多個列,這樣可通過行鍵確定行,列族名確定列族,列名確定列,從而定位到某一行的某一列。例如,行鍵為1,列族為...

hadoop學習筆記 HBase

hadoop database,是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統,利用hbase技術可在廉價pc server上搭建起大規模結構化儲存集群。hbase利用hadoop hdfs作為其檔案儲存系統,利用hadoop mapreduce來處理hbase來處理hbase中的海量資料,...

Hadoop學習筆記(四) HBase

hbase是乙個高可靠性 高效能 面向列 可伸縮的分布式儲存系統,它是google bigtable的開源實現,執行於hdfs檔案系統之上,利用mapreduce處理資料,使用zookeeper作為協同服務,因此可以容錯地儲存海量稀疏的資料。海量資料儲存,方便擴充套件 快速的隨機訪問,獨特的設計使得...