轉自:http://blog.csdn.net/maixia24/article/details/14163203sql
如下 由網上內容 整理: 數據庫
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的查詢效率很高,主要因爲查詢和展現結果。oop
http://fccjxxw.com很是超級學習網性能
hive是分佈式的關係型數據庫。主要用來並行分佈式 處理 大量數據。hive中的全部查詢除了"select * from table;"都是須要經過Map\Reduce的方式來執行的。因爲要走Map\Reduce,即便一個只有1行1列的表,若是不是經過select * from table;方式來查詢的,可能也須要八、9秒。但hive比較擅長處理大量數據。當要處理的數據不少,而且Hadoop集羣有足夠的規模,這時就能體現出它的優點。學習
經過hive的存儲接口,hive和Hbase能夠整合使用。ui
一、hive是sql語言,經過數據庫的方式來操做hdfs文件系統,爲了簡化編程,底層計算方式爲mapreduce。搜索引擎
二、hive是面向行存儲的數據庫。
三、Hive自己不存儲和計算數據,它徹底依賴於HDFS和MapReduce,Hive中的表純邏輯。
四、HBase爲查詢而生的,它經過組織起節點內全部機器的內存,提供一個超大的內存Hash表
五、hbase不是關係型數據庫,而是一個在hdfs上開發的面向列的分佈式數據庫,不支持sql。
六、hbase是物理表,不是邏輯表,提供一個超大的內存hash表,搜索引擎經過它來存儲索引,方便查詢操做。
七、hbase是列存儲。
Hive只供維護用,真正查起來很是很是慢的!
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哪裏像了呢?