Hadoop教程:優(yōu)化的Hadoop發(fā)行版使混合架構(gòu)成為過去
數(shù)據(jù)是企業(yè)最重要的資產(chǎn)。對(duì)數(shù)據(jù)價(jià)值的挖掘,一直以來都是企業(yè)應(yīng)用、技術(shù)、架構(gòu)、服務(wù)等 創(chuàng)新的源泉。經(jīng)過十?dāng)?shù)年技術(shù)發(fā)展,企業(yè)的核心數(shù)據(jù)處理逐漸分為兩大模塊: 以關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)為主,主要用于解決交易型事務(wù)處理的問題;以分析型數(shù)據(jù)倉(cāng)庫(kù)為主,主要解決數(shù)據(jù)整合分析的問題,并且當(dāng)需要對(duì)幾TB或十幾 TB的數(shù)據(jù)進(jìn)行分析時(shí),企業(yè)大多采用MPP數(shù)據(jù)庫(kù)架構(gòu)。這在傳統(tǒng)應(yīng)用領(lǐng)域是合適的。但是近年來,隨著互聯(lián)網(wǎng)的快速發(fā)展,特別是移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的發(fā)展, 企業(yè)的數(shù)據(jù)比以往任何時(shí)候產(chǎn)生的都要多都要快,面對(duì)動(dòng)輒幾十TB、上百TB、甚至PB級(jí)別的數(shù)據(jù)進(jìn)行分析時(shí),傳統(tǒng)架構(gòu)已近乎“疲于奔命”,難以招架。 Hadoop在企業(yè)級(jí)市場(chǎng)隨之受到關(guān)注,逐漸被認(rèn)為是新形勢(shì)下最佳乃至唯一的選擇 。
這使得在企業(yè)的數(shù)據(jù)中心里,為了應(yīng)對(duì)不同量級(jí)的數(shù)據(jù)、不同性能的計(jì)算要求、不同計(jì)算模式的需要,不得不采用混合架構(gòu),即:關(guān)系型數(shù)據(jù)庫(kù)+內(nèi)存數(shù)據(jù)庫(kù)+MPP數(shù)據(jù)庫(kù)+Hadoop平臺(tái)。
然而,客戶采用這樣的混合架構(gòu),經(jīng)常面臨如下問題:
1. 大量數(shù)據(jù)需要頻繁地從一個(gè)平臺(tái)遷移至另外一個(gè)、甚至是另外幾個(gè)平臺(tái),網(wǎng)絡(luò)開銷巨大。
2. MPP架構(gòu)在升級(jí)或擴(kuò)容時(shí),對(duì)外提供的服務(wù)會(huì)受到影響。
3. 混合架構(gòu)的上線、后期運(yùn)維、升級(jí)成本居高不下。
4. 多套平臺(tái)需要多套運(yùn)維人馬,掌握多套平臺(tái)技能。
5. 每套平臺(tái)的容錯(cuò)、備份、災(zāi)備等方案及實(shí)施,都需要單獨(dú)考慮。
面對(duì)以上眾多問題,對(duì)Hadoop有經(jīng)驗(yàn)的客戶進(jìn)行了大膽思考,并逐步實(shí)施了一個(gè)創(chuàng)新的架構(gòu):讓Hadoop統(tǒng)一數(shù)據(jù)分析平臺(tái)的混合架構(gòu)。這樣的想法僅 在一年前還被認(rèn)為是不切實(shí)際的。當(dāng)時(shí)普遍認(rèn)同的是,Hadoop在處理上百TB或是PB級(jí)別數(shù)據(jù)時(shí)具有優(yōu)勢(shì),但是讓MapReduce在Hadoop之上 去處理GB或是幾TB數(shù)據(jù),則顯得過于笨重。
星環(huán)信息科技(上海)有限公司(以 下簡(jiǎn)稱星環(huán)科技)通過在大數(shù)據(jù)領(lǐng)域敏銳的判斷力、極強(qiáng)的執(zhí)行力與研發(fā)能力,在Hadoop/MapReduce之外獨(dú)辟蹊徑,通過引入Spark,完滿解 決了Hadoop原有缺陷。 星環(huán)科技發(fā)布的一站式大數(shù)據(jù)綜合平臺(tái) -- Transwarp Data Hub(以下簡(jiǎn)稱TDH),不僅提供對(duì)海量數(shù)據(jù)超強(qiáng)的分析能力,在中小數(shù)據(jù)量的分析中,性能也優(yōu)于MPP架構(gòu),甚至可比擬專業(yè)的內(nèi)存數(shù)據(jù)庫(kù)平臺(tái)。TDH因 此使企業(yè)能統(tǒng)一混合架構(gòu),形成完整的數(shù)據(jù)分析平臺(tái)。
TDH產(chǎn)品系列中的內(nèi)存分析引擎Inceptor將Spark作為核心的計(jì)算引擎,彌補(bǔ)了采用MapReduce計(jì)算引擎的缺點(diǎn)。Spark內(nèi)存計(jì)算技 術(shù)通過把任務(wù)描繪成DAG、把分布式數(shù)據(jù)抽象成彈性分布式數(shù)據(jù)集(RDD)、中間結(jié)果存于內(nèi)存、減少Shuffle過程的磁盤IO等關(guān)鍵技術(shù),性能大幅領(lǐng) 先于MapReduce 。星環(huán)科技經(jīng)過多個(gè)成功案例的積累與豐富實(shí)踐經(jīng)驗(yàn)的總結(jié),已經(jīng)將Inceptor打造成成熟、穩(wěn)定、高性能的分析平臺(tái),解決了開源Spark不穩(wěn)定,例 如:運(yùn)行24小時(shí)自動(dòng)死掉、運(yùn)行SQL時(shí)快時(shí)慢、有時(shí)比MapReduce還慢、大內(nèi)存計(jì)算時(shí)經(jīng)常沒有響應(yīng)等問題。
Inceptor針對(duì)數(shù)據(jù)倉(cāng)庫(kù)復(fù)雜分析的特點(diǎn),對(duì)Spark進(jìn)行了較多的技術(shù)改進(jìn)、創(chuàng)新與性能優(yōu)化。單獨(dú)開發(fā)了列式混合存儲(chǔ)層Holodesk,使得數(shù) 據(jù)能夠在內(nèi)存與SSD中混合裝載,滿足更大的內(nèi)存計(jì)算緩存需求,極大地?cái)U(kuò)展了對(duì)TB級(jí)別數(shù)據(jù)進(jìn)行分析時(shí)內(nèi)存的限制。Inceptor在內(nèi)存計(jì)算上做了較多 的性能優(yōu)化,例如:完成了基于代價(jià)的優(yōu)化器,能夠更精準(zhǔn)地自動(dòng)選擇最優(yōu)的執(zhí)行計(jì)劃;在多表之間通過鍵值進(jìn)行關(guān)聯(lián)時(shí),通過數(shù)據(jù)分區(qū)、分桶、查詢過濾、條件下 放等方式減小數(shù)據(jù)掃描IO,極大提高查詢速度等等。Inceptor在對(duì)多張10億條記錄的大表進(jìn)行關(guān)聯(lián)查詢時(shí),相比MPP數(shù)據(jù)庫(kù),性能提升2-10倍。
Inceptor另一個(gè)使其能夠進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)領(lǐng)域,統(tǒng)一企業(yè)數(shù)據(jù)分析平臺(tái),提供對(duì)ANSI SQL1999標(biāo)準(zhǔn)的完整支持。Inceptor支持常用的數(shù)據(jù)類型、各種表連接查詢、各種子查詢、操作符、窗口聚合函數(shù)、甚至單條數(shù)據(jù)的DML操作等 等。通過SQL實(shí)現(xiàn)的,運(yùn)行在現(xiàn)有內(nèi)存數(shù)據(jù)庫(kù)、MPP數(shù)據(jù)庫(kù)等平臺(tái)統(tǒng)計(jì)分析、經(jīng)營(yíng)分析等綜合性企業(yè)報(bào)表,幾乎無需任何修改,便可以平滑遷移至TDH平臺(tái)。 TDH在某運(yùn)營(yíng)商的經(jīng)分系統(tǒng)中,成功運(yùn)行300多張報(bào)表,幾乎沒有做任何修改。TDH在某電網(wǎng)公司成功運(yùn)行21萬行SQL代碼,而僅僅做了十幾處的代碼修 改。在其他的一些案例中,對(duì)于在Teradata等MPP數(shù)據(jù)庫(kù)平臺(tái)運(yùn)行的SQL也直接遷移至TDH平臺(tái)運(yùn)行,性能有很大提升。
Inceptor解決了一直以來MapReduce被詬病的在處理復(fù)雜數(shù)據(jù)分析、即席查詢、自助式分析、迭代式數(shù)據(jù)分析與機(jī)器學(xué)習(xí)時(shí),無法提供快速的響 應(yīng)時(shí)間的問題,使得大量一線業(yè)務(wù)人員可以通過大數(shù)據(jù)可視化工具靈活地進(jìn)行交互式數(shù)據(jù)分析與探索。Inceptor中整合了R語言的統(tǒng)計(jì)分析、數(shù)據(jù)挖掘與機(jī) 器學(xué)習(xí)算法,數(shù)據(jù)分析人員可以快速地通過并行化的R語言算法對(duì)TDH平臺(tái)的TB、甚至PB級(jí)別的數(shù)據(jù)進(jìn)行快速的數(shù)據(jù)分析。如此強(qiáng)大的數(shù)據(jù)分析能力,已經(jīng)遠(yuǎn) 遠(yuǎn)超過了現(xiàn)有MPP平臺(tái)的相關(guān)實(shí)現(xiàn)手段。
由此可見,對(duì)于業(yè)界呼聲比較高的、將 Hadoop與MPP數(shù)據(jù)庫(kù)的進(jìn)行整合的方案,已經(jīng)顯得沒有很強(qiáng)的必要性。通過TDH平臺(tái),可以完全替代MPP平臺(tái) :第一,TDH平臺(tái)對(duì)ANSI SQL1999標(biāo)準(zhǔn)的完整支持,已經(jīng)可以滿足企業(yè)對(duì)大規(guī)模數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行復(fù)雜數(shù)據(jù)分析的需求;第二,集成Spark內(nèi)存計(jì)算技術(shù),在數(shù)據(jù)倉(cāng)庫(kù)所支撐的數(shù)量級(jí) 上(GB->TB->PB),能夠提供比傳統(tǒng)MPP平臺(tái)更好的性能;第三,TDH平臺(tái)提供比MPP平臺(tái)更強(qiáng)的擴(kuò)展性,更強(qiáng)的計(jì)算與分析結(jié)構(gòu) 化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的能力。第四,TDH平臺(tái)提供給客戶一個(gè)統(tǒng)一的數(shù)據(jù)平臺(tái),不同數(shù)據(jù)量級(jí)的數(shù)據(jù)計(jì)算與分析都能夠很快得到滿足。第五,TDH平臺(tái)提供 統(tǒng)一的數(shù)據(jù)容錯(cuò)、備份與災(zāi)備,對(duì)企業(yè)提供更方便的措施和安全保障。
作者:龐杰