范喆 發(fā)表于:14年12月02日 19:16 [原創(chuàng)] DOIT.com.cn
2014年12月2日DOIT編輯北京報(bào)道:2014(第十屆)中國存儲(chǔ)峰會(huì)今天在北京召開,大會(huì)以“掌控?cái)?shù)據(jù)經(jīng)濟(jì),重塑商業(yè)價(jià)值”為主題,詮釋在IT走向DT時(shí)代下,如何通過數(shù)據(jù)重塑商業(yè)價(jià)值。大會(huì)共邀請(qǐng)了 16位頂尖第三方嘉賓,數(shù)十位專家,帶來了35場前瞻性演講+2場圓桌討論,并首次推出硅谷創(chuàng)始人訪談和存儲(chǔ)夜宴活動(dòng)!
在當(dāng)天下午的大數(shù)據(jù)分論壇上,來自曙光大數(shù)據(jù)研發(fā)經(jīng)理宋懷明帶來他的《曙光大數(shù)據(jù)存儲(chǔ)和處理技術(shù)》。
以下是演講實(shí)錄:
宋懷明:各位存儲(chǔ)界的朋友,大家下午好!下面我給大家匯報(bào)一下曙光大數(shù)據(jù)存儲(chǔ)的處理技術(shù)。我們知道隨著云計(jì)算和大數(shù)據(jù)技術(shù)的興起,系統(tǒng)架構(gòu)發(fā)生巨大的變化。傳統(tǒng)的系統(tǒng)架構(gòu)通常前端是PC,后端是服務(wù)器,再后端是數(shù)據(jù)庫,或者文件系統(tǒng),隨著云計(jì)算和大數(shù)據(jù)的興起,系統(tǒng)架構(gòu)變成前端是一堆智能終端,包括手機(jī)、Pad,或者智能手持設(shè)備,中間服務(wù)器被云所取代,通過虛擬化技術(shù),把服務(wù)器虛擬成公共的存儲(chǔ)的計(jì)算資源,文件系統(tǒng)換成大數(shù)據(jù)系統(tǒng),包括海量的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)融合的存儲(chǔ)。
我們知道大數(shù)據(jù)發(fā)展其實(shí)經(jīng)歷了三個(gè)階段,第一個(gè)階段我們把它叫做數(shù)據(jù)落地的階段,它實(shí)際上解決的是數(shù)據(jù)的采集和存儲(chǔ)的問題。在這個(gè)階段,主要是存儲(chǔ)廠商發(fā)力的時(shí)候,占主導(dǎo)。第二個(gè)階段,隨著數(shù)據(jù)越積越多,采集的數(shù)據(jù)越積越多,我們要解決怎么對(duì)這些數(shù)據(jù)進(jìn)行處理,就出現(xiàn)了很多計(jì)算的框架,包括Hadoop的框架,包括云計(jì)算的框架,它都是解決怎么對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算的問題。實(shí)際上是提供一些計(jì)算的方法和計(jì)算的平臺(tái)。這個(gè)階段主要是數(shù)據(jù)處理的平臺(tái)廠商在主導(dǎo)。第三個(gè)階段,通過第一階段采集的這些數(shù)據(jù),第二的階段提供這些計(jì)算的方法,把這些數(shù)據(jù)轉(zhuǎn)化為真正應(yīng)用的價(jià)值,實(shí)現(xiàn)數(shù)據(jù)的分析價(jià)值的實(shí)現(xiàn),實(shí)際上我們把它叫做應(yīng)用落地。它實(shí)際上經(jīng)歷了數(shù)據(jù)落地、計(jì)算落地和應(yīng)用落地這三個(gè)階段。
曙光在這里面的戰(zhàn)略主要依托曙光自己的存儲(chǔ)和計(jì)算的技術(shù)來支撐大數(shù)據(jù)這一塊的應(yīng)用,與廣大的ISV廠商進(jìn)行合作,實(shí)現(xiàn)數(shù)據(jù)價(jià)值,推動(dòng)應(yīng)用的落地。曙光大數(shù)據(jù)的技術(shù)分成幾塊。右邊這個(gè)小的框是曙光為Hadhoop的發(fā)行版,紅色部分是曙光自己研發(fā)的,灰色是我們兼容開源社區(qū)的一些組件,黃色部分是我們對(duì)一些開源的組件進(jìn)行優(yōu)化。我們可以看到,曙光的Hadhoop發(fā)行版最主要是提供了一個(gè)建議的Hadhoop的管理軟件,另外地下存儲(chǔ),就是曙光應(yīng)用自研的P200替代了Hadhoop開源的問題。這里面有幾個(gè)關(guān)鍵的組件我們進(jìn)行了優(yōu)化。還有一塊就是數(shù)據(jù)轉(zhuǎn)換器,主要用于簡化現(xiàn)有的一些信息系統(tǒng),這些數(shù)據(jù)怎樣向曙光的Hadhoop發(fā)行版里面,做數(shù)據(jù)遷移用的。這里面除了包括數(shù)據(jù)的移動(dòng),還包括數(shù)據(jù)的轉(zhuǎn)換,模式這一塊的變化。這是曙光Hadhoop發(fā)行版所具有的一些特點(diǎn)。
左邊還有一塊曙光自己的MPP的數(shù)據(jù)庫的中間件,它實(shí)際上是基于無共享架構(gòu)的Hadhoop集群技術(shù),底下可以支持多個(gè)相互獨(dú)立的Oracle數(shù)據(jù)庫,把十臺(tái)或者八臺(tái)獨(dú)立的數(shù)據(jù)庫,通過中間件的技術(shù)虛擬承擔(dān)一的主體,這塊做的主要還是面向數(shù)據(jù)分析的應(yīng)用。我們把MPV數(shù)據(jù)庫和Hadhoop發(fā)行版整合在一起,加上曙光大數(shù)據(jù)專用存儲(chǔ)服務(wù)器,稱之為一體機(jī)。目前支持JAVA和C++,提供一些支撐工具,像ETL,數(shù)據(jù)的導(dǎo)入、到處,備份這樣的工具。另外,由于我們底下采用自己的文件系統(tǒng),它跟開源社區(qū)的HDFS是不一樣的。我們可以通過普通的文件系統(tǒng)接口訪問底下的數(shù)據(jù),另外也支持第三方的一些開源的編程的接口和分析挖掘的工具。這是ParaStor的系統(tǒng)架構(gòu),這種并行的架構(gòu)可以滿足高并發(fā)的IO的需求。另外,對(duì)它的源數(shù)據(jù)節(jié)點(diǎn)是集群方式,可以提升海量的小文件處理能力。另外,條帶化的數(shù)據(jù)方式可以提高很高的單流,基于帶寬也可以線性的擴(kuò)展。
采用ParaStor 200代替HDFS帶來主要的性能的提升。主要先在這樣幾個(gè)方面。ParaStor 200采用源數(shù)據(jù)集群的方式,也由于源數(shù)據(jù)集群每個(gè)都對(duì)外提供服務(wù),任何一個(gè)源數(shù)據(jù)節(jié)點(diǎn)故障都不會(huì)影響系統(tǒng)的性能。第二、數(shù)據(jù)冗余,提供N+F的技術(shù),可以提高整個(gè)系統(tǒng)的存儲(chǔ)利用率,相比原生的HDFS系統(tǒng),它的副本的利用率可以達(dá)到80%以上。第三、可以提供多套網(wǎng)絡(luò)負(fù)載均衡,多套網(wǎng)絡(luò)高可用性,提升數(shù)據(jù)訪問的帶寬。在數(shù)據(jù)處理這一塊,我們也做了大量的工作。首先,在數(shù)據(jù)寫入的時(shí)候,可以按照數(shù)據(jù)應(yīng)用的屬性進(jìn)行劃分,可以把輿論某一種特性的數(shù)據(jù)放到特定的地方,這樣可以有效處理數(shù)據(jù)的性能。因?yàn)槲覀兊紫轮С纸Y(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)統(tǒng)一的存儲(chǔ)和處理。對(duì)于結(jié)構(gòu)化數(shù)據(jù)這一塊,因?yàn)槲覀兊紫虏捎梅植际,不共享的?shù)據(jù)庫,比如我是多臺(tái)Oracle數(shù)據(jù)庫,它是相互獨(dú)立我們把數(shù)據(jù)獬入的時(shí)候,可以按照一定的屬性、特性分到不同的機(jī)器上。比如可以按照時(shí)間范圍進(jìn)行劃分,或者按照區(qū)域的特性,或者按照一些其他的號(hào)碼段等等,根據(jù)不同的應(yīng)用,不同數(shù)據(jù)的類型目前可以支持Hash、Range、List、Round-Robin等劃分方式。有多個(gè)分區(qū)的數(shù)據(jù)可以放在相同的節(jié)點(diǎn)上,,這個(gè)分區(qū)叫虛分區(qū),支持規(guī)模動(dòng)態(tài)擴(kuò)展,無須重新計(jì)算分區(qū)。可以支持用戶自定義數(shù)據(jù)節(jié)點(diǎn)的分析。
對(duì)于非結(jié)構(gòu)化數(shù)據(jù),由于我們底下采用集成文件系統(tǒng)的方式,實(shí)際上我們沒法在應(yīng)用這一層控制數(shù)據(jù)具體寫到哪一個(gè)節(jié)點(diǎn),我們采用目錄的方式做應(yīng)用級(jí)的分區(qū),也是支持Hash、Range、List、Round-Robin方式。只不過我們底下采取目錄的劃分。
我們采用這種虛分區(qū)的方式,其實(shí)這個(gè)技術(shù)也是比較成熟的,我們只是使用了業(yè)界這種技術(shù)來支持這個(gè)節(jié)點(diǎn)數(shù)據(jù)的動(dòng)態(tài)擴(kuò)展。因?yàn)樵诠?jié)點(diǎn)數(shù)據(jù)擴(kuò)展的時(shí)候,我們不需要對(duì)所有數(shù)據(jù)技術(shù)重新的分區(qū)計(jì)算,只需要把一部分虛分區(qū)遷移到新增的節(jié)點(diǎn)上,把節(jié)點(diǎn)和分區(qū)對(duì)應(yīng)的源數(shù)據(jù)進(jìn)行區(qū)分就可以。
第二部分,對(duì)于類似SQL的請(qǐng)求,用戶的請(qǐng)求可以是SQL語句,或者M(jìn)R/UDF作業(yè)。我們把計(jì)算分成這么幾個(gè)級(jí)別。首先,最小的是算子,可以在單個(gè)節(jié)點(diǎn)上執(zhí)行計(jì)算的操作。計(jì)算的任務(wù)是有一個(gè)四元組所組成的,包括計(jì)算的算子,執(zhí)行節(jié)點(diǎn)的列表,目標(biāo)節(jié)點(diǎn)的列表和數(shù)據(jù)分析的方法。它是什么意思?這一個(gè)計(jì)算的算子在執(zhí)行節(jié)點(diǎn)列表上去執(zhí)行,它的結(jié)果以數(shù)據(jù)分派方法的方式發(fā)布到所有節(jié)點(diǎn)上,這里數(shù)據(jù)分派方法包括Hash和Range,Range只是在特殊操作的時(shí)候才需要使用。比如后續(xù)要進(jìn)行排序,這種情況下我們把默認(rèn)的Hash改成Range,然后在每個(gè)節(jié)點(diǎn)上進(jìn)行排序,最后結(jié)果是需要一個(gè)簡單的拼接,而不需要整體的排序,每個(gè)節(jié)點(diǎn)分到的是一個(gè)具體的范圍。
在查詢?nèi)蝿?wù)概念之上,有一個(gè)整體的查詢的任務(wù)流,它實(shí)際上有一組查詢的任務(wù),按照一定的順序進(jìn)行組合的一個(gè)執(zhí)行計(jì)劃的數(shù),我們目前只支持豎行的方式,不支持這種圖。它描述的就是多個(gè)任務(wù)之間的分析以及它之間同步的關(guān)系。右邊這個(gè)圖描述的是一個(gè)簡單的查詢作業(yè)任務(wù)流的示意圖,包含五個(gè)任務(wù),每個(gè)任務(wù)又包含在一組節(jié)點(diǎn)上執(zhí)行的算子。我們看到這個(gè)圖里面,任務(wù)一和任務(wù)二執(zhí)行完是需要進(jìn)行同步,然后進(jìn)行任務(wù)三,然后再進(jìn)行同步,任務(wù)四,最后做一個(gè)結(jié)果的匯聚,最后得到最終的結(jié)果。
在執(zhí)行控制這一塊,實(shí)際上是把前面所做的任務(wù)流作為它的一個(gè)Flex,然后得到最終的結(jié)果。對(duì)于請(qǐng)求解析,我們采用類SQL的請(qǐng)求,通過包括對(duì)語法和詞法的分析,分解成一個(gè)作業(yè)任務(wù)流,然后通過執(zhí)行引擎進(jìn)行同步控制和數(shù)據(jù)傳輸?shù)目刂,得到最終的結(jié)果,底下的處理是可以根據(jù)我們每一個(gè)任務(wù)它的類型,比如它SQL就是在底下,它是MR的作業(yè),就是在Hadhoop上執(zhí)行,最終得到計(jì)算的結(jié)果。這里面也有一些數(shù)據(jù)處理的優(yōu)化技術(shù),因?yàn)樗械奶幚斫Y(jié)果,目前的這種方式是采用文件進(jìn)行固化存儲(chǔ),在任務(wù)流的每一個(gè)分支上,如果出現(xiàn)計(jì)算故障,我們可以在這個(gè)故障里按照它保存的結(jié)果繼續(xù)執(zhí)行。中間需要維護(hù)一個(gè)多個(gè)集群上執(zhí)行的全局的狀態(tài)。這就避免了如果出現(xiàn)故障,就從頭完全執(zhí)行,整個(gè)重來這樣的一個(gè)操作,可以在斷點(diǎn)處進(jìn)行計(jì)算,提高整個(gè)計(jì)算的效率。特別是在有一些作業(yè)計(jì)算時(shí)間比較長的時(shí)間,這個(gè)是非常適用的。
對(duì)于Hadhoop發(fā)行版這一塊,我們提供了一個(gè)圖形化的管理軟件,它的提供的是包括三個(gè)層面的功能。首先最基本是運(yùn)維層面,包括監(jiān)控告警等。還有運(yùn)行層面,主要包括作業(yè)的察看,比如對(duì)存儲(chǔ)對(duì)象的察看,再上面是運(yùn)用這一層,我們現(xiàn)在做的相對(duì)來說比較好,主要是提供應(yīng)用開發(fā)使用,比如一些可視化的東西,一些報(bào)表等等,這樣的一些知識(shí)。
我們對(duì)曙光XDATA系統(tǒng)做一個(gè)簡單的總結(jié),它包括的創(chuàng)新技術(shù)主要是這么幾個(gè)方面。第一、提供類似于SQL的訪問終端,可以減小學(xué)習(xí)的成本。以往的信息系統(tǒng)很多是基于SQL做應(yīng)用開發(fā),用戶或者ISV對(duì)數(shù)據(jù)庫非常熟悉,提供SQL的方式,對(duì)數(shù)據(jù)處理的學(xué)習(xí)成本非常低,基本上可以比較容易的進(jìn)行新業(yè)務(wù)的開發(fā)。第二、對(duì)接口這一塊,我們提供JAVA、C++等專用語言的接口,其中C++是直接與后端的服務(wù)進(jìn)行通訊,但是對(duì)JAVA我們提供JAVA保準(zhǔn)的編程接口。對(duì)于以往采用JDBC編程的數(shù)據(jù)庫類的應(yīng)用是比較容易平滑的遷移過去,只需要進(jìn)行重新的編譯,或者一些兼容性測試就可以上線。第三、數(shù)據(jù)的統(tǒng)一,底下可以支持分布式的數(shù)據(jù)庫集群的架構(gòu),也可以支持HDFS的存儲(chǔ),能夠滿足結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理這塊的需求。第四、我們實(shí)現(xiàn)了數(shù)據(jù)獬入的時(shí)候,可以對(duì)數(shù)據(jù)進(jìn)行系列的劃分,這種系列的劃分可以在處理的時(shí)候快速的定義這些數(shù)據(jù),減少單次數(shù)據(jù)處理里面的IO或者CPU的計(jì)算,能夠提高數(shù)據(jù)處理的效率。最后,我們提供軟硬一體的優(yōu)化的技術(shù),底下是采用曙光專用的存儲(chǔ)服務(wù)器,對(duì)于網(wǎng)絡(luò)還有通訊也做了很多優(yōu)化,能夠充分發(fā)揮系統(tǒng)的性能。
剛才說了曙光大數(shù)據(jù)的相關(guān)技術(shù),在這些技術(shù)上,我們就把大數(shù)據(jù)存儲(chǔ)和處理產(chǎn)品大概是這么幾種。首先,底下這個(gè)存儲(chǔ)可以單獨(dú)拿出來作為并行的文件系統(tǒng),我們產(chǎn)品叫ParaStor 200,是覆蓋節(jié)點(diǎn)、網(wǎng)絡(luò)、磁盤等全系統(tǒng)容錯(cuò)技術(shù),提供軟硬一體的存儲(chǔ)系統(tǒng)。2010年在深圳部署了超過16PB單個(gè)的文件系統(tǒng),目前PB級(jí)的文件系統(tǒng)基本上在國內(nèi)已經(jīng)是非常多了。
第二、曙光提供的XData的大數(shù)據(jù)一體機(jī),就是剛才整個(gè)大框里包含結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和處理,提供軟硬一體的大數(shù)據(jù)存儲(chǔ)和處理整體的系統(tǒng)。
第三、曙光的Hadhoop發(fā)行版,是純軟件的Hadhoop的版本,主要是提供數(shù)據(jù)Hadhoop系統(tǒng)的管理、運(yùn)營。Hadhoop的核可以直接采用社區(qū)的最新的版本,也可以支持Clud的版本。
最后,曙光大數(shù)據(jù)的應(yīng)用,目前曙光是瞄準(zhǔn)行業(yè)應(yīng)用,與廣大的ISV廠商進(jìn)行合作,我們也自己做一些大數(shù)據(jù)應(yīng)用的開發(fā)。因?yàn)槟壳按髷?shù)據(jù)實(shí)際上它的應(yīng)用的需求還沒有發(fā)展特別明確,所以我們也在通過這個(gè)技術(shù)的方式幫用戶設(shè)計(jì)它的一些想法。因?yàn)橛脩羲鼘?shí)際上有很多時(shí)候并不知道技術(shù)能夠幫它實(shí)現(xiàn)成什么樣。
這是我們在國內(nèi)最大的一個(gè)媒體單位做的新聞檢索和推薦系統(tǒng)。它實(shí)際上包含兩大塊的功能。第一塊就是它的新聞的特征,特征分析和它的聚類。第二、它的用戶行為的分析。對(duì)于第一個(gè)底下采用曙光Hadhoop的專業(yè)版,底下主要是做的新聞特征的聚類。第二、對(duì)用戶行為分析,它這里面的用戶跟廣大電商的用戶有一些差別,但是也比較接近。因?yàn)樗挠脩糁饕侨珖膹V大媒體,它是要從我們客戶那兒購買這些新聞,購買新聞的素材。我們對(duì)它的一些瀏覽技術(shù),還有次數(shù),還有停留時(shí)間,還有購買等等做了新聞分析,最后給他們推薦相關(guān)的新聞素材,這個(gè)系統(tǒng)去年開始建設(shè),今年4月份就已經(jīng)上線運(yùn)行了。
這是我們給某個(gè)直轄市公安局做的整體的大數(shù)據(jù)的應(yīng)用支撐平臺(tái)。我們承擔(dān)了里面所有的平臺(tái)這一塊的工作。我們把這個(gè)數(shù)據(jù)的存儲(chǔ)分稱結(jié)構(gòu)化區(qū)域和非結(jié)構(gòu)化區(qū)域。結(jié)構(gòu)化區(qū)域,采用數(shù)據(jù)庫的架構(gòu),非結(jié)構(gòu)化區(qū)域,采用后端的Hadhoop發(fā)行版,上面通過各加一層數(shù)據(jù)的匯聚和轉(zhuǎn)化層,把現(xiàn)在大概有20多個(gè)系統(tǒng)的數(shù)據(jù)導(dǎo)入進(jìn)來,向上面支撐各種各樣的應(yīng)用,曙光在里面就做整個(gè)后端數(shù)據(jù)的存儲(chǔ)和匯聚,然后上面是ISV廠商做應(yīng)用的開發(fā)。
這個(gè)是我們某安全企業(yè)給他做的一個(gè)綜合的運(yùn)維的大數(shù)據(jù)系統(tǒng),它這個(gè)系統(tǒng)的特點(diǎn)就在于,原先的單位內(nèi)部建了很多運(yùn)維系統(tǒng),有大概100多套這樣的系統(tǒng),每個(gè)系統(tǒng)有的規(guī)?赡軒着_(tái)機(jī)器,大的幾十臺(tái),上百臺(tái)。原先每一套系統(tǒng)都有一個(gè)單獨(dú)的運(yùn)維的系統(tǒng)。實(shí)際上對(duì)于運(yùn)維的壓力也是非常大,因?yàn)槊總(gè)系統(tǒng)需要做的操作,或者運(yùn)維的這些方式是不太一樣的。我們把所有的系統(tǒng)日志,包括操縱系統(tǒng),還有網(wǎng)絡(luò),等等一些設(shè)備產(chǎn)生的日志收集過來。第二類日志是中間件的也收集過來,第三個(gè)是把應(yīng)用日志,把這三類日志通過ETL的方式匯聚到系統(tǒng)里面,這里面我們做了一個(gè)數(shù)據(jù)網(wǎng)關(guān),做了內(nèi)外網(wǎng)的格力,通過數(shù)據(jù)網(wǎng)關(guān),前端所有應(yīng)用系統(tǒng)的日志,是不能直接訪問到后端的大數(shù)據(jù)系統(tǒng),是通過數(shù)據(jù)網(wǎng)關(guān),這些服務(wù)節(jié)點(diǎn)才能訪問。把所有三類日志收集過來,大概支撐了這么幾個(gè)應(yīng)用。一個(gè)就是對(duì)整個(gè)系統(tǒng)的故障進(jìn)行診斷,因?yàn)樵冗有一些難點(diǎn)就在于它有些是部署在物理機(jī)上,有些部署在虛擬機(jī)上,有些物理機(jī)可能重疊使用虛擬機(jī),我們把全機(jī)升級(jí)可以進(jìn)行故障診斷,第二可以在整個(gè)基礎(chǔ)上做系統(tǒng)的優(yōu)化。后面還可以支撐一些用戶的行為分析,還有精準(zhǔn)推薦,因?yàn)樗彩窍驇讉(gè)口子提供相應(yīng)的服務(wù)。這個(gè)也是采用曙光的結(jié)構(gòu)化和非結(jié)構(gòu)化統(tǒng)一存儲(chǔ)的大數(shù)據(jù)一體機(jī)的系統(tǒng)。
我的分享就到這里,謝謝大家!
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會(huì)員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.