分布式計算系統(tǒng)及其數(shù)據(jù)處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種分布式計算系統(tǒng)及其數(shù)據(jù)處理方法。
【背景技術(shù)】
[0002]數(shù)據(jù)作為企業(yè)最重要的資產(chǎn),一直以來都是企業(yè)應(yīng)用、技術(shù)、架構(gòu)和服務(wù)等創(chuàng)新的源泉。隨著信息數(shù)據(jù)化和互聯(lián)網(wǎng)技術(shù)的發(fā)展,企業(yè)數(shù)據(jù)正在迅速增長,龐大而復(fù)雜的數(shù)據(jù)能帶來遠超傳統(tǒng)數(shù)據(jù)的信息,同時也需要與傳統(tǒng)數(shù)據(jù)截然不同的處理方式。
[0003]Hadoop最核心的設(shè)計是分布式文件系統(tǒng)HDFS (Hadoop Distributed FileSystem)和MapReduce計算模型。HDFS被設(shè)計部署在價格低廉的硬件上,依靠數(shù)據(jù)冗余達到高度容錯,提供高吞吐量的數(shù)據(jù)訪問,適合批量處理大量數(shù)據(jù)。MapReduce將復(fù)雜的計算過程抽象為多組map和reduce步驟,map和reduce各由多個mapper和reducer函數(shù)執(zhí)行,將不同mapper和reducer分配至不同的計算節(jié)點,實現(xiàn)了在大型計算集群上的高效分布式計算處理。
[0004]當用戶要求Hadoop作為一個全桟平臺,同時兼容批處理交互迭代式查詢和流處理時,Hadoop架構(gòu)的局限性日益顯現(xiàn)。最大的瓶頸之一是MapReduce的大量中間結(jié)果需要向磁盤進行讀寫,當計算量大時,磁盤1/0(輸入/輸出)是顯而易見的瓶頸,導(dǎo)致MapReduce不適合迭代式(Iterative)和交互式(Interactive)應(yīng)用。傳統(tǒng)的分布式計算系統(tǒng)受限于磁盤1/0而存在低性能問題。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對上述問題,提供一種可實現(xiàn)高性能處理能力的分布式計算系統(tǒng)及其數(shù)據(jù)處理方法。
[0006]—種分布式計算系統(tǒng),包括Spark平臺模塊和混合存儲模塊,所述混合存儲模塊包括SSD單元和存儲層單元,所述SSD單元連接所述Spark平臺模塊,所述存儲層單元連接所述SSD單元,
[0007]所述Spark平臺模塊利用大數(shù)據(jù)處理框架Spark作為計算引擎,將處理得到的數(shù)據(jù)發(fā)送至所述SSD單元進行緩存,所述SSD單元將緩存的數(shù)據(jù)發(fā)送至所述存儲層單元進行存儲;所述Spark平臺模塊還用于接收查詢指令,并經(jīng)所述SSD單元從所述存儲層單元獲取與所述查詢指令對應(yīng)的數(shù)據(jù)后輸出。
[0008]一種分布式計算系統(tǒng)的數(shù)據(jù)處理方法,包括以下步驟:
[0009]通過Spark平臺模塊利用大數(shù)據(jù)處理框架Spark作為計算引擎,將處理得到的數(shù)據(jù)發(fā)送至混合存儲模塊中的SSD單元;
[0010]通過所述SSD單元將緩存的數(shù)據(jù)發(fā)送至所述混合存儲模塊中的存儲層單元進行存儲;
[0011]通過所述Spark平臺模塊接收查詢指令,并經(jīng)所述SSD單元從所述存儲層單元獲取與所述查詢指令對應(yīng)的數(shù)據(jù)后輸出。
[0012]上述分布式計算系統(tǒng)及其數(shù)據(jù)處理方法,Spark平臺模塊利用大數(shù)據(jù)處理框架Spark作為計算引擎,將處理得到的數(shù)據(jù)并發(fā)送至混合存儲模塊中的SSD單元;SSD單元將緩存的數(shù)據(jù)發(fā)送至混合存儲模塊中的存儲層單元進行存儲。Spark平臺模塊接收查詢指令,并經(jīng)SSD單元從存儲層單元獲取與查詢指令對應(yīng)的數(shù)據(jù)后輸出。與傳統(tǒng)的分布式計算系統(tǒng)相比,在采用基于內(nèi)存計算的大數(shù)據(jù)處理框架Spark來代替MapReduce作為計算引擎的基礎(chǔ)上,引入SSD作為Spark計算的緩存層來補充內(nèi)存的有限空間,既可以加快I/O吞吐,同時解決內(nèi)存空間不足以應(yīng)對大數(shù)據(jù)量的局限,實現(xiàn)分布式計算系統(tǒng)的高性能處理能力。
【附圖說明】
[0013]圖1為一實施例中分布式計算系統(tǒng)的結(jié)構(gòu)圖;
[0014]圖2為一實施例中分布式計算系統(tǒng)的示意圖;
[0015]圖3為一實施例中分布式計算系統(tǒng)的數(shù)據(jù)處理方法的流程圖。
【具體實施方式】
[0016]—種分布式計算系統(tǒng),如圖1所示,包括Spark平臺模塊120和混合存儲模塊130,混合存儲模塊130包括SSD (Solid State Drives,固態(tài)硬盤)單元132和存儲層單元134,SSD單元132連接Spark平臺模塊120,存儲層單元134連接SSD單元132。
[0017]Spark平臺模塊120利用大數(shù)據(jù)處理框架Spark作為計算引擎,根據(jù)獲取到的數(shù)據(jù)信息進行處理后,將處理得到的數(shù)據(jù)發(fā)送至SSD單元132進行緩存,SSD單元132將緩存的數(shù)據(jù)發(fā)送至存儲層單元134進行存儲;Spark平臺模塊120還用于接收查詢指令,并經(jīng)SSD單元132從存儲層單元134獲取與查詢指令對應(yīng)的數(shù)據(jù)后輸出。本實施例中在采用基于內(nèi)存計算的大數(shù)據(jù)處理框架Spark來代替MapReduce作為計算引擎的基礎(chǔ)上,引入價格約只有內(nèi)存價格十分之一的SSD代替HDD (Hard Disk Drive,機械硬盤)作內(nèi)存之外的緩存,讓SSD和內(nèi)存共同組成混合存儲體系,提升存儲空間利用率和處理效率。存儲層單元134具體可包括用于存儲數(shù)據(jù)的存儲元件。
[0018]在其中一個實施例中,Spark平臺模塊120將數(shù)據(jù)發(fā)送至SSD單元132后,以行列混合存儲的ORCFile格式進行緩存。ORCFile的前身是一種高效的數(shù)據(jù)存儲結(jié)構(gòu)RCFile (Record Columnar File),并被應(yīng)用于后來發(fā)展為Apache Hive 的Facebook 的數(shù)據(jù)倉庫中。RCFile更有效地滿足基于MapReduce的數(shù)據(jù)倉庫的四個關(guān)鍵需求,即快速加載數(shù)據(jù)、快速處理查詢、高效利用存儲空間和高度適應(yīng)動態(tài)工作負載。
[0019]RCFile的核心思想是首先把表水平切分成多個行組(row groups),然后組內(nèi)按照列垂直切分,這樣行組之內(nèi)便按列存儲。當一個行組內(nèi)的所有列寫到磁盤時,RCFile就會以列為單位對數(shù)據(jù)使用類zlib/lzo的算法進行壓縮。當讀取列數(shù)據(jù)的時候使用惰性解壓策略(lazy decompress1n),也就是說用戶的某個查詢?nèi)绻皇巧婕暗讲糠至?,RCFile只會解壓涉及到的列而跳過無關(guān)列。
[0020]0RC File的設(shè)計思想相似在RCFile的基礎(chǔ)上做了優(yōu)化,具體改進為:1)每個Spark task只輸出單個文件。2)文件中存儲了一些輕量級的索引數(shù)據(jù);3)基于數(shù)據(jù)類型的塊模式壓縮;4)用多個互相獨立的RecordReaders并行讀相同的文件;5)控制讀寫所需要的內(nèi)存量。
[0021]本實施例中使用針對SSD硬件特性而優(yōu)化的存儲格式,對存儲在SSD單元132上的數(shù)據(jù)采用行列混合式文件(0RC)結(jié)構(gòu)進行存儲,充分發(fā)揮SSD硬件特性,提升處理性能和壓縮空間。大幅提升大數(shù)據(jù)系統(tǒng)處理的性能。
[0022]在其中一個實施例中,如圖2所示,Spark平臺模塊120包括多個執(zhí)行單元122,多個執(zhí)行單元122均連接SSD單元132。通過多個執(zhí)行單元122分別進行數(shù)據(jù)存儲和讀取操作,提高數(shù)據(jù)處理速度,且確保操作可靠性。
[0023]在其中一個實施例中,混合存儲模塊130還包括文件系統(tǒng)API (Applicat1nProgramming Interface,應(yīng)用程序編程接口 )接口 131,SSD單元132通過文件系統(tǒng)API接口 131與Spark平臺模塊120連接,以進行數(shù)據(jù)傳輸。
[0024]在其中一個實施例中,繼續(xù)參照圖2,分布式計算系統(tǒng)還包括連接Spark平臺模塊120的數(shù)據(jù)接收模塊110,數(shù)據(jù)接收模塊110用于接收數(shù)據(jù)并發(fā)送至Spark平臺模塊120,以及接收查詢指令發(fā)送至Spark平臺模塊120,并輸出Spark平臺模塊120返回的數(shù)據(jù)。
[0025]此外,分布式計算系統(tǒng)還可包括連接混合存儲模塊130的容量監(jiān)控模塊,容量監(jiān)控模塊用于對混合存儲模塊130的剩余容量進行監(jiān)控,并在剩余容量小于預(yù)設(shè)閾值時輸出報警信息。預(yù)設(shè)閾值的具體取值可根據(jù)混合存儲模塊130的容量大小決定,輸出報警信息可以是控制揚聲器發(fā)聲或控制報警燈閃爍等。在混合存儲模塊13