◎ 本刊記者 寧冉
幾年前,云計(jì)算還是一個(gè)很模糊的概念,發(fā)展如今已經(jīng)開(kāi)始向企業(yè)業(yè)務(wù)的各個(gè)層面滲透。很多企業(yè)在互聯(lián)網(wǎng)戰(zhàn)略上提出比較大的架構(gòu)調(diào)整,要去除傳統(tǒng)架構(gòu)(IOE),這種大架構(gòu)調(diào)整的背后有一套分布式體系的支撐,有Hadoop分布式技術(shù),以及通過(guò)Reduce并行計(jì)算形成集群替代了原來(lái)的IBM IOE小型機(jī)在EMC存儲(chǔ)和Oracle數(shù)據(jù)庫(kù)組成的傳統(tǒng)架構(gòu)體系。
EasyHadoop創(chuàng)始人童小軍解釋說(shuō),Hadoop由多部分組成,它從最早的處理框架轉(zhuǎn)變成分布式操作系統(tǒng),在逐漸發(fā)展過(guò)程中形成生態(tài)系統(tǒng)架構(gòu)。Hadoop本身從最基礎(chǔ)開(kāi)始,并逐漸在豐富的應(yīng)用層出現(xiàn),如數(shù)據(jù)挖掘算法、搜索引擎組建,以及能夠把數(shù)據(jù)從Oracle數(shù)據(jù)庫(kù)向其它組建導(dǎo)入等,Hadoop形成了一個(gè)健全的生態(tài)系統(tǒng)。云計(jì)算分IAAS、SAAS、PAAS,Hadoop組建在PAAS,既起到平臺(tái)支撐作用,又解決分布式存儲(chǔ)和運(yùn)算問(wèn)題。云計(jì)算按照對(duì)象分,有公有云、私有云、混合云。Hadoop在構(gòu)建私有云上發(fā)揮巨大作用,也有企業(yè)應(yīng)用Hadoop構(gòu)件公有云。人們將云計(jì)算技術(shù)分成兩個(gè)端:一種是分的技術(shù),把機(jī)器分成很多小機(jī)器,提高各個(gè)利用率,實(shí)現(xiàn)多個(gè)機(jī)器之間虛擬化遷移,保證高可用度。另外一個(gè)是合的技術(shù),把一堆小的機(jī)器組成大的集群,如把存儲(chǔ)組合成HDFS,充分利用內(nèi)容使用HBase,可以用Reduce等模型進(jìn)行并行計(jì)算。
在分與合技術(shù)之間傳統(tǒng)的IOE架構(gòu)和虛擬化技術(shù)存在著瓶頸,當(dāng)服務(wù)器讀取數(shù)據(jù)進(jìn)行計(jì)算的時(shí)候必須要把數(shù)據(jù)移動(dòng)到服務(wù)器上進(jìn)行計(jì)算,這個(gè)過(guò)程是有瓶頸的,磁盤(pán)瓶頸和帶寬瓶頸。計(jì)算能力可以通過(guò)橫向擴(kuò)充機(jī)器解決,但是IO能力是受限制的。
Hadoop將一個(gè)文件切成很多小的文件分別存在不同硬盤(pán)上,計(jì)算時(shí)通過(guò)存儲(chǔ)HDFS組建,把存儲(chǔ)整合成一個(gè)大的集群。計(jì)算時(shí)會(huì)起動(dòng)MAP和Reduce,MAP可以把任務(wù)分發(fā)到快的機(jī)器上計(jì)算,再執(zhí)行Reduce。這就能實(shí)現(xiàn)計(jì)算能力和機(jī)器數(shù)量可以通過(guò)橫向擴(kuò)展機(jī)器解決,IO能力和機(jī)器數(shù)量幾乎是成正比的。IO能力拓展可以通過(guò)橫向機(jī)器的擴(kuò)展,中間會(huì)不可避免的出現(xiàn)數(shù)據(jù)的流動(dòng),Map和Reduce之間會(huì)出現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸,可以通過(guò)優(yōu)化方法來(lái)解決。
以上并不是說(shuō)Hadoop完全替代IOE,而是進(jìn)行一種補(bǔ)充,把數(shù)據(jù)分成歸檔、整合、交互等。如果使用Hadoop進(jìn)行替換現(xiàn)有的Oracle數(shù)據(jù)還是有很多問(wèn)題的。Hadoop本身生態(tài)系統(tǒng)能力在逐漸拓展,在企業(yè)里用它存儲(chǔ)海量非結(jié)構(gòu)化數(shù)據(jù),例如日志、網(wǎng)頁(yè)等信息。
Hadoop技術(shù)處于剛剛起步階段,發(fā)展有幾年的時(shí)間,如今也有大量的版本,因?yàn)樗旧硎情_(kāi)源的特點(diǎn),廠商可以基于自己的需求定制版本。Hadoop最初發(fā)源地是在Google。Google在2002到2004年分別發(fā)出了三篇論文,包括HDFS、Map Reduce等等。這三篇論文影響下互聯(lián)網(wǎng)界給出了一套對(duì)應(yīng)Hadoop解決方案,因此Hadoop的本源是Google的“三架馬車(chē)”。Hadoop不僅縱向擴(kuò)展,還可以通過(guò)橫向拓展機(jī)器提高它的存儲(chǔ)能力。通過(guò)HDFS以及配套的MapReduce框架,Hadoop可以充分利用HDFS存儲(chǔ)的優(yōu)勢(shì)通過(guò)它進(jìn)行并行計(jì)算,實(shí)現(xiàn)自動(dòng)的高并行化和可靠性。如果有一個(gè)任務(wù)失敗了,因?yàn)樗诹硗庖粋€(gè)機(jī)器上也存在,所以整個(gè)任務(wù)可以正常運(yùn)行起來(lái),不會(huì)受限于單個(gè)結(jié)點(diǎn)的故障。Hadoop核心組建是HBase。數(shù)據(jù)庫(kù)有一個(gè)特點(diǎn),除了提供很快的查詢能力,還要解決高并發(fā)問(wèn)題。HDFS和Map Reduce是面向批處理的,而HBase是面向?qū)崟r(shí)處理系統(tǒng)。它有一個(gè)很大的優(yōu)勢(shì)在于通過(guò)橫向拓展機(jī)器提高并發(fā)能力。
基于Hadoop平臺(tái)案例,童小軍做了一個(gè)測(cè)試,這個(gè)測(cè)試是基于阿里云平臺(tái)的測(cè)試。他準(zhǔn)備了20臺(tái)機(jī)器,分別是4G、500G存儲(chǔ)空間。測(cè)了一下它的性能,當(dāng)數(shù)據(jù)達(dá)到100億的時(shí)候,它順序掃描只需要3分鐘就返回。而一億和一百億之間差距并不大。也就是說(shuō)系統(tǒng)不會(huì)隨著數(shù)據(jù)量膨脹響應(yīng)時(shí)間也會(huì)大量增加,它可以通過(guò)并行MapReduce增多來(lái)提升整體性能。在做分組查詢的時(shí)候,信息在一百億時(shí)可以達(dá)到54分鐘返回,而別的系統(tǒng)在這里就容易出錯(cuò),會(huì)暴露出一些問(wèn)題,甚至是無(wú)解的問(wèn)題。
IOE時(shí)代如果要構(gòu)建一個(gè)大規(guī)模數(shù)據(jù)分析系統(tǒng)需要花費(fèi)的成本從百萬(wàn)到千萬(wàn)。大數(shù)據(jù)時(shí)代,隨著Hadoop推廣僅僅需要60萬(wàn)。
云平臺(tái)有個(gè)特點(diǎn)是當(dāng)人們將存儲(chǔ)能力從10T提升到100T的時(shí)候,實(shí)際上是不劃算的,存儲(chǔ)容量相對(duì)來(lái)說(shuō)比較貴,在IOE時(shí)代,實(shí)施周期更是按月計(jì)算。Hadoop最大的問(wèn)題就是學(xué)習(xí)培訓(xùn)時(shí)間較長(zhǎng),而單純的部署和安裝相對(duì)簡(jiǎn)單,以周為單位。
IOE時(shí)代,IT維護(hù)依賴于專(zhuān)業(yè)的硬件人員和軟件廠商的售后服務(wù),費(fèi)用也比較昂貴。自建Hadoop最大的問(wèn)題在于學(xué)習(xí)和人才的培養(yǎng),這部分即使是在互聯(lián)網(wǎng)公司也是非常稀缺的。
以智慧交通應(yīng)用為例,把車(chē)牌號(hào)數(shù)據(jù)存在一個(gè)集群里,能夠進(jìn)行很快的掃描和比對(duì)出來(lái)。優(yōu)化方面,從小時(shí)級(jí)優(yōu)化到分鐘級(jí),基于Hadoop能夠很輕松的實(shí)現(xiàn),甚至能夠優(yōu)化到秒級(jí)。當(dāng)攝象頭拍到一個(gè)車(chē)牌號(hào)可以存儲(chǔ)到集群里,并可以識(shí)別這個(gè)車(chē)是否年檢了,是否有套牌,是否違章。系統(tǒng)經(jīng)過(guò)優(yōu)化就可以變得實(shí)時(shí),達(dá)到分鐘級(jí)甚至秒級(jí),車(chē)主可以立刻收到超速提醒。這個(gè)系統(tǒng)存在不僅僅只為出一個(gè)報(bào)表,而是實(shí)現(xiàn)系統(tǒng)更近乎實(shí)時(shí)的反饋能力。
Hadoop在通信公司的應(yīng)用特別多。移動(dòng)公司有一個(gè)“大云計(jì)劃”,上線Hadoop系統(tǒng)時(shí)做了價(jià)格的對(duì)比,如16結(jié)點(diǎn)集群與原來(lái)小型機(jī)對(duì)比。做數(shù)據(jù)挖掘應(yīng)用,原來(lái)投資270萬(wàn)但是遷到Hadoop上只花了36萬(wàn),而數(shù)據(jù)挖掘和性能都有提高。原來(lái)商用小型機(jī)投入也是幾百萬(wàn)的,但是基于Hadoop會(huì)降低,性能也會(huì)提升7—15倍。
電話詳單查詢系統(tǒng),基于IBM只能存放三個(gè)月數(shù)據(jù),查詢達(dá)到100條查詢/秒,只能通過(guò)控制用戶查詢解決問(wèn)題。而基于Hadoop查詢系統(tǒng)性能就有了很大提升,存儲(chǔ)容量超過(guò)400T,查詢達(dá)到每秒兩萬(wàn)條。
某電商有將近3200臺(tái)機(jī)器,每日新增數(shù)據(jù)20T,該電商有三大戰(zhàn)略:平臺(tái)、數(shù)據(jù)、金融。它的金融能改變銀行業(yè)的應(yīng)用,它提供了小額貸款,金額很小,放貸速度很快而且無(wú)擔(dān)保。整個(gè)體系相當(dāng)于國(guó)家的金融中心,所以含金量很高。因?yàn)樗鼡碛写罅繑?shù)據(jù)能夠把各種各樣數(shù)據(jù)計(jì)算和存儲(chǔ)。如果更多人想在上面做生意、貸款,也是數(shù)據(jù)的一個(gè)正循環(huán)。該電商在做促銷(xiāo)活動(dòng),最后的交易額達(dá)百億元,中間會(huì)產(chǎn)生大量的數(shù)據(jù),需要快速處理和響應(yīng)。中間就用的數(shù)據(jù)工場(chǎng)的概念,會(huì)跑到Hadoop集群上以及其它組建,數(shù)據(jù)工場(chǎng)不再局限于給個(gè)別人用,而是開(kāi)放給公司的業(yè)務(wù)人員、平臺(tái)人員。用戶不是以層級(jí)式提交查詢報(bào)告再返回的方式,而是直接查詢數(shù)據(jù)工場(chǎng)最原始的數(shù)據(jù)。這是非常重大的革新,在傳統(tǒng)數(shù)據(jù)庫(kù)里要實(shí)現(xiàn),有可能會(huì)造成系統(tǒng)崩潰。
數(shù)據(jù)系統(tǒng)經(jīng)歷了第一代(直接數(shù)據(jù)系統(tǒng)),再經(jīng)歷了第二代(數(shù)據(jù)倉(cāng)庫(kù)),都以失敗告終。其中出現(xiàn)了一些技術(shù)問(wèn)題,最根本的是IOE問(wèn)題沒(méi)有解決。第三代系統(tǒng),把數(shù)據(jù)錄入到Hadoop集群里通過(guò)并行計(jì)算來(lái)解決,這個(gè)問(wèn)題才得以解決。
Hadoop既然能夠解決很多問(wèn)題,它推廣的難點(diǎn)在哪?很多人不知道Hadoop的原理,其實(shí)當(dāng)人們擁有合理硬件的時(shí)候,Hadoop的性能是可以發(fā)揮出來(lái)的。用三臺(tái)線上機(jī)器測(cè)試,擁有大量磁盤(pán)的機(jī)器,性能很不錯(cuò)。
Hadoop在實(shí)施過(guò)程當(dāng)中遇到了一些障礙,特別值得思考的是大數(shù)據(jù)價(jià)值問(wèn)題以及商業(yè)模式的轉(zhuǎn)變。
大集群和大數(shù)據(jù)的需求問(wèn)題,是第一座大山。不是所有公司都有大集群和大數(shù)據(jù)的需求。所以應(yīng)用的人也就少。第二個(gè)問(wèn)題是原有系統(tǒng)改造問(wèn)題。很多公司都是IT外包,依賴于IOE架構(gòu),所以遷移改造會(huì)有很多羈絆。不像互聯(lián)網(wǎng)公司自己研發(fā)、自己上線那么輕松。第三個(gè)問(wèn)題,大量資金投進(jìn)去看不到產(chǎn)出。這是大數(shù)據(jù)和云計(jì)算落地的很大問(wèn)題。
大數(shù)據(jù)的服務(wù)方式?;ヂ?lián)網(wǎng)時(shí)代用戶直接去數(shù)據(jù)庫(kù)里查。2.0時(shí)代是編輯人員和產(chǎn)品研發(fā)轉(zhuǎn)變成了規(guī)則制定者。規(guī)則制定者研發(fā)邏輯而不是具體內(nèi)容,不再產(chǎn)生內(nèi)容,用戶產(chǎn)生內(nèi)容,通過(guò)邏輯挖掘之后回饋給用戶,最后每個(gè)用戶都擁有一份自己的報(bào)告和唯一獨(dú)特的數(shù)據(jù)服務(wù),這中間必然需要大規(guī)模計(jì)算。
在企業(yè)里面,報(bào)表和數(shù)據(jù)的閉環(huán)??梢园堰@一層想象成企業(yè)的內(nèi)循環(huán)。外循環(huán)就是用戶和企業(yè)之間的循環(huán),這中間不僅僅是報(bào)表,而是向用戶直接服務(wù)。這種更實(shí)時(shí)的線上的系統(tǒng),是大數(shù)據(jù)發(fā)揮的價(jià)值。當(dāng)然它的維度越細(xì)、精準(zhǔn)度越高,價(jià)值就越高。
開(kāi)源Hadoop之路有哪些難點(diǎn)?管理難、實(shí)施難、各種各樣的研發(fā)難。童小軍希望提供安裝、部署、學(xué)習(xí)等等環(huán)節(jié)來(lái)掃平一系列障礙。通過(guò)社區(qū)和培訓(xùn)方式讓更多的人知道Hadoop大數(shù)據(jù)能做什么,怎么用以及如何落地,并為人們提供解決方案。從Hadoop開(kāi)始擴(kuò)展算法、管理工具等組建和解決方案。
Hadoop安全性也有一些問(wèn)題,因?yàn)镠adoop軟件開(kāi)源性可以自己修改、定義。各種關(guān)口暴露、文件系統(tǒng)訪問(wèn)權(quán)限等等,這都存在大量問(wèn)題。還需要各方的努力來(lái)完善這個(gè)系統(tǒng)。
童小軍之前在暴風(fēng)影音做的工作是偏研發(fā)的。他發(fā)現(xiàn)解決現(xiàn)有系統(tǒng)要從系統(tǒng)的瓶頸點(diǎn)著手。比如原來(lái)需要7小時(shí),現(xiàn)在可以優(yōu)化到10分鐘。所以企業(yè)如果要使用Hadoop歸根結(jié)底是要解決問(wèn)題。如果報(bào)表算慢了,是不是能夠通過(guò)Hadoop使其速度快起來(lái)。先從一個(gè)點(diǎn)先切入,從非核心,離線非交易的分析業(yè)務(wù)開(kāi)始,小規(guī)模集群開(kāi)始,而不是立刻進(jìn)行大量硬件投資。最后從依賴于Web團(tuán)隊(duì)轉(zhuǎn)化到自主培養(yǎng)人才,這樣才能讓Hadoop在企業(yè)內(nèi)部落地。