hadoop/hive/hbase 简单区别及应用场景
1、hadoop:它是一個(gè)分布式計(jì)算+分布式文件系統(tǒng),前者其實(shí)就是MapReduce,后者是HDFS。后者可以獨(dú)立運(yùn)行,前者可以選擇性使用,也可以不使用
2、hive:通俗的說(shuō)是一個(gè)數(shù)據(jù)倉(cāng)庫(kù),倉(cāng)庫(kù)中的數(shù)據(jù)是被hdfs管理的數(shù)據(jù)文件,它支持類似sql語(yǔ)句的功能,你可以通過(guò)該語(yǔ)句完成分布式環(huán)境下的計(jì)算功能,hive會(huì)把語(yǔ)句轉(zhuǎn)換成MapReduce,然后交給hadoop執(zhí)行。這里的計(jì)算,僅限于查找和分析,而不是更新、增加和刪除。它的優(yōu)勢(shì)是對(duì)歷史數(shù)據(jù)進(jìn)行處理,用時(shí)下流行的說(shuō)法是離線計(jì)算,因?yàn)樗牡讓邮荕apReduce,MapReduce在實(shí)時(shí)計(jì)算上性能很差。它的做法是把數(shù)據(jù)文件加載進(jìn)來(lái)作為一個(gè)hive表(或者外部表),讓你覺得你的sql操作的是傳統(tǒng)的表。
3、hbase:通俗的說(shuō),hbase的作用類似于數(shù)據(jù)庫(kù),傳統(tǒng)數(shù)據(jù)庫(kù)管理的是集中的本地?cái)?shù)據(jù)文件,而hbase基于hdfs實(shí)現(xiàn)對(duì)分布式數(shù)據(jù)文件的管理,比如增刪改查。也就是說(shuō),hbase只是利用hadoop的hdfs幫助其管理數(shù)據(jù)的持久化文件(HFile),它跟MapReduce沒(méi)任何關(guān)系。hbase的優(yōu)勢(shì)在于實(shí)時(shí)計(jì)算,所有實(shí)時(shí)數(shù)據(jù)都直接存入hbase中,客戶端通過(guò)API直接訪問(wèn)hbase,實(shí)現(xiàn)實(shí)時(shí)計(jì)算。由于它使用的是nosql,或者說(shuō)是列式結(jié)構(gòu),從而提高了查找性能,使其能運(yùn)用于大數(shù)據(jù)場(chǎng)景,這是它跟MapReduce的區(qū)別。
總結(jié):
hadoop是hive和hbase的基礎(chǔ),hive依賴hadoop,而hbase僅依賴hadoop的hdfs模塊。
hive適用于離線數(shù)據(jù)的分析,操作的是通用格式的(如通用的日志文件)、被hadoop管理的數(shù)據(jù)文件,它支持類sql,比編寫MapReduce的java代碼來(lái)的更加方便,它的定位是數(shù)據(jù)倉(cāng)庫(kù),存儲(chǔ)和分析歷史數(shù)據(jù)
hbase適用于實(shí)時(shí)計(jì)算,采用列式結(jié)構(gòu)的nosql,操作的是自己生成的特殊格式的HFile、被hadoop管理的數(shù)據(jù)文件,它的定位是數(shù)據(jù)庫(kù),或者叫DBMS
?
最后補(bǔ)充一下:hive可以直接操作hdfs中的文件作為它的表的數(shù)據(jù),也可以使用hbase數(shù)據(jù)庫(kù)作為它的表
HDFS和Hbase究竟是什么?
HDFS容錯(cuò)率很高,即便是在系統(tǒng)崩潰的情況下,也能夠在節(jié)點(diǎn)之間快速傳輸數(shù)據(jù)。HBase是非關(guān)系數(shù)據(jù)庫(kù),是開源的Not-Only-SQL數(shù)據(jù)庫(kù),它的運(yùn)行建立在Hadoop上。HBase依賴于CAP定理(Consistency, Availability, and Partition Tolerance)中的CP項(xiàng)。
HDFS最適于執(zhí)行批次分析。然而,它最大的缺點(diǎn)是無(wú)法執(zhí)行實(shí)時(shí)分析,而實(shí)時(shí)分析是信息科技行業(yè)的標(biāo)配。HBase能夠處理大規(guī)模數(shù)據(jù),它不適于批次分析,但它可以向Hadoop實(shí)時(shí)地調(diào)用數(shù)據(jù)。
HDFS和HBase都可以處理結(jié)構(gòu)、半結(jié)構(gòu)和非結(jié)構(gòu)數(shù)據(jù)。因?yàn)镠DFS建立在舊的MapReduce框架上,所以它缺乏內(nèi)存引擎,數(shù)據(jù)分析速度較慢。相反,HBase使用了內(nèi)存引擎,大大提高了數(shù)據(jù)的讀寫速度。
HDFS執(zhí)行的數(shù)據(jù)分析過(guò)程是透明的。HBase與之相反,因?yàn)槠浣Y(jié)構(gòu)基于NoSQL,它通過(guò)在不同的關(guān)鍵字下進(jìn)行排序而獲取數(shù)據(jù)。
通過(guò)實(shí)例來(lái)加強(qiáng)對(duì)HDFS和HBase的理解
實(shí)例1
Cloudera對(duì)歐洲銀行使用HBase的過(guò)程進(jìn)行優(yōu)化
HBase是實(shí)時(shí)數(shù)據(jù)處理環(huán)境的最佳典范。我們的一個(gè)客戶是某歐洲著名銀行,下面要舉的就是這個(gè)客戶的例子,恰到好處的說(shuō)明了問(wèn)題。我們同時(shí)使用了Apache Storm和Apache Hbase,來(lái)分析應(yīng)用服務(wù)器和網(wǎng)頁(yè)服務(wù)器上的日志數(shù)據(jù),想以此得到一些新發(fā)現(xiàn)。因?yàn)閱挝粫r(shí)間內(nèi)我們需要處理大量的數(shù)據(jù),所以我們最終決定使用HBase而不是HDFS。HDFS不能處理高速流動(dòng)的數(shù)據(jù)。結(jié)果令人震驚,搜索時(shí)間從3天變成了3分鐘。
實(shí)例2
使用HDFS和MapReduce作為全球快速消費(fèi)品巨頭的分析方案
我們的一位客戶是全球飲料業(yè)巨頭,它要求我們做一些批次分析,這些分析必須精確到某一特定倉(cāng)庫(kù)的進(jìn)出量。分析中需要使用一些迭代分析和序列分析。HDFS和MapReduce就很適應(yīng)這種工作需求,表現(xiàn)要比建立在HBase上的Hive要好。MapReduce解決數(shù)據(jù)預(yù)處理,將數(shù)據(jù)準(zhǔn)備好作下一步的分析。之后Hive接管任務(wù),去做顧客分析。結(jié)果非常好,出顧客分析報(bào)告的時(shí)間由3天縮短為3小時(shí)。
HDFS 和 HBase 比較表格
總結(jié)
以上是生活随笔為你收集整理的hadoop/hive/hbase 简单区别及应用场景的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: #Hive报错 WritableStri
- 下一篇: JP