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**像了呢?
HBase 與 Hive 的區別和關係
原文出處 看到了很多博文中對hbase 與 hive 的區別做了一些說明,關於這個問題,在剛開始學習 hbase 和 hive 時就有了這個問題在我腦海中,所以在看到這些博文後,忽然覺得茅塞頓開,可能還需要一段時間的消化和吸收,但是已經比之前明白了許多,寫下這篇博文,供日後使用。看到一篇博文,是這樣...
hive與hbase資料型別對應關係
當hbase中double,int 型別以byte方式儲存時,用字串取出來必然是亂碼。在hivd與hbase整合時也遇到這個問題 做法是 b create external table hivebig key string,cust name string,phone num int,brd wor...
hive 建立 hbase表 的對映關係
建表 create table hive tablename rowkey string,field name1 string,field name2 string stored by org.apache.hadoop.hive.hbase.hbasestoragehandler with ser...