Hive和HBase的區別

2021-09-01 23:01:57 字數 2057 閱讀 3805

以下 由網上內容 整理:

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

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

hive類似cloudbase,也是基於hadoop分布式計算平台上的提供data warehouse的sql功能的一套軟體。使得儲存在hadoop裡面的海量資料的彙總,即席查詢簡單化。hive提供了一套ql的查詢語言,以sql為基礎,使用起來很方便。

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

非常超級學習網

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

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

1、hive是sql語言,通過資料庫的方式來操作hdfs檔案系統,為了簡化程式設計,底層計算方式為mapreduce。

2、hive是面向行儲存的資料庫。

3、hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯。

4、hbase為查詢而生的,它通過組織起節點內所有機器的記憶體,提供乙個超大的記憶體hash表

5、hbase不是關係型資料庫,而是乙個在hdfs上開發的面向列的分布式資料庫,不支援sql。

6、hbase是物理表,不是邏輯表,提供乙個超大的記憶體hash表,搜尋引擎通過它來儲存索引,方便查詢操作。

7、hbase是列儲存。

hive只供維護用,真正查起來非常非常慢的!

這是因為它的底層是要通過mapreduce分布式計算的,hbase、hive、pig底層都是這樣的。但整體來說hadoop還是比較快的,因為它是進行海量資料儲存和分布式計算,這個速度已經很不錯了。

hive和hbase有各自不同的特徵:hive是高延遲、結構化和面向分析的,hbase是低延遲、非結構化和面向程式設計的。hive資料倉儲在hadoop上是高延遲的。

其中hbase位於結構化儲存層,hadoop hdfs為hbase提供了高可靠性的底層儲存支援,hadoop mapreduce為hbase提供了高效能的計算能力,zookeeper為hbase提供了穩定服務和failover機制。

此外,pig和hive還為hbase提供了高層語言支援,使得在hbase上進行資料統計處理變的非常簡單。 sqoop則為hbase提供了方便的rdbms資料匯入功能,使得傳統資料庫資料向hbase中遷移變的非常方便。

**覺得在問區別之前,我應該顯示說相同點,這麼一想,又糊塗了,hive和hbase**像了,好像**都不像,既然**都不像,又何來的「區別是什麼」這一問題,他倆所有的都算區別。

那麼,hive是什麼?

白話一點再加不嚴格一點,hive可以認為是map-reduce的乙個包裝。hive的意義就是把好寫的hive的sql轉換為複雜難寫的map-reduce程式。

於是,hbase是什麼?

同樣白話一點加不嚴格一點,hbase可以認為是hdfs的乙個包裝。他的本質是資料儲存,是個nosql資料庫;hbase部署於hdfs之上,並且克服了hdfs在隨機讀寫方面的缺點。

所以要問hive和hbase的區別,就應該問問map-reduce和hdfs之間的區別,問區別,就要先說說他倆**像。

於是,你說map-reduce和hdfs**像了呢?

Hive和HBase的區別

hive是為了簡化編寫mapreduce程式而生的,使用mapreduce做過資料分析的人都知道,很多分析程式除業務邏輯不同外,程式流程基本一樣。在這種情況下,就需要hive這樣的使用者程式設計介面。hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯,就是些...

hbase和hive的區別

hive 不想用程式語言開發mapreduce的朋友比如db們,熟悉sql的朋友可以使用hive開脫機的進行資料處理與分析工作。起源於facebook,hive在hadoop中扮演資料倉儲的角色。建立在hadoop集群的最頂層,對儲存在hadoop群上的資料提供類sql的介面進行操作。你可以用 hi...

Hive 和 HBase 的區別

1.兩者分別是什麼?apache hive是乙個構建在hadoop基礎設施之上的資料倉儲。通過hive可以使用hql語言查詢存放在hdfs上的資料。hql是一種類sql語言,這種語言最終被轉化為map reduce.雖然hive提供了sql查詢功能,但是hive不能夠進行互動查詢 因為它只能夠在ha...