hive和hbase的區別


作者:有點文
鏈接:https://www.zhihu.com/question/21677041/answer/185664626
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

先放結論:Hbase和Hive在大數據架構中處在不同位置,Hbase主要解決實時數據查詢問題,Hive主要解決數據處理和計算問題,一般是配合使用。

一、區別:

  1. Hbase: Hadoop database 的簡稱,也就是基於Hadoop數據庫,是一種NoSQL數據庫,主要適用於海量明細數據(十億、百億)的隨機實時查詢,如日志明細、交易清單、軌跡行為等。
  2. Hive:Hive是Hadoop數據倉庫,嚴格來說,不是數據庫,主要是讓開發人員能夠通過SQL來計算和處理HDFS上的結構化數據,適用於離線的批量數據計算。
  • 通過元數據來描述Hdfs上的結構化文本數據,通俗點來說,就是定義一張表來描述HDFS上的結構化文本,包括各列數據名稱,數據類型是什么等,方便我們處理數據,當前很多SQL ON Hadoop的計算引擎均用的是hive的元數據,如Spark SQL、Impala等;
  • 基於第一點,通過SQL來處理和計算HDFS的數據,Hive會將SQL翻譯為Mapreduce來處理數據;

二、關系

在大數據架構中,Hive和HBase是協作關系,數據流一般如下圖:

  1. 通過ETL工具將數據源抽取到HDFS存儲;
  2. 通過Hive清洗、處理和計算原始數據;
  3. HIve清洗處理后的結果,如果是面向海量數據隨機查詢場景的可存入Hbase
  4. 數據應用從HBase查詢數據;


免責聲明!

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



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