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