最近在學習和整理大資料hadoop的資料時,突然發現乙個簡單又複雜的問題:hive與hbase是什麼關係?怎麼區分?
平時有接觸和使用過hive和hbase,hive的話主要用的是阿里雲的odps,hbase用的是hdp平台的開源版本,但是還沒有
對這兩個元件真正的系統的放在一起對比總結過,於是上網查了資料也問了同事,於是在這裡再來寫點自己的理解。
首先說說hive,眾所周知是一款開源的資料倉儲
1、hive不是資料庫,而是資料倉儲,主要依賴於hadoop來實現
2、底層檔案系統是hadoop的hdfs,實現對hdfs上結構化資料的sql操作hql,速度較慢
3、計算引擎是hadoop的mapreduce
4、依靠儲存在其他關係型資料庫metastore來對hdfs結構化資料進行管理,實現類似資料庫的功能
5、不具備資料庫的一些主鍵、索引、update操作等特性,但是提供了分割槽、塊索引、sql等特性
6、比較適合儲存海量的全量(歷史+更新)軌跡資料,比對資料進行批量的挖掘、分析等操作
總結一下,hive是基於hadoop實現的資料倉儲,適合儲存海量全量資料,支援類sql操作,效能相對較差,資料
儲存有一定的限制,不支援更新、索引等事務。適合海量資料的挖掘和分析,通俗一點來說,hive其實就是借助mysql等資料庫在
hadoop上層套了乙個殼,來實現對hdfs上結構化資料的對映,為上層提供sql服務。
即hadoop databse,顧名思義就是乙個hadoop的資料庫
1、nosql資料庫之一,基於列式儲存(列族),適合海量半結構化資料的儲存和檢索
2、不支援sql、適合海量、帶時間序列的資料的儲存和檢索、效能較好
3、原生支援基於rowkey的一級索引,rowkey按照字典序進行排序
4、運算執行引擎是hbase自身提供、底層儲存基於hdfs
總結一下,hbase是nosql資料庫的一種,基於分布式列式儲存,適合海量半結構化帶時間序列的資料的儲存和檢索,效能較優秀,hbase底層儲存依賴於hdfs,與rdbms的區別與其他nosql類似,比如不支援sql、事務性相對較差等等。
綜上,hbase是資料庫、hive是資料倉儲,而這有很大的區別、也有很多類似的地方比如都屬於hadoop生態圈、儲存都基於hdfs等。一般來說用hive作為海量結構化全量資料的儲存、運算、挖掘、分析;hbase用來作為海量半結構化資料的儲存、檢索;這二者可以很好協同工作,hive上計算完的結果放在hbase中供檢索,也可以將hbase裡面的結構化資料和hive相結合,實現對hbase的sql操作等等。
**:最近在學習和整理大資料hadoop的資料時,突然發現乙個簡單又複雜的問題:hive與hbase是什麼關係?怎麼區分?
平時有接觸和使用過hive和hbase,hive的話主要用的是阿里雲的odps,hbase用的是hdp平台的開源版本,但是還沒有
對這兩個元件真正的系統的放在一起對比總結過,於是上網查了資料也問了同事,於是在這裡再來寫點自己的理解。
首先說說hive,眾所周知是一款開源的資料倉儲
1、hive不是資料庫,而是資料倉儲,主要依賴於hadoop來實現
2、底層檔案系統是hadoop的hdfs,實現對hdfs上結構化資料的sql操作hql,速度較慢
3、計算引擎是hadoop的mapreduce
4、依靠儲存在其他關係型資料庫metastore來對hdfs結構化資料進行管理,實現類似資料庫的功能
5、不具備資料庫的一些主鍵、索引、update操作等特性,但是提供了分割槽、塊索引、sql等特性
6、比較適合儲存海量的全量(歷史+更新)軌跡資料,比對資料進行批量的挖掘、分析等操作
總結一下,hive是基於hadoop實現的資料倉儲,適合儲存海量全量資料,支援類sql操作,效能相對較差,資料
儲存有一定的限制,不支援更新、索引等事務。適合海量資料的挖掘和分析,通俗一點來說,hive其實就是借助mysql等資料庫在
hadoop上層套了乙個殼,來實現對hdfs上結構化資料的對映,為上層提供sql服務。
即hadoop databse,顧名思義就是乙個hadoop的資料庫
1、nosql資料庫之一,基於列式儲存(列族),適合海量半結構化資料的儲存和檢索
2、不支援sql、適合海量、帶時間序列的資料的儲存和檢索、效能較好
3、原生支援基於rowkey的一級索引,rowkey按照字典序進行排序
4、運算執行引擎是hbase自身提供、底層儲存基於hdfs
總結一下,hbase是nosql資料庫的一種,基於分布式列式儲存,適合海量半結構化帶時間序列的資料的儲存和檢索,效能較優秀,hbase底層儲存依賴於hdfs,與rdbms的區別與其他nosql類似,比如不支援sql、事務性相對較差等等。
綜上,hbase是資料庫、hive是資料倉儲,而這有很大的區別、也有很多類似的地方比如都屬於hadoop生態圈、儲存都基於hdfs等。一般來說用hive作為海量結構化全量資料的儲存、運算、挖掘、分析;hbase用來作為海量半結構化資料的儲存、檢索;這二者可以很好協同工作,hive上計算完的結果放在hbase中供檢索,也可以將hbase裡面的結構化資料和hive相結合,實現對hbase的sql操作等等。
nginx uwsgi wsgi 是什麼關係
1 首先nginx 是對外的服務介面,外部瀏覽器通過url訪問nginx,2 nginx 接收到瀏覽器傳送過來的http請求,將包進行解析,分析url,如果是靜態檔案請求就直接訪問使用者給nginx配置的靜態檔案目錄,直接返回使用者請求的靜態檔案,如果不是靜態檔案,而是乙個動態的請求,那麼nginx...
GNU 是什麼,和 Linux 是什麼關係?
unix 系統被發明之後,大家用的很爽。但是後來開始收費和商業閉源了。乙個叫 rms 的大叔覺得很不爽,於是發起 gnu 計畫,模仿 unix 的介面和使用方式,從頭做乙個開源的版本。然後他自己做了編輯器 emacs 和編譯器 gcc。gnu 是乙個計畫或者叫運動。在這個旗幟下成立了 fsf,起草了...
crs 與RAC是什麼關係,如何區分
rac是應用,是涉及作業系統,硬體,oracle設定等綜合的東西,crs則是oracle內部的為這個服務的元件 crs clusterware rac crs asm cfs nfs raw device rac rdbms,有時rac只指rac rdbms crs或者clusterware是建立集...