hive與hbase的聯系與區別


hive與hbase的聯系與區別:
共同點:
1.hbase與hive都是架構在hadoop之上的。都是用hadoop作為底層存儲。

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

區別:

2.Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統,HBase是為了支持彌補Hadoop對實時操作的缺陷的項目 。
3.想象你在操作RMDB數據庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop 。
4.Hive query就是MapReduce jobs可以從5分鍾到數小時不止,HBase是非常高效的,肯定比Hive高效的多。
5.Hive本身不存儲和計算數據,它完全依賴於HDFS和MapReduce,Hive中的表純邏輯。hive需要用到hdfs存儲文件,需要用到MapReduce計算框架。

6.hive借用hadoop的MapReduce來完成一些hive中的命令的執行
7.hbase是物理表,不是邏輯表,提供一個超大的內存hash表,搜索引擎通過它來存儲索引,方便查詢操作。
8.hbase是列存儲。
9.hdfs作為底層存儲,hdfs是存放文件的系統,而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難在sql,habse難在表結構的設計


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM