hive与hbase的以及mongodb和cassandra区别整理
?
?
| Hive | Hbase |
| 數(shù)據(jù)處理和計(jì)算問(wèn)題 | 實(shí)時(shí)數(shù)據(jù)查詢(xún)問(wèn)題 |
| 不是數(shù)據(jù)庫(kù) | NoSQL數(shù)據(jù)庫(kù) |
| 清洗數(shù)據(jù) | 海量數(shù)據(jù)查詢(xún)接口 |
| OLAP | OLTP(嚴(yán)格講只是OLP,不包含T) |
| 邏輯表,不存儲(chǔ)實(shí)際數(shù)據(jù) | 物理表 |
| 行模式 | 列模式 |
| 不提供row-level的更新 | 支持row-level的更新 |
| 完整的SQL實(shí)現(xiàn) | 不適用于有join,多級(jí)索引,表關(guān)系復(fù)雜 |
| HDFS文件的視圖,HDFS文件的SQL接口 | 建了索引的key-value表 |
| 批處理 | 事務(wù)處理(例如和web開(kāi)發(fā)結(jié)合) |
| 單次Hive查詢(xún)都需要耗費(fèi)分鐘級(jí)以上的時(shí)間(哪怕一個(gè)再小的表),因此無(wú)法作為web后端的數(shù)據(jù)庫(kù)使用。 | HBase可以替代MySQL使用,至少淘寶就是這么做了。 HBase是建造在HDFS基礎(chǔ)上的分布式數(shù)據(jù)庫(kù),可以支持海量數(shù)據(jù)(比MySQL高一到兩個(gè)量級(jí))的存儲(chǔ)和查詢(xún)。 |
| DataGrip | Phoenix |
| hive可以?huà)旖觝base,即針對(duì)hbase開(kāi)放出SQL的接口 | 不用Hive,也能操作HBase |
| Hive是建立在Hadoop之上為了減少M(fèi)apReduce jobs編寫(xiě)工作的批處理系統(tǒng) | HBase是為了支持彌補(bǔ)Hadoop對(duì)實(shí)時(shí)操作的缺陷的項(xiàng)目 。 |
| 蜜蜂 | 蜂蜜 |
| Hive支持標(biāo)準(zhǔn)SQL查詢(xún) | HBase不支持SQL,有自己的語(yǔ)法規(guī)則 |
| 一種客戶(hù)端工具 | 一種db |
?
從上面的表格可以看出,hbase可以替換hive嗎?不行,因?yàn)閔base支持不了復(fù)雜的sql
?
比起單機(jī)的Oracle和MySQL,好處就是伸縮性好啊
劣勢(shì)就是分布式帶來(lái)的可用性,一致性,分區(qū)容忍性~等問(wèn)題,以及分布式事務(wù)難以實(shí)現(xiàn)。
Hbase,主要用于明細(xì)查詢(xún),即席查詢(xún),因?yàn)樗彀?#xff0c;但是不適合多條件查詢(xún)
?
?
hive更像是hadoop客戶(hù)端,可以將SQL任務(wù)轉(zhuǎn)化為mapreduce任務(wù)操作hdfs中的數(shù)據(jù)。
hbase則是支持大數(shù)據(jù)存儲(chǔ)和查詢(xún)的數(shù)據(jù)倉(cāng)庫(kù),在CAP理論中,選擇了CA,保留了一致性,舍棄了可用性,簡(jiǎn)單直白理解就是不容易丟數(shù)據(jù)。是noSQL典型代表。
?
使用關(guān)系
?? ?源數(shù)據(jù)生產(chǎn)者 -Flume/Kafka-> Flume/消費(fèi)者 -write-> HDFS -Hive.load-> Hive -ETL/Analyze.result-> HBase
?? ?源數(shù)據(jù)生產(chǎn)者 -Kafka-> SparkStreaming/消費(fèi)者 -write-> HDFS [-SparkSQL-> Hive] && [-SparkSQL-> HBase]
?
類(lèi)比于單機(jī)系統(tǒng)。hdfs就是linux的文件系統(tǒng),hbase就是資源管理器,hive就是圖形化界面,GUI再快,不可能快過(guò)命令行
?
個(gè)人理解:
hive的優(yōu)勢(shì)是在于對(duì)于集群文件HDFS的查詢(xún)功能。
HBase早期在國(guó)內(nèi)被很多大型互聯(lián)網(wǎng)公司大規(guī)模使用,促進(jìn)了國(guó)內(nèi)的生態(tài)發(fā)展,而Cassandra似乎在國(guó)外發(fā)展得更好
?
?
Hbase,主要用于明細(xì)查詢(xún),即席查詢(xún),因?yàn)樗彀?#xff0c;但是不適合多條件查詢(xún)
?
?hbase適合寫(xiě)密集型應(yīng)用,每天寫(xiě)入量巨大,而相對(duì)讀數(shù)量較小的應(yīng)用,比如IM的歷史消息,游戲的日志等等
HBase是根據(jù)谷歌的BigTable設(shè)計(jì)的。典型的應(yīng)用場(chǎng)景就是不斷插入新的信息(谷歌的情況下就是互聯(lián)網(wǎng)上新生成的網(wǎng)頁(yè)),而不怎么修改。比如現(xiàn)在Facebook的messenger就是用HBase實(shí)現(xiàn)的。
這里要提到HBase是按行存儲(chǔ)的,所以特點(diǎn)就是插入(ingest)快。但是做分析的時(shí)候經(jīng)常是要按列掃描(scan)的。比如算一個(gè)公司員工的平均工資。
Cloudera在推出新的列存儲(chǔ)引擎Kudu的時(shí)候討論過(guò)HDFS,HBase,和Kudu的應(yīng)用場(chǎng)景。
?
根據(jù)[2]其實(shí)Cassandra的寫(xiě)入性能比Hbase更勝一籌,并且讀取性能也優(yōu)于hbase
?
下面是商用的公司:
| 數(shù)據(jù)庫(kù) | 公司 |
| Hbase | 美團(tuán),淘寶 |
| Cassandra | 蘋(píng)果 |
?
注意,無(wú)論是國(guó)內(nèi)的前程無(wú)憂(yōu)還是國(guó)外的indeed,目前hbase的崗位需求都高于cassandra十倍以上。
Reference:
[1]HBase 和 Hive 的差別是什么,各自適用在什么場(chǎng)景中?
[2]Cassandra HBase和MongoDb性能比較
總結(jié)
以上是生活随笔為你收集整理的hive与hbase的以及mongodb和cassandra区别整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 制作复选框(Toggle)
- 下一篇: HBase-site.xml 常见重要配