一、概念
1、Hive
1. Hive是hadoop數(shù)據(jù)倉庫管理工具,嚴(yán)格來說,不是數(shù)據(jù)庫,本身是不存儲數(shù)據(jù)和處理數(shù)據(jù)的,其依賴于HDFS存儲數(shù)據(jù),依賴于MapReducer進行數(shù)據(jù)處理。
2. Hive的優(yōu)點是學(xué)習(xí)成本低,可以通過類SQL語句(HSQL)快速實現(xiàn)簡單的MR任務(wù),不必開發(fā)專門的MR程序。
3. 由于Hive是依賴于MapReducer處理數(shù)據(jù)的,因此有很高的延遲性,不適用于實時數(shù)據(jù)處理(數(shù)據(jù)查詢,數(shù)據(jù)插入,數(shù)據(jù)分析),適用于離線數(shù)據(jù)的批處理。
2、HBase
1.HBase是一種分布式、可擴展、支持海量數(shù)據(jù)存儲的NOSQL數(shù)據(jù)庫
2.HBase主要適用于海量數(shù)據(jù)的實時數(shù)據(jù)處理(隨機讀寫)
3.由于HDFS不支持隨機讀寫,而HBase正是為此而誕生的,彌補了HDFS的不可隨機讀寫。
二、共同點
hbase與hive都是架構(gòu)在hadoop之上的。都是用HDFS作為底層存儲。
三、區(qū)別
1.Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統(tǒng),HBase是為了支持彌補Hadoop對實時操作的缺陷的項目 ??偟膩碚f,hive是適用于離線數(shù)據(jù)的批處理,hbase是適用于實時數(shù)據(jù)的處理。
2.Hive本身不存儲和計算數(shù)據(jù),它完全依賴于HDFS存儲數(shù)據(jù)和MapReduce處理數(shù)據(jù),Hive中的表純邏輯。
3.hbase是物理表,不是邏輯表,提供一個超大的內(nèi)存hash表,搜索引擎通過它來存儲索引,方便查詢操作。
4.由于HDFS的不可隨機讀寫,hive是不支持隨機寫操作,而hbase支持隨機寫入操作。
5.HBase只支持簡單的鍵查詢,不支持復(fù)雜的條件查詢
四、關(guān)系
在大數(shù)據(jù)架構(gòu)中,Hive和HBase是協(xié)作關(guān)系,這里就舉例一種常用的協(xié)作關(guān)系,具體流程如下圖:
在大數(shù)據(jù)架構(gòu)中,Hive和HBase是協(xié)作關(guān)系,流程如下:
- 通過ETL工具將數(shù)據(jù)源抽取到HDFS存儲;
- 通過Hive清洗、處理和計算原始數(shù)據(jù);
- HIve清洗處理后的結(jié)果,如果是面向海量數(shù)據(jù)隨機查詢場景的可存入Hbase
- 數(shù)據(jù)應(yīng)用從HBase查詢數(shù)據(jù);
五、總結(jié)
做一個總結(jié),Hive和HBase都是Hadoop集群下的工具,Hive是對MapReduce的優(yōu)化,而HBase則是HDFS數(shù)據(jù)存儲的大管家。那么,這兩者各適用于哪些場景呢?
- Hive中的表為純邏輯表,僅僅對表的元數(shù)據(jù)進行定義。Hive沒有物理存儲的功能,它完全依賴HDFS和MapReduce。這樣就可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為為一張數(shù)據(jù)庫表,并提供完整的SQL查詢功能,并將SQL語句最終轉(zhuǎn)換為MapReduce任務(wù)進行運行。HBase表則是物理表,適合存放非結(jié)構(gòu)化的數(shù)據(jù)。
- Hive是在MapReduce的基礎(chǔ)上對數(shù)據(jù)進行處理,而MapReduce的數(shù)據(jù)處理依照行模式;而HBase為列模式,這樣使得對海量數(shù)據(jù)的隨機訪問變得可行。
- HBase的存儲表存儲密度小,因而用戶可以對行定義成不同的列;而Hive是邏輯表,屬于稠密型,即定義列數(shù),每一行對列數(shù)都有固定的數(shù)據(jù)。
- Hive使用Hadoop來分析處理數(shù)據(jù),而Hadoop系統(tǒng)是批處理系統(tǒng),所以數(shù)據(jù)處理存在延時的問題;而HBase是準(zhǔn)實時系統(tǒng),可以實現(xiàn)數(shù)據(jù)的實時查詢。
- Hive沒有row-level的更新,它適用于大量append-only數(shù)據(jù)集(如日志)的批任務(wù)處理。而基于HBase的查詢,支持和row-level的更新。
- Hive全面支持SQL,一般可以用來進行基于歷史數(shù)據(jù)的挖掘、分析。而HBase不適用于有join,多級索引,表關(guān)系復(fù)雜的應(yīng)用場景。
兩者使用場景的區(qū)別:
- HBase的應(yīng)用場景通常是采集網(wǎng)頁數(shù)據(jù)的存儲,因為它是key-value型數(shù)據(jù)庫,從而可以到各種key-value應(yīng)用場景,例如存儲日志信息,對于內(nèi)容信息不需要完全結(jié)構(gòu)化出來的類CMS應(yīng)用等。注意hbase針對的仍然是OLTP應(yīng)用為主。
- hive主要針對的是OLAP應(yīng)用,其底層是hdfs分布式文件系統(tǒng),重點是基于一個統(tǒng)一的查詢分析層,支撐OLAP應(yīng)用中的各種關(guān)聯(lián),分組,聚合類SQL語句。hive一般只用于查詢分析統(tǒng)計,而不能是常見的CUD操作,要知道HIVE是需要從已有的數(shù)據(jù)庫或日志進行同步最終入到hdfs文件系統(tǒng)中,當(dāng)前要做到增量實時同步都相當(dāng)困難。
以上就是關(guān)于Hive和HBase有哪些區(qū)別與聯(lián)系及適用場景的論述,希望對學(xué)大數(shù)據(jù)分析的同學(xué)有所幫助。
HIVE和HBASE的區(qū)別和聯(lián)系-CSDN博客
Hive與HBase有什么區(qū)別 - 云計算 - 億速云文章來源:http://www.zghlxwxcb.cn/news/detail-854508.html
Spark、Hive、Hbase比較_spark hive_好啊啊啊啊的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-854508.html
到了這里,關(guān)于Hive、HBase對比【相同:HDFS作為底層存儲】【區(qū)別:①Hive用于離線數(shù)據(jù)的批處理,Hbase用于實時數(shù)據(jù)的處理;②Hive是純邏輯表,無物理存儲功能,HBase是物理表,放非結(jié)構(gòu)數(shù)據(jù)】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!