十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
Apache Hive社區(qū)項(xiàng)目的提交者包括Cloudera,Hortonworks,F(xiàn)acebook,Intel,LinkedIn,Databricks等。Hadoop發(fā)行版支持Hive。與Hbase NoSQL數(shù)據(jù)庫一樣,它通常作為Hadoop分布式數(shù)據(jù)處理應(yīng)用程序的一部分實(shí)現(xiàn)。Hive可從Apache Foundation下載,也可從Hadoop分發(fā)商Cloudera,MapR和Hortonworks下載,也可作為AWS Elastic MapReduce的一部分下載。后一種實(shí)現(xiàn)方式支持在Simple Storage Service對(duì)象存儲(chǔ)中的數(shù)據(jù)集分析。
成都創(chuàng)新互聯(lián)公司從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元港北做網(wǎng)站,已為上家服務(wù),為港北各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
Apache Hive是首次將SQL查詢功能引入Hadoop生態(tài)系統(tǒng)的軟件之一。在眾多其他SQL-on-Hadoop產(chǎn)品中出現(xiàn)的是BigSQL,Drill,Hadapt,Impala和Presto。此外,Apache Pig已經(jīng)成為面向Hadoop數(shù)據(jù)庫的HiveQL的替代語言。
hbase和hive的主要區(qū)別是:他們對(duì)于其內(nèi)部的數(shù)據(jù)的存儲(chǔ)和管理方式是不同的,hbase其主要特點(diǎn)是仿照bigtable的列勢(shì)存儲(chǔ),對(duì)于大型的數(shù)據(jù)的存儲(chǔ),查詢比傳統(tǒng)數(shù)據(jù)庫有巨大的優(yōu)勢(shì),而hive其產(chǎn)生主要應(yīng)對(duì)的數(shù)據(jù)倉庫問題,其將存在在hdfs上的文件目錄結(jié)構(gòu)映射成表。主要關(guān)注的是對(duì)數(shù)據(jù)的統(tǒng)計(jì)等方面。適合的場(chǎng)景:hbase:適合大型數(shù)據(jù)存儲(chǔ),其作用可以類比于傳統(tǒng)數(shù)據(jù)庫的作用,主要關(guān)注的數(shù)據(jù)的存取。hive:適合大數(shù)據(jù)的管理,統(tǒng)計(jì),處理,其作用類比于傳統(tǒng)的數(shù)據(jù)倉庫,主要關(guān)注的數(shù)據(jù)的處理。總結(jié):應(yīng)對(duì)大數(shù)據(jù)的時(shí)候,如果你偏重于數(shù)據(jù)存儲(chǔ)查詢hbase無疑是更加適合,而你關(guān)注的是對(duì)大數(shù)據(jù)的處理結(jié)果查詢,比如你查詢的時(shí)候有類似于count,sum等函數(shù)操作 hive就能滿足你的需求,一般有些項(xiàng)目都輸在hive里面進(jìn)行數(shù)據(jù)處理,然后將結(jié)果導(dǎo)入mysql等數(shù)據(jù)庫或者h(yuǎn)base中進(jìn)行查詢,至于mysql與hbase的選擇 比較傾向于你的處理之后的數(shù)據(jù)量
特點(diǎn):
它們可以處理超大量的數(shù)據(jù)。
它們運(yùn)行在便宜的PC服務(wù)器集群上。
PC集群擴(kuò)充起來非常方便并且成本很低,避免了“sharding”操作的復(fù)雜性和成本。
它們擊碎了性能瓶頸。
NoSQL的支持者稱,通過NoSQL架構(gòu)可以省去將Web或Java應(yīng)用和數(shù)據(jù)轉(zhuǎn)換成SQL友好格式的時(shí)間,執(zhí)行速度變得更快。
“SQL并非適用于所有的程序代碼,” 對(duì)于那些繁重的重復(fù)操作的數(shù)據(jù),SQL值得花錢。但是當(dāng)數(shù)據(jù)庫結(jié)構(gòu)非常簡單時(shí),SQL可能沒有太大用處。
沒有過多的操作。
雖然NoSQL的支持者也承認(rèn)關(guān)系數(shù)據(jù)庫提供了無可比擬的功能集合,而且在數(shù)據(jù)完整性上也發(fā)揮絕對(duì)穩(wěn)定,他們同時(shí)也表示,企業(yè)的具體需求可能沒有那么多。
Bootstrap支持
因?yàn)镹oSQL項(xiàng)目都是開源的,因此它們?nèi)狈?yīng)商提供的正式支持。這一點(diǎn)它們與大多數(shù)開源項(xiàng)目一樣,不得不從社區(qū)中尋求支持。
優(yōu)點(diǎn):
易擴(kuò)展
NoSQL數(shù)據(jù)庫種類繁多,但是一個(gè)共同的特點(diǎn)都是去掉關(guān)系數(shù)據(jù)庫的關(guān)系型特性。數(shù)據(jù)之間無關(guān)系,這樣就非常容易擴(kuò)展。也無形之間,在架構(gòu)的層面上帶來了可擴(kuò)展的能力。
大數(shù)據(jù)量,高性能
NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,同樣表現(xiàn)優(yōu)秀。這得益于它的無關(guān)系性,數(shù)據(jù)庫的結(jié)構(gòu)簡單。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一種大粒度的Cache,在針對(duì)web2.0的交互頻繁的應(yīng)用,Cache性能不高。而NoSQL的 Cache是記錄級(jí)的,是一種細(xì)粒度的Cache,所以NoSQL在這個(gè)層面上來說就要性能高很多了。
靈活的數(shù)據(jù)模型
NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡直就是一個(gè)噩夢(mèng)。這點(diǎn)在大數(shù)據(jù)量的web2.0時(shí)代尤其明顯。
高可用
NoSQL在不太影響性能的情況,就可以方便的實(shí)現(xiàn)高可用的架構(gòu)。比如Cassandra,HBase模型,通過復(fù)制模型也能實(shí)現(xiàn)高可用。
主要應(yīng)用:
Apache HBase
這個(gè)大數(shù)據(jù)管理平臺(tái)建立在谷歌強(qiáng)大的BigTable管理引擎基礎(chǔ)上。作為具有開源、Java編碼、分布式多個(gè)優(yōu)勢(shì)的數(shù)據(jù)庫,Hbase最初被設(shè)計(jì)應(yīng)用于Hadoop平臺(tái),而這一強(qiáng)大的數(shù)據(jù)管理工具,也被Facebook采用,用于管理消息平臺(tái)的龐大數(shù)據(jù)。
Apache Storm
用于處理高速、大型數(shù)據(jù)流的分布式實(shí)時(shí)計(jì)算系統(tǒng)。Storm為Apache Hadoop添加了可靠的實(shí)時(shí)數(shù)據(jù)處理功能,同時(shí)還增加了低延遲的儀表板、安全警報(bào),改進(jìn)了原有的操作方式,幫助企業(yè)更有效率地捕獲商業(yè)機(jī)會(huì)、發(fā)展新業(yè)務(wù)。
Apache Spark
該技術(shù)采用內(nèi)存計(jì)算,從多迭代批量處理出發(fā),允許將數(shù)據(jù)載入內(nèi)存做反復(fù)查詢,此外還融合數(shù)據(jù)倉庫、流處理和圖計(jì)算等多種計(jì)算范式,Spark用Scala語言實(shí)現(xiàn),構(gòu)建在HDFS上,能與Hadoop很好的結(jié)合,而且運(yùn)行速度比MapReduce快100倍。
Apache Hadoop
該技術(shù)迅速成為了大數(shù)據(jù)管理標(biāo)準(zhǔn)之一。當(dāng)它被用來管理大型數(shù)據(jù)集時(shí),對(duì)于復(fù)雜的分布式應(yīng)用,Hadoop體現(xiàn)出了非常好的性能,平臺(tái)的靈活性使它可以運(yùn)行在商用硬件系統(tǒng),它還可以輕松地集成結(jié)構(gòu)化、半結(jié)構(gòu)化和甚至非結(jié)構(gòu)化數(shù)據(jù)集。
Apache Drill
你有多大的數(shù)據(jù)集?其實(shí)無論你有多大的數(shù)據(jù)集,Drill都能輕松應(yīng)對(duì)。通過支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平臺(tái),允許大規(guī)模數(shù)據(jù)吞吐,而且能很快得出結(jié)果。
Apache Sqoop
也許你的數(shù)據(jù)現(xiàn)在還被鎖定于舊系統(tǒng)中,Sqoop可以幫你解決這個(gè)問題。這一平臺(tái)采用并發(fā)連接,可以將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫系統(tǒng)方便地轉(zhuǎn)移到Hadoop中,可以自定義數(shù)據(jù)類型以及元數(shù)據(jù)傳播的映射。事實(shí)上,你還可以將數(shù)據(jù)(如新的數(shù)據(jù))導(dǎo)入到HDFS、Hive和Hbase中。
Apache Giraph
這是功能強(qiáng)大的圖形處理平臺(tái),具有很好可擴(kuò)展性和可用性。該技術(shù)已經(jīng)被Facebook采用,Giraph可以運(yùn)行在Hadoop環(huán)境中,可以將它直接部署到現(xiàn)有的Hadoop系統(tǒng)中。通過這種方式,你可以得到強(qiáng)大的分布式作圖能力,同時(shí)還能利用上現(xiàn)有的大數(shù)據(jù)處理引擎。
Cloudera Impala
Impala模型也可以部署在你現(xiàn)有的Hadoop群集上,監(jiān)視所有的查詢。該技術(shù)和MapReduce一樣,具有強(qiáng)大的批處理能力,而且Impala對(duì)于實(shí)時(shí)的SQL查詢也有很好的效果,通過高效的SQL查詢,你可以很快的了解到大數(shù)據(jù)平臺(tái)上的數(shù)據(jù)。
Gephi
它可以用來對(duì)信息進(jìn)行關(guān)聯(lián)和量化處理,通過為數(shù)據(jù)創(chuàng)建功能強(qiáng)大的可視化效果,你可以從數(shù)據(jù)中得到不一樣的洞察力。Gephi已經(jīng)支持多個(gè)圖表類型,而且可以在具有上百萬個(gè)節(jié)點(diǎn)的大型網(wǎng)絡(luò)上運(yùn)行。Gephi具有活躍的用戶社區(qū),Gephi還提供了大量的插件,可以和現(xiàn)有系統(tǒng)完美的集成到一起,它還可以對(duì)復(fù)雜的IT連接、分布式系統(tǒng)中各個(gè)節(jié)點(diǎn)、數(shù)據(jù)流等信息進(jìn)行可視化分析。
MongoDB
這個(gè)堅(jiān)實(shí)的平臺(tái)一直被很多組織推崇,它在大數(shù)據(jù)管理上有極好的性能。MongoDB最初是由DoubleClick公司的員工創(chuàng)建,現(xiàn)在該技術(shù)已經(jīng)被廣泛的應(yīng)用于大數(shù)據(jù)管理。MongoDB是一個(gè)應(yīng)用開源技術(shù)開發(fā)的NoSQL數(shù)據(jù)庫,可以用于在JSON這樣的平臺(tái)上存儲(chǔ)和處理數(shù)據(jù)。目前,紐約時(shí)報(bào)、Craigslist以及眾多企業(yè)都采用了MongoDB,幫助他們管理大型數(shù)據(jù)集。(Couchbase服務(wù)器也作為一個(gè)參考)。
十大頂尖公司:
Amazon Web Services
Forrester將AWS稱為“云霸主”,談到云計(jì)算領(lǐng)域的大數(shù)據(jù),那就不得不提到亞馬遜。該公司的Hadoop產(chǎn)品被稱為EMR(Elastic Map Reduce),AWS解釋這款產(chǎn)品采用了Hadoop技術(shù)來提供大數(shù)據(jù)管理服務(wù),但它不是純開源Hadoop,經(jīng)過修改后現(xiàn)在被專門用在AWS云上。
Forrester稱EMR有很好的市場(chǎng)前景。很多公司基于EMR為客戶提供服務(wù),有一些公司將EMR應(yīng)用于數(shù)據(jù)查詢、建模、集成和管理。而且AWS還在創(chuàng)新,F(xiàn)orrester稱未來EMR可以基于工作量的需要自動(dòng)縮放調(diào)整大小。亞馬遜計(jì)劃為其產(chǎn)品和服務(wù)提供更強(qiáng)大的EMR支持,包括它的RedShift數(shù)據(jù)倉庫、新公布的Kenesis實(shí)時(shí)處理引擎以及計(jì)劃中的NoSQL數(shù)據(jù)庫和商業(yè)智能工具。不過AWS還沒有自己的Hadoop發(fā)行版。
Cloudera
Cloudera有開源Hadoop的發(fā)行版,這個(gè)發(fā)行版采用了Apache Hadoop開源項(xiàng)目的很多技術(shù),不過基于這些技術(shù)的發(fā)行版也有很大的進(jìn)步。Cloudera為它的Hadoop發(fā)行版開發(fā)了很多功能,包括Cloudera管理器,用于管理和監(jiān)控,以及名為Impala的SQL引擎等。Cloudera的Hadoop發(fā)行版基于開源Hadoop,但也不是純開源的產(chǎn)品。當(dāng)Cloudera的客戶需要Hadoop不具備的某些功能時(shí),Cloudera的工程師們就會(huì)實(shí)現(xiàn)這些功能,或者找一個(gè)擁有這項(xiàng)技術(shù)的合作伙伴。Forrester表示:“Cloudera的創(chuàng)新方法忠于核心Hadoop,但因?yàn)槠淇蓪?shí)現(xiàn)快速創(chuàng)新并積極滿足客戶需求,這一點(diǎn)使它不同于其他那些供應(yīng)商?!蹦壳埃珻loudera的平臺(tái)已經(jīng)擁有200多個(gè)付費(fèi)客戶,一些客戶在Cloudera的技術(shù)支持下已經(jīng)可以跨1000多個(gè)節(jié)點(diǎn)實(shí)現(xiàn)對(duì)PB級(jí)數(shù)據(jù)的有效管理。
Hortonworks
和Cloudera一樣,Hortonworks是一個(gè)純粹的Hadoop技術(shù)公司。與Cloudera不同的是,Hortonworks堅(jiān)信開源Hadoop比任何其他供應(yīng)商的Hadoop發(fā)行版都要強(qiáng)大。Hortonworks的目標(biāo)是建立Hadoop生態(tài)圈和Hadoop用戶社區(qū),推進(jìn)開源項(xiàng)目的發(fā)展。Hortonworks平臺(tái)和開源Hadoop聯(lián)系緊密,公司管理人員表示這會(huì)給用戶帶來好處,因?yàn)樗梢苑乐贡还?yīng)商套牢(如果Hortonworks的客戶想要離開這個(gè)平臺(tái),他們可以輕松轉(zhuǎn)向其他開源平臺(tái))。這并不是說Hortonworks完全依賴開源Hadoop技術(shù),而是因?yàn)樵摴緦⑵渌虚_發(fā)的成果回報(bào)給了開源社區(qū),比如Ambari,這個(gè)工具就是由Hortonworks開發(fā)而成,用來填充集群管理項(xiàng)目漏洞。Hortonworks的方案已經(jīng)得到了Teradata、Microsoft、Red Hat和SAP這些供應(yīng)商的支持。
IBM
當(dāng)企業(yè)考慮一些大的IT項(xiàng)目時(shí),很多人首先會(huì)想到IBM。IBM是Hadoop項(xiàng)目的主要參與者之一,F(xiàn)orrester稱IBM已有100多個(gè)Hadoop部署,它的很多客戶都有PB級(jí)的數(shù)據(jù)。IBM在網(wǎng)格計(jì)算、全球數(shù)據(jù)中心和企業(yè)大數(shù)據(jù)項(xiàng)目實(shí)施等眾多領(lǐng)域有著豐富的經(jīng)驗(yàn)?!癐BM計(jì)劃繼續(xù)整合SPSS分析、高性能計(jì)算、BI工具、數(shù)據(jù)管理和建模、應(yīng)對(duì)高性能計(jì)算的工作負(fù)載管理等眾多技術(shù)?!?/p>
Intel
和AWS類似,英特爾不斷改進(jìn)和優(yōu)化Hadoop使其運(yùn)行在自己的硬件上,具體來說,就是讓Hadoop運(yùn)行在其至強(qiáng)芯片上,幫助用戶打破Hadoop系統(tǒng)的一些限制,使軟件和硬件結(jié)合的更好,英特爾的Hadoop發(fā)行版在上述方面做得比較好。Forrester指出英特爾在最近才推出這個(gè)產(chǎn)品,所以公司在未來還有很多改進(jìn)的可能,英特爾和微軟都被認(rèn)為是Hadoop市場(chǎng)上的潛力股。
MapR Technologies
MapR的Hadoop發(fā)行版目前為止也許是最好的了,不過很多人可能都沒有聽說過。Forrester對(duì)Hadoop用戶的調(diào)查顯示,MapR的評(píng)級(jí)最高,其發(fā)行版在架構(gòu)和數(shù)據(jù)處理能力上都獲得了最高分。MapR已將一套特殊功能融入其Hadoop發(fā)行版中。例如網(wǎng)絡(luò)文件系統(tǒng)(NFS)、災(zāi)難恢復(fù)以及高可用性功能。Forrester說MapR在Hadoop市場(chǎng)上沒有Cloudera和Hortonworks那樣的知名度,MapR要成為一個(gè)真正的大企業(yè),還需要加強(qiáng)伙伴關(guān)系和市場(chǎng)營銷。
Microsoft
微軟在開源軟件問題上一直很低調(diào),但在大數(shù)據(jù)形勢(shì)下,它不得不考慮讓W(xué)indows也兼容Hadoop,它還積極投入到開源項(xiàng)目中,以更廣泛地推動(dòng)Hadoop生態(tài)圈的發(fā)展。我們可以在微軟的公共云Windows Azure HDInsight產(chǎn)品中看到其成果。微軟的Hadoop服務(wù)基于Hortonworks的發(fā)行版,而且是為Azure量身定制的。
微軟也有一些其他的項(xiàng)目,包括名為Polybase的項(xiàng)目,讓Hadoop查詢實(shí)現(xiàn)了SQLServer查詢的一些功能。Forrester說:“微軟在數(shù)據(jù)庫、數(shù)據(jù)倉庫、云、OLAP、BI、電子表格(包括PowerPivot)、協(xié)作和開發(fā)工具市場(chǎng)上有很大優(yōu)勢(shì),而且微軟擁有龐大的用戶群,但要在Hadoop這個(gè)領(lǐng)域成為行業(yè)領(lǐng)導(dǎo)者還有很遠(yuǎn)的路要走?!?/p>
Pivotal Software
EMC和Vmware部分大數(shù)據(jù)業(yè)務(wù)分拆組合產(chǎn)生了Pivotal。Pivotal一直努力構(gòu)建一個(gè)性能優(yōu)越的Hadoop發(fā)行版,為此,Pivotal在開源Hadoop的基礎(chǔ)上又添加了一些新的工具,包括一個(gè)名為HAWQ的SQL引擎以及一個(gè)專門解決大數(shù)據(jù)問題的Hadoop應(yīng)用。Forrester稱Pivotal Hadoop平臺(tái)的優(yōu)勢(shì)在于它整合了Pivotal、EMC、Vmware的眾多技術(shù),Pivotal的真正優(yōu)勢(shì)實(shí)際上等于EMC和Vmware兩大公司為其撐腰。到目前為止,Pivotal的用戶還不到100個(gè),而且大多是中小型客戶。
Teradata
對(duì)于Teradata來說,Hadoop既是一種威脅也是一種機(jī)遇。數(shù)據(jù)管理,特別是關(guān)于SQL和關(guān)系數(shù)據(jù)庫這一領(lǐng)域是Teradata的專長。所以像Hadoop這樣的NoSQL平臺(tái)崛起可能會(huì)威脅到Teradata。相反,Teradata接受了Hadoop,通過與Hortonworks合作,Teradata在Hadoop平臺(tái)集成了SQL技術(shù),這使Teradata的客戶可以在Hadoop平臺(tái)上方便地使用存儲(chǔ)在Teradata數(shù)據(jù)倉庫中的數(shù)據(jù)。
AMPLab
通過將數(shù)據(jù)轉(zhuǎn)變?yōu)樾畔?,我們才可以理解世界,而這也正是AMPLab所做的。AMPLab致力于機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、數(shù)據(jù)庫、信息檢索、自然語言處理和語音識(shí)別等多個(gè)領(lǐng)域,努力改進(jìn)對(duì)信息包括不透明數(shù)據(jù)集內(nèi)信息的甄別技術(shù)。除了Spark,開源分布式SQL查詢引擎Shark也源于AMPLab,Shark具有極高的查詢效率,具有良好的兼容性和可擴(kuò)展性。近幾年的發(fā)展使計(jì)算機(jī)科學(xué)進(jìn)入到全新的時(shí)代,而AMPLab為我們?cè)O(shè)想一個(gè)運(yùn)用大數(shù)據(jù)、云計(jì)算、通信等各種資源和技術(shù)靈活解決難題的方案,以應(yīng)對(duì)越來越復(fù)雜的各種難題。
一個(gè)公司里面不同項(xiàng)目可能用到不同的數(shù)據(jù)源,有的存在MySQL里面,又的存在MongoDB里面,甚至還有些要做第三方數(shù)據(jù)。
但是現(xiàn)在又想把數(shù)據(jù)整合起來,進(jìn)行 數(shù)據(jù)分析 。此時(shí)數(shù)據(jù)倉庫(Data Warehouse,DW)就派上用場(chǎng)了。它可以對(duì)多種業(yè)務(wù)數(shù)據(jù)進(jìn)行篩選和整合,可以用于數(shù)據(jù)分析、數(shù)據(jù)挖掘、數(shù)據(jù)報(bào)表。
總的來說,數(shù)據(jù)倉庫是將多個(gè)數(shù)據(jù)源的數(shù)據(jù)按照一定的 主題 集成起來,因?yàn)橹暗臄?shù)據(jù)各不相同,所以需要 抽取、清洗、轉(zhuǎn)換 。
整合以后的數(shù)據(jù)不允許隨便修改,只能分析,還需要定期更新。
上面我們說過,數(shù)據(jù)倉庫接收的數(shù)據(jù)源是不同的,要做集成的話,需要 抽取、清洗、轉(zhuǎn)換 三個(gè)步驟,這就是 ETL (Extract-Transform-Load)
國內(nèi)最常用的是一款基于Hadoop的開源數(shù)據(jù)倉庫,名為 Hive ,它可以對(duì)存儲(chǔ)在 HDFS 的文件數(shù)據(jù)進(jìn)行 查詢、分析 。
Hive對(duì)外可以提供HiveQL,這是類似于SQL語言的一種查詢語言。在查詢時(shí)可以將HiveQL語句轉(zhuǎn)換為 MapReduce 任務(wù),在Hadoop層進(jìn)行執(zhí)行。
Hive的最大優(yōu)勢(shì)在于 免費(fèi) ,那其他知名的商業(yè)數(shù)據(jù)倉庫有那些呢?比如Oracle,DB2,其中業(yè)界老大是 Teradata
Teradata數(shù)據(jù)倉庫支持大規(guī)模并行處理平臺(tái)(MPP),可以高速處理海量實(shí)際上,性能遠(yuǎn)遠(yuǎn)高于Hive。對(duì)企業(yè)來說,只需要專注于業(yè)務(wù),節(jié)省管理技術(shù)方面的精力,實(shí)現(xiàn)ROI(投資回報(bào)率)最大化。
上面提到了Hive是最著名的開源數(shù)據(jù)倉庫,它是Hadoop生態(tài)中一個(gè)重要的組件。
Hadoop的生態(tài)中,HDFS解決了分布式存儲(chǔ)的問題,MapReduce解決了分布式計(jì)算的問題,而HBASE則提供了一種NoSQL的存儲(chǔ)方法。
但是如果需要的HDFS上的文件或者HBASE的表進(jìn)行查詢,需要自定義MapReduce方法。那么Hive其實(shí)就是在HDFS上面的一個(gè)中間層,它可以讓業(yè)務(wù)人員直接使用SQL進(jìn)行查詢。
所以Hive是用進(jìn)行數(shù)據(jù)提取轉(zhuǎn)換加載的,而且它可以把SQL轉(zhuǎn)換為MapReduce任務(wù),而Hive的表就是HDFS的目錄或者文件。
上圖為Hive的體系結(jié)構(gòu)
Hive主要包含以下幾種數(shù)據(jù)模型:
本文為 什么是數(shù)據(jù)倉庫? 的筆記
大數(shù)據(jù)技術(shù)的體系龐大且復(fù)雜,基礎(chǔ)的技術(shù)包含數(shù)據(jù)的采集、數(shù)據(jù)預(yù)處理、分布式存儲(chǔ)、數(shù)據(jù)庫、數(shù)據(jù)倉庫、機(jī)器學(xué)習(xí)、并行計(jì)算、可視化等。
1、數(shù)據(jù)采集與預(yù)處理:FlumeNG實(shí)時(shí)日志收集系統(tǒng),支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);Zookeeper是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供數(shù)據(jù)同步服務(wù)。
2、數(shù)據(jù)存儲(chǔ):Hadoop作為一個(gè)開源的框架,專為離線和大規(guī)模數(shù)據(jù)分析而設(shè)計(jì),HDFS作為其核心的存儲(chǔ)引擎,已被廣泛用于數(shù)據(jù)存儲(chǔ)。HBase,是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫,可以認(rèn)為是hdfs的封裝,本質(zhì)是數(shù)據(jù)存儲(chǔ)、NoSQL數(shù)據(jù)庫。
3、數(shù)據(jù)清洗:MapReduce作為Hadoop的查詢引擎,用于大規(guī)模數(shù)據(jù)集的并行計(jì)算。
4、數(shù)據(jù)查詢分析:Hive的核心工作就是把SQL語句翻譯成MR程序,可以將結(jié)構(gòu)化的數(shù)據(jù)映射為一張數(shù)據(jù)庫表,并提供HQL(HiveSQL)查詢功能。Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
5、數(shù)據(jù)可視化:對(duì)接一些BI平臺(tái),將分析得到的數(shù)據(jù)進(jìn)行可視化,用于指導(dǎo)決策服務(wù)。
hbase在三者中更注重的是存儲(chǔ),它實(shí)現(xiàn)了類似mysql的double write機(jī)制,但是它是一種NoSQL的數(shù)據(jù)庫,并且是可以支持列式存儲(chǔ)的,算是比較大的一個(gè)內(nèi)存Hash表。hbase也采用了類似mysql中的mvcc的思想通過時(shí)間戳來做版本控制。
hbase是在hdfs基礎(chǔ)之上的,可以算是數(shù)據(jù)的一種組織方式,是一種基于hadoop的分布式數(shù)據(jù)庫系統(tǒng)。從數(shù)據(jù)庫的角度來說,與mysql處在同一個(gè)層次,都是基于文件系統(tǒng)之上的管理數(shù)據(jù)的一種方法。
hbase作為面向列的數(shù)據(jù)庫,支持按列讀取和行讀取,并解決了關(guān)系型數(shù)據(jù)庫的分表的一些需求,如:關(guān)系型數(shù)據(jù)庫中有些表的列重復(fù)數(shù)據(jù)太多了,需要重新建表來存重復(fù)列的數(shù)據(jù),減少表的大小。
hive和impala則更偏向于查詢分析,impala需要依賴hive的元數(shù)據(jù),它們都有自己的查詢分析引擎,只是impala是純查詢分析引擎。
hive 本身并不執(zhí)行任務(wù)的分析過程,而是推給了mapreduce,這點(diǎn)與impala大不同,hive本身提供了數(shù)據(jù)的格式化輸出功能,但是hive轉(zhuǎn)換的mr可能不是最高效的,調(diào)優(yōu)方式有限,很多復(fù)雜的算法沒有辦法表達(dá),畢竟sql的語義表達(dá)能力有限。
hive與impala在查詢分析這部分,hive明顯的支持程度要比impala高,提供了很多內(nèi)部函數(shù),并且支持UDAF,UDF的方式
從數(shù)據(jù)庫特性角度來看,hive與hbase的對(duì)比,hive不能修改數(shù)據(jù),只能追加的方式,hbase允許增加和刪除數(shù)據(jù),hive不支持索引,impala和hive都是沒有存儲(chǔ)引擎的,hbase算是有自己的存儲(chǔ)引擎。
在使用層面上來看,hive在使用上更像數(shù)據(jù)庫,它提供非常豐富的系統(tǒng)函數(shù),各種數(shù)據(jù)的操作,hbase在這方面就不太像一般的關(guān)系型數(shù)據(jù)庫,它還是一個(gè)key-val的NoSQL,這方面的操作支持很有限,impala在這方面也是比較弱。
在計(jì)算模型層面上來看,hive是通過MR來計(jì)算的,這是一個(gè)偏向挪動(dòng)數(shù)據(jù)到mr的計(jì)算節(jié)點(diǎn)來計(jì)算的模型,而impala則更多的是移動(dòng)計(jì)算需求到DN上來做,數(shù)據(jù)不用動(dòng),最后變成了本地的磁盤IO。