大数据技术Hbase 和 Hive 详解
目錄
兩者的特點(diǎn)
各自的限制
應(yīng)用場(chǎng)景
大數(shù)據(jù)技術(shù)Hbase?和?Hive?詳解,?今天給大家介紹一下關(guān)于零基礎(chǔ)學(xué)習(xí)大數(shù)據(jù)視頻教程之HBASE?和?HIVE?是多么重要的技術(shù),那么兩者有什么區(qū)別呢???下面我們一起來看一下吧。
?ApacheHive?是一個(gè)構(gòu)建在?hadoop?基礎(chǔ)設(shè)施之上的數(shù)據(jù)倉(cāng)庫。通過?Hive?可以使用?HQL?語言查詢存放在?HDFS?上的數(shù)據(jù)。?HQL?是一種類?SQL?語言,這種語言最終被轉(zhuǎn)化為?Map/Reduce.?雖然?Hive?提供了?SQL?查詢功能,但是?Hive?不能夠進(jìn)行交互查詢–因?yàn)樗荒軌蛟?Haoop?上批量的執(zhí)行?Hadoop?。
?ApacheHBase?是一種?Key/Value?系統(tǒng),它運(yùn)行在?HDFS?之上。和?Hive?不一樣,?Hbase?的能夠在它的數(shù)據(jù)庫上實(shí)時(shí)運(yùn)行,而不是運(yùn)行?MapReduce?任務(wù)。?Hive?被分區(qū)為表格,表格又被進(jìn)一步分割為列簇。列簇必須使用?schema?定義,列簇將某一類型列集合起來?(?列不要求?schema?定義?)?。例如,“?message?”列簇可能包含:“?to?”,”?from?”“?date?”,“?subject?”,和”?body?”。每一個(gè)?key/value?對(duì)在?Hbase?中被定義為一個(gè)?cell?,每一個(gè)?key?由?row-key?,列簇、列和時(shí)間戳。在?Hbase?中,行是?key/value?映射的集合,這個(gè)映射通過?row-key?來唯一標(biāo)識(shí)。?Hbase?利用?Hadoop?的基礎(chǔ)設(shè)施,可以利用通用的設(shè)備進(jìn)行水平的擴(kuò)展。
兩者的特點(diǎn)
?Hive?幫助熟悉?SQL?的人運(yùn)行?MapReduce?任務(wù)。因?yàn)樗?JDBC?兼容的,同時(shí),它也能夠和現(xiàn)存的?SQL?工具整合在一起。運(yùn)行?Hive?查詢會(huì)花費(fèi)很長(zhǎng)時(shí)間,因?yàn)樗鼤?huì)默認(rèn)遍歷表中所有的數(shù)據(jù)。雖然有這樣的缺點(diǎn),一次遍歷的數(shù)據(jù)量可以通過?Hive?的分區(qū)機(jī)制來控制。分區(qū)允許在數(shù)據(jù)集上運(yùn)行過濾查詢,這些數(shù)據(jù)集存儲(chǔ)在不同的文件夾內(nèi),查詢的時(shí)候只遍歷指定文件夾?(?分區(qū)?)?中的數(shù)據(jù)。這種機(jī)制可以用來,例如,只處理在某一個(gè)時(shí)間范圍內(nèi)的文件,只要這些文件名中包括了時(shí)間格式。
?HBase?通過存儲(chǔ)?key/value?來工作。它支持四種主要的操作:增加或者更新行,查看一個(gè)范圍內(nèi)的?cell?,獲取指定的行,刪除指定的行、列或者是列的版本。版本信息用來獲取歷史數(shù)據(jù)?(?每一行的歷史數(shù)據(jù)可以被刪除,然后通過?Hbasecompactions?就可以釋放出空間?)?。雖然?HBase?包括表格,但是?schema?僅僅被表格和列簇所要求,列不需要?schema?。?Hbase?的表格包括增加?/?計(jì)數(shù)功能。
各自的限制
?Hive?目前不支持更新操作。另外,由于?hive?在?hadoop?上運(yùn)行批量操作,它需要花費(fèi)很長(zhǎng)的時(shí)間,通常是幾分鐘到幾個(gè)小時(shí)才可以獲取到查詢的結(jié)果。?Hive?必須提供預(yù)先定義好的?schema?將文件和目錄映射到列,并且?Hive?與?ACID?不兼容。
?HBase?查詢是通過特定的語言來編寫的,這種語言需要重新學(xué)習(xí)。類?SQL?的功能可以通過?ApachePhonenix?實(shí)現(xiàn),但這是以必須提供?schema?為代價(jià)的。另外,?Hbase?也并不是兼容所有的?ACID?特性,雖然它支持某些特性。最后但不是最重要的–為了運(yùn)行?Hbase?,?Zookeeper?是必須的,?zookeeper?是一個(gè)用來進(jìn)行分布式協(xié)調(diào)的服務(wù),這些服務(wù)包括配置服務(wù),維護(hù)元信息和命名空間服務(wù)。
應(yīng)用場(chǎng)景
?Hive?適合用來對(duì)一段時(shí)間內(nèi)的數(shù)據(jù)進(jìn)行分析查詢,例如,用來計(jì)算趨勢(shì)或者網(wǎng)站的日志。?Hive?不應(yīng)該用來進(jìn)行實(shí)時(shí)的查詢。因?yàn)樗枰荛L(zhǎng)時(shí)間才可以返回結(jié)果。
?Hbase?非常適合用來進(jìn)行大數(shù)據(jù)的實(shí)時(shí)查詢。?Facebook?用?Hbase?進(jìn)行消息和實(shí)時(shí)的分析。它也可以用來統(tǒng)計(jì)?Facebook?的連接數(shù)。
?Hive?和?Hbase?是兩種基于?Hadoop?的不同大數(shù)據(jù)技術(shù)–?Hive?是一種類?SQL?的引擎,并且運(yùn)行?MapReduce?任務(wù),?Hbase?是一種在?Hadoop?之上的?NoSQL?的?Key/vale?數(shù)據(jù)庫。當(dāng)然,這兩種工具是可以同時(shí)使用的。就像用?Google?來搜索,用?FaceBook?進(jìn)行社交一樣,?Hive?可以用來進(jìn)行統(tǒng)計(jì)查詢,?HBase?可以用來進(jìn)行實(shí)時(shí)查詢,數(shù)據(jù)也可以從?Hive?寫到?Hbase?,設(shè)置再?gòu)?Hbase?寫回?Hive?。
?
總結(jié)
以上是生活随笔為你收集整理的大数据技术Hbase 和 Hive 详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大牛们的资料与主页
- 下一篇: WordPress环境配置与安装