本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,涉及一種數(shù)據(jù)處理平臺和系統(tǒng)。
背景技術(shù):
目前,隨著大數(shù)據(jù)時代的到來,大數(shù)據(jù)的存儲與查詢成為大數(shù)據(jù)領(lǐng)域的熱點之一。大數(shù)據(jù)就是巨量數(shù)據(jù)集合,通過分布式的方式存儲到大數(shù)據(jù)存儲系統(tǒng)中。大數(shù)據(jù)存儲系統(tǒng)會在已存儲存量數(shù)據(jù)的基礎(chǔ)上,對后來得到的增量數(shù)據(jù)繼續(xù)進(jìn)行存儲。而對增量數(shù)據(jù)的處理可以實時動態(tài)的根據(jù)數(shù)據(jù)源的改變,對數(shù)據(jù)及時處理并將處理結(jié)果增量導(dǎo)入數(shù)據(jù)庫以備后續(xù)利用。
相關(guān)技術(shù)中,對增量數(shù)據(jù)進(jìn)行處理時,spark集群會抽取增量數(shù)據(jù)并做同步分析和存儲,完成后spark集群將同步分析處理后的增量數(shù)據(jù)導(dǎo)入hbase;hbase對同步分析處理后的增量數(shù)據(jù)進(jìn)行抽取,并將抽取的數(shù)據(jù)導(dǎo)入elasticsearch,elasticsearch建立導(dǎo)入的增量數(shù)據(jù)的索引,從而完成對增量數(shù)據(jù)的處理。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
隨著時間的推移,spark集群中存儲的數(shù)據(jù)越來越多,存儲壓力越來越大。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種數(shù)據(jù)處理平臺和系統(tǒng),以減輕spark集群的存儲壓力。
第一方面,本發(fā)明實施例提供了一種數(shù)據(jù)處理平臺,包括:相互交互的spark集群、elasticsearch集群和hbase集群;
所述spark集群,用于監(jiān)測數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù),對所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理,并把處理后的增量數(shù)據(jù)導(dǎo)入elasticsearch集群和hbase集群,其中,所述增量數(shù)據(jù)包括:數(shù)據(jù)類型標(biāo)識;
所述hbase集群,用于存儲所述spark集群處理后的所述增量數(shù)據(jù);
所述elasticsearch集群,用于將處理后的所述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,其中:所述elasticsearch集群,包括:多個elasticsearch節(jié)點;
所述多個elasticsearch節(jié)點分別與所述spark集群和所述hbase集群交互;
所述多個elasticsearch節(jié)點均用于將處理后的所述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并;
當(dāng)所述多個elasticsearch節(jié)點中有elasticsearch節(jié)點出現(xiàn)故障時,故障elasticsearch節(jié)點獲取所述hbase集群中存儲的所述增量數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù)。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中:所述故障elasticsearch節(jié)點獲取所述hbase集群中存儲的所述增量數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù),包括:
所述故障elasticsearch節(jié)點向所述elasticsearch集群中其他elasticsearch節(jié)點發(fā)送第一增量數(shù)據(jù)恢復(fù)指令,所述第一增量數(shù)據(jù)恢復(fù)指令中攜帶有數(shù)據(jù)恢復(fù)時間段;
當(dāng)在預(yù)設(shè)的恢復(fù)數(shù)據(jù)獲取時長內(nèi)收到其他elasticsearch節(jié)點返回的所述數(shù)據(jù)恢復(fù)時間段內(nèi)增量數(shù)據(jù)的恢復(fù)數(shù)據(jù)時,所述故障elasticsearch節(jié)點通過增量數(shù)據(jù)的恢復(fù)數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù);
當(dāng)在預(yù)設(shè)的恢復(fù)數(shù)據(jù)獲取時長內(nèi)未收到其他elasticsearch節(jié)點返回的所述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)恢復(fù)數(shù)據(jù)時,向所述hbase集群發(fā)送第二增量數(shù)據(jù)恢復(fù)指令,所述第二增量數(shù)據(jù)恢復(fù)指令中攜帶有數(shù)據(jù)恢復(fù)時間段和所述故障elasticsearch節(jié)點的標(biāo)識;
所述故障elasticsearch節(jié)點獲取所述hbase集群返回的增量恢復(fù)數(shù)據(jù),并通過所述增量恢復(fù)數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù)。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中:所述故障elasticsearch節(jié)點獲取所述hbase集群返回的增量恢復(fù)數(shù)據(jù),并通過所述增量恢復(fù)數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù),包括:
所述故障elasticsearch節(jié)點獲取所述hbase集群返回的增量恢復(fù)數(shù)據(jù),所述增量恢復(fù)數(shù)據(jù)攜帶有數(shù)據(jù)類型標(biāo)識;
所述故障elasticsearch節(jié)點將所述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)刪除;
所述故障elasticsearch節(jié)點獲取預(yù)存的不同類型數(shù)據(jù)的索引文件,所述索引文件包括:索引標(biāo)識;
當(dāng)具有未查詢的索引標(biāo)識時,所述故障elasticsearch節(jié)點根據(jù)索引文件中的索引標(biāo)識,查詢出具有與所述索引標(biāo)識相同的數(shù)據(jù)類型標(biāo)識的增量恢復(fù)數(shù)據(jù);
所述故障elasticsearch節(jié)點根據(jù)所述索引標(biāo)識對應(yīng)的索引文件,確定查詢出的增量恢復(fù)數(shù)據(jù)對應(yīng)類型數(shù)據(jù)的存儲文件;
所述故障elasticsearch節(jié)點將查詢出的增量恢復(fù)數(shù)據(jù)合并到確定出的存儲文件中。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中:當(dāng)獲取到第二增量數(shù)據(jù)恢復(fù)指令時,所述hbase集群,具體用于:
查詢出所述第二增量數(shù)據(jù)恢復(fù)指令中攜帶的所述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù),將所述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)確定為所述增量恢復(fù)數(shù)據(jù);
向所述故障elasticsearch節(jié)點的標(biāo)識指示的故障elasticsearch節(jié)點返回所述增量恢復(fù)數(shù)據(jù)。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中:所述多個elasticsearch節(jié)點均用于將處理后的所述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并,包括:
所述elasticsearch節(jié)點獲取預(yù)存的不同類型數(shù)據(jù)的索引文件,所述索引文件包括:索引標(biāo)識;
當(dāng)具有未查詢的索引標(biāo)識時,所述elasticsearch節(jié)點根據(jù)索引文件中的索引標(biāo)識,查詢出具有與所述索引標(biāo)識相同的數(shù)據(jù)類型標(biāo)識的增量數(shù)據(jù);
所述elasticsearch節(jié)點根據(jù)所述索引標(biāo)識對應(yīng)的索引文件,確定查詢出的增量數(shù)據(jù)對應(yīng)類型數(shù)據(jù)的存儲文件;
所述elasticsearch節(jié)點將查詢出的增量數(shù)據(jù)合并到確定出的存儲文件中,將處理后的所述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第六種可能的實施方式,其中:所述spark集群,監(jiān)測數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù),對所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理包括:
監(jiān)測所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù);
當(dāng)所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)滿足預(yù)設(shè)的數(shù)據(jù)抽取條件時,從所述數(shù)據(jù)庫獲取增量數(shù)據(jù);
對獲取到的所述增量數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)換和加載(extraction-transformation-loading,etl)處理;
針對不同的數(shù)據(jù)類型對提取、轉(zhuǎn)換和加載處理后的增量數(shù)據(jù)做簡單數(shù)據(jù)分析、數(shù)理統(tǒng)計和數(shù)據(jù)挖掘;
其中,所述數(shù)據(jù)抽取條件,包括以下條件中的至少一個:所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)數(shù)量達(dá)到預(yù)設(shè)數(shù)量閾值;所述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)占用的存儲空間達(dá)到預(yù)設(shè)存儲空間閾值;距離上次獲取增量數(shù)據(jù)的時長達(dá)到預(yù)設(shè)數(shù)據(jù)獲取周期。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第七種可能的實施方式,其中:所述hbase集群,包括:多個hbase節(jié)點;
所述多個hbase節(jié)點分別與所述spark集群和所述elasticsearch集群交互;
所述多個hbase節(jié)點均用于存儲所述spark集群處理后的所述增量數(shù)據(jù);
當(dāng)所述多個hbase節(jié)點中有hbase節(jié)點出現(xiàn)故障時,故障hbase節(jié)點從正常工作hbase節(jié)點中獲取所述增量數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。
第二方面,本發(fā)明實施例還提供一種數(shù)據(jù)處理系統(tǒng),包括上述的數(shù)據(jù)處理平臺和數(shù)據(jù)庫;
所述數(shù)據(jù)處理平臺,包括:相互連接的spark集群、elasticsearch集群和hbase集群;
所述數(shù)據(jù)庫與所述spark集群連接;
所述數(shù)據(jù)庫,用于產(chǎn)生增量數(shù)據(jù)。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,其中:還包括:商業(yè)智能平臺;
所述商業(yè)智能平臺,與所述spark集群連接;
所述商業(yè)智能平臺,用于獲取所述spark集群處理后的增量數(shù)據(jù),并對所述spark集群處理后的增量數(shù)據(jù)進(jìn)行商業(yè)分析。
本發(fā)明實施例提供的數(shù)據(jù)處理平臺和系統(tǒng),通過數(shù)據(jù)處理平臺中的spark集群對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理,并把處理后的增量數(shù)據(jù)導(dǎo)入elasticsearch集群和hbase集群,與相關(guān)技術(shù)中spark集群會存儲增量數(shù)據(jù)相比,spark集群僅對增量數(shù)據(jù)進(jìn)行分析,無需對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行存儲,減輕了spark集群的存儲壓力。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實施例所提供的一種數(shù)據(jù)處理平臺和系統(tǒng)中,應(yīng)用的服務(wù)器的結(jié)構(gòu)示意圖;
圖2示出了本發(fā)明實施例1所提供的數(shù)據(jù)處理平臺的結(jié)構(gòu)示意圖;
圖3示出了本發(fā)明實施例1所提供的數(shù)據(jù)處理平臺中,對增量數(shù)據(jù)進(jìn)行合并操作的流程;
圖4示出了本發(fā)明實施例2所提供的一種數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
圖標(biāo):100-spark集群;102-elasticsearch集群;104-hbase集群;200-服務(wù)器;201-存儲器;202-處理器;203-網(wǎng)絡(luò)模塊;221-操作系統(tǒng);222-服務(wù)模塊;400-數(shù)據(jù)處理平臺;402-數(shù)據(jù)庫;404-商業(yè)智能平臺;4000-spark集群;4002-elasticsearch集群;4004-hbase集群。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實施例所提供的數(shù)據(jù)處理平臺和系統(tǒng)可應(yīng)用于如圖1所示的服務(wù)器中。圖1示出了一種可應(yīng)用于本發(fā)明實施例中的服務(wù)器的結(jié)構(gòu)框圖。如圖1所示,服務(wù)器200包括:存儲器201、處理器202以及網(wǎng)絡(luò)模塊203。該服務(wù)器可以用作本實施例中提到的spark節(jié)點、hbase節(jié)點、elasticsearch節(jié)點、數(shù)據(jù)庫和商業(yè)智能平臺。
存儲器201可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的增量數(shù)據(jù)處理時使用的程序指令/模塊,處理器202通過運行存儲在存儲器201內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)本發(fā)明實施例中的數(shù)據(jù)處理方法。存儲器201可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。進(jìn)一步地,上述軟件程序以及模塊還可包括:操作系統(tǒng)221以及服務(wù)模塊222。其中操作系統(tǒng)221,例如可為linux、unix、windows,其可包括各種用于管理系統(tǒng)任務(wù)(例如內(nèi)存管理、存儲設(shè)備控制、電源管理等)的軟件組件和/或驅(qū)動,并可與各種硬件或軟件組件相互通訊,從而提供其他軟件組件的運行環(huán)境。服務(wù)模塊222運行在操作系統(tǒng)221的基礎(chǔ)上,并通過操作系統(tǒng)221的網(wǎng)絡(luò)服務(wù)監(jiān)聽來自網(wǎng)絡(luò)的請求,根據(jù)請求完成相應(yīng)的數(shù)據(jù)處理,并返回處理結(jié)果給客戶端。也就是說,服務(wù)模塊222用于向客戶端提供網(wǎng)絡(luò)服務(wù)。
網(wǎng)絡(luò)模塊203用于接收以及發(fā)送網(wǎng)絡(luò)信號。上述網(wǎng)絡(luò)信號可包括無線信號或者有線信號。
可以理解,圖1所示的結(jié)構(gòu)僅為示意,服務(wù)器200還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。另外,本發(fā)明實施例中的服務(wù)器還可以包括多個具體不同功能的服務(wù)器。
在一個實現(xiàn)方式中,服務(wù)器的硬件配置如下:
中央處理器cpu:
型號:xeone5-2670v3-12core;
數(shù)量:2個。
內(nèi)存:
配置參數(shù):ddr4rdimm-16gb-2133000khz-1.2v-ecc-2rank(1g*4bit);
數(shù)量:16個。
硬盤
配置參數(shù):1200gb-sas12gb/s-10000rpm-2.5inch-熱插拔;
數(shù)量:8個。
磁盤陣列raid卡
配置參數(shù):sr320bc1gbcache,支持-raid0,1,5,6,10,50,60-支持超級電容+850mmminisas模塊(8盤規(guī)格);
數(shù)量:1個。
目前,對增量數(shù)據(jù)進(jìn)行處理時,spark集群會抽取增量數(shù)據(jù)并做同步分析和存儲,完成后spark集群將同步分析處理后的增量數(shù)據(jù)導(dǎo)入hbase;hbase對同步分析處理后的增量數(shù)據(jù)進(jìn)行抽取,并將抽取的數(shù)據(jù)導(dǎo)入elasticsearch,elasticsearch建立導(dǎo)入的增量數(shù)據(jù)的索引,從而完成對增量數(shù)據(jù)的處理。隨著時間的推移,spark集群中存儲的數(shù)據(jù)越來越多,存儲壓力越來越大?;诖?,本申請?zhí)峁┑囊环N數(shù)據(jù)處理平臺和系統(tǒng)。
需要注意的是,在本發(fā)明的描述中,術(shù)語“中心”、“上”、“下”、“左”、“右”、“豎直”、“水平”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”、“第三”僅用于描述目的,而不能理解為指示或暗示相對重要性。
另外,在本發(fā)明的描述中,除非另有明確的規(guī)定和限定,術(shù)語“安裝”、“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連,可以是兩個元件內(nèi)部的連通。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。
實施例1
參見圖2所示的流程示意圖,本實施例提供一種數(shù)據(jù)處理平臺,包括:相互交互的spark集群100、elasticsearch集群102和hbase集群104;
上述spark集群100,用于監(jiān)測數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù),對上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理,并把處理后的增量數(shù)據(jù)導(dǎo)入elasticsearch集群102和hbase集群104,其中,上述增量數(shù)據(jù)包括:數(shù)據(jù)類型標(biāo)識;
上述hbase集群104,用于存儲上述spark集群100處理后的上述增量數(shù)據(jù);
上述elasticsearch集群102,用于將處理后的上述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并。
其中,上述增量數(shù)據(jù),是指在存量數(shù)據(jù)基礎(chǔ)上,符合預(yù)設(shè)的數(shù)據(jù)抽取條件的、由數(shù)據(jù)庫產(chǎn)生的源數(shù)據(jù)。增量數(shù)據(jù)除了具有數(shù)據(jù)類型標(biāo)識和數(shù)據(jù)本身之外,還攜帶有生成時間信息。
上述數(shù)據(jù)抽取條件,包括以下條件中的至少一個:上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)數(shù)量達(dá)到預(yù)設(shè)數(shù)量閾值;上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)占用的存儲空間達(dá)到預(yù)設(shè)存儲空間閾值;距離上次獲取增量數(shù)據(jù)的時長達(dá)到預(yù)設(shè)數(shù)據(jù)獲取周期。
源數(shù)據(jù),是指數(shù)據(jù)庫生成的數(shù)據(jù)。
數(shù)據(jù)類型標(biāo)識,用于elasticsearch集群102和hbase集群104對增量數(shù)據(jù)進(jìn)行識別,從而根據(jù)數(shù)據(jù)類型標(biāo)識對應(yīng)的數(shù)據(jù)類型,對增量數(shù)據(jù)進(jìn)行分類存儲和索引。
數(shù)據(jù)庫可以根據(jù)不同數(shù)據(jù)類型,產(chǎn)生針對不同類型應(yīng)用或者不同應(yīng)用場景的源數(shù)據(jù)。
數(shù)據(jù)類型標(biāo)識,是數(shù)據(jù)庫在生成源數(shù)據(jù)時,根據(jù)所生成源數(shù)據(jù)的數(shù)據(jù)名稱進(jìn)行哈希計算得到的。不同類型的源數(shù)據(jù)都具有唯一的數(shù)據(jù)名稱,所以通過哈希計算得到的數(shù)據(jù)類型標(biāo)識也是唯一的。
上述hbase集群104,除了對增量數(shù)據(jù)均進(jìn)行存儲外,還存儲有存量數(shù)據(jù)。上述存量數(shù)據(jù),就是hbase集群104在獲取本次增量數(shù)據(jù)之前獲取并存儲的數(shù)據(jù)。
上述elasticsearch集群102,主要的作用是使用戶對hbase集群104中存儲的數(shù)據(jù)進(jìn)行檢索。所以,elasticsearch集群102預(yù)先建立有索引文件,并存儲有與索引文件對應(yīng)的快速查詢數(shù)據(jù)。從而在用戶搜索一些搜索頻率較高的數(shù)據(jù)時,無需elasticsearch集群102到hbase集群104中進(jìn)行遍歷查詢,就可以在確定數(shù)據(jù)的索引文件后,根據(jù)索引文件的指示直接把存儲的快速查詢數(shù)據(jù)返回給用戶,提高了查詢效率。
在elasticsearch集群102中,一個索引文件對應(yīng)一個類型的快速查詢數(shù)據(jù)。用戶可以根據(jù)應(yīng)用場景的不同,在elasticsearch集群102中預(yù)先設(shè)置該應(yīng)用場景下應(yīng)用的不同類型數(shù)據(jù)的索引文件。而且,用戶還可以對elasticsearch集群102中設(shè)置的索引文件進(jìn)行增加和刪除,使用戶可以根據(jù)自己的需求,對快速查詢數(shù)據(jù)進(jìn)行更改,進(jìn)一步提高了查詢效率。
上述快速查詢數(shù)據(jù),為用戶經(jīng)常搜索的數(shù)據(jù)??焖俨樵償?shù)據(jù)的設(shè)置,使得elasticsearch集群102在確定用戶搜索這些數(shù)據(jù)時,無需到hbase集群104中進(jìn)行遍歷查詢,根據(jù)索引文件的指示把相應(yīng)的快速查詢數(shù)據(jù)返回給用戶,提高了查詢效率。
具體地,上述spark集群100,用于監(jiān)測數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù),對上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理包括以下步驟(1)至步驟(4):
(1)監(jiān)測上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù);
(2)當(dāng)上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)滿足預(yù)設(shè)的數(shù)據(jù)抽取條件時,從上述數(shù)據(jù)庫獲取增量數(shù)據(jù);
(3)對獲取到的上述增量數(shù)據(jù)進(jìn)行提取、轉(zhuǎn)換和加載處理;
(4)針對實際需求對提取、轉(zhuǎn)換和加載處理后的增量數(shù)據(jù)做簡單數(shù)據(jù)分析、數(shù)理統(tǒng)計和數(shù)據(jù)挖掘。
其中,上述數(shù)據(jù)抽取條件,包括以下條件中的至少一個:上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)數(shù)量達(dá)到預(yù)設(shè)數(shù)量閾值;上述數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)占用的存儲空間達(dá)到預(yù)設(shè)存儲空間閾值;距離上次獲取增量數(shù)據(jù)的時長達(dá)到預(yù)設(shè)數(shù)據(jù)獲取周期。
在上述步驟(2)中,上述spark集群100可以分批從數(shù)據(jù)庫獲取增量數(shù)據(jù)。
在上述步驟(3)中,上述spark集群100對獲取的增量數(shù)據(jù)進(jìn)行etl處理,主要為清理增量數(shù)據(jù)中的無用信息,保證增量數(shù)據(jù)的正確性、完整性、一致性、有效性和時效性。
在上述步驟(4)中,可以采用現(xiàn)有任何簡單數(shù)據(jù)分析、數(shù)理統(tǒng)計和數(shù)據(jù)挖掘的操作對增量數(shù)據(jù)進(jìn)行處理,這里不再一一贅述。
綜上所述,本實施例提供的數(shù)據(jù)處理平臺,通過平臺中的spark集群對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理,并把處理后的增量數(shù)據(jù)導(dǎo)入elasticsearch集群和hbase集群,與相關(guān)技術(shù)中spark集群會存儲增量數(shù)據(jù)相比,spark集群僅對增量數(shù)據(jù)進(jìn)行分析,無需對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行存儲,減輕了spark集群的存儲壓力。
相關(guān)技術(shù)中,若elasticsearch在運行過程中出現(xiàn)故障,由于目前的大數(shù)據(jù)存儲系統(tǒng)沒有對故障elasticsearch中的增量數(shù)據(jù)提供容錯和校驗機制,造成無法對故障elasticsearch中的增量數(shù)據(jù)進(jìn)行恢復(fù)的問題。所以,為了對故障elasticsearch中的增量數(shù)據(jù)進(jìn)行恢復(fù),本實施例提出的數(shù)據(jù)處理平臺中的上述elasticsearch集群,包括:多個elasticsearch節(jié)點;
上述多個elasticsearch節(jié)點分別與上述spark集群和上述hbase集群交互;
上述多個elasticsearch節(jié)點均用于將處理后的上述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并;
當(dāng)上述多個elasticsearch節(jié)點中有elasticsearch節(jié)點出現(xiàn)故障時,故障elasticsearch節(jié)點獲取上述hbase集群中存儲的上述增量數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù)。
其中,多個elasticsearch節(jié)點分別用于合并以及存儲不同業(yè)務(wù)類型的增量數(shù)據(jù)。elasticsearch節(jié)點相當(dāng)于數(shù)據(jù)處理平臺的快速查找機構(gòu),可以在用戶查詢時向用戶快速反饋查詢結(jié)果。
elasticsearch是一個即時的分布式查詢和分析引擎,用輕微的延遲去處理增量數(shù)據(jù)??梢詫崿F(xiàn)分布式文件存儲,并將每一個字段都編入索引,使其可以被查詢;可以實現(xiàn)全文搜索、結(jié)構(gòu)化搜索以及實時分析;可以擴展到上百臺服務(wù)器,處理pb級別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù)。
具體地,上述故障elasticsearch節(jié)點獲取上述hbase集群中存儲的上述增量數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù),包括以下步驟(1)至步驟(4):
(1)上述故障elasticsearch節(jié)點向上述elasticsearch集群中其他elasticsearch節(jié)點發(fā)送第一增量數(shù)據(jù)恢復(fù)指令,上述第一增量數(shù)據(jù)恢復(fù)指令中攜帶有數(shù)據(jù)恢復(fù)時間段;
(2)當(dāng)在預(yù)設(shè)的恢復(fù)數(shù)據(jù)獲取時長內(nèi)收到其他elasticsearch節(jié)點返回的上述數(shù)據(jù)恢復(fù)時間段內(nèi)增量數(shù)據(jù)的恢復(fù)數(shù)據(jù)時,上述故障elasticsearch節(jié)點通過增量數(shù)據(jù)的恢復(fù)數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù);
(3)當(dāng)在預(yù)設(shè)的恢復(fù)數(shù)據(jù)獲取時長內(nèi)未收到其他elasticsearch節(jié)點返回的上述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)恢復(fù)數(shù)據(jù)時,向上述hbase集群發(fā)送第二增量數(shù)據(jù)恢復(fù)指令,上述第二增量數(shù)據(jù)恢復(fù)指令中攜帶有數(shù)據(jù)恢復(fù)時間段和上述故障elasticsearch節(jié)點的標(biāo)識;
(4)上述故障elasticsearch節(jié)點獲取上述hbase集群返回的增量恢復(fù)數(shù)據(jù),并通過上述增量恢復(fù)數(shù)據(jù)進(jìn)行增量數(shù)據(jù)恢復(fù)。
在上述步驟(1)中,數(shù)據(jù)恢復(fù)時間段包括數(shù)據(jù)恢復(fù)起始時間點和終止時間點。該數(shù)據(jù)恢復(fù)時間段由故障elasticsearch節(jié)點根據(jù)需要恢復(fù)的增量信息的生成時間信息確定。
在上述步驟(2)中,故障elasticsearch節(jié)點在獲取到其他elasticsearch節(jié)點的增量數(shù)據(jù)恢復(fù)數(shù)據(jù)時,直接通過獲取到的增量數(shù)據(jù)恢復(fù)數(shù)據(jù)對故障elasticsearch節(jié)點中需要恢復(fù)的增量數(shù)據(jù)進(jìn)行更新,就可以完成增量數(shù)據(jù)恢復(fù)操作。
上述步驟(4)中,具體包括以下步驟(41)至步驟(46):
(41)上述故障elasticsearch節(jié)點獲取上述hbase集群返回的增量恢復(fù)數(shù)據(jù),上述增量恢復(fù)數(shù)據(jù)攜帶有數(shù)據(jù)類型標(biāo)識;
(42)上述故障elasticsearch節(jié)點將上述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)刪除;
(43)上述故障elasticsearch節(jié)點獲取預(yù)存的不同類型數(shù)據(jù)的索引文件,上述索引文件包括:索引標(biāo)識;
(44)當(dāng)具有未查詢的索引標(biāo)識時,上述故障elasticsearch節(jié)點根據(jù)索引文件中的索引標(biāo)識,查詢出具有與上述索引標(biāo)識相同的數(shù)據(jù)類型標(biāo)識的增量恢復(fù)數(shù)據(jù);
(45)上述故障elasticsearch節(jié)點根據(jù)上述索引標(biāo)識對應(yīng)的索引文件,確定查詢出的增量恢復(fù)數(shù)據(jù)對應(yīng)類型數(shù)據(jù)的存儲文件;
(46)上述故障elasticsearch節(jié)點將查詢出的增量恢復(fù)數(shù)據(jù)合并到確定出的存儲文件中。
在上述步驟(41)中,hbase集群返回的增量恢復(fù)數(shù)據(jù),是由hbase集群中的任一hbase集群節(jié)點所確定的增量恢復(fù)數(shù)據(jù)。
在上述步驟(43)中,可以根據(jù)應(yīng)用場景的不同,在elasticsearch集群的各個節(jié)點中設(shè)置針對不同應(yīng)用場景的數(shù)據(jù)類型的索引文件。
不同類型數(shù)據(jù)的索引文件,用于預(yù)設(shè)在elasticsearch集群中,使elasticsearch集群對存儲的不同類型數(shù)據(jù)進(jìn)行分類索引。
上述索引標(biāo)識,由elasticsearch集群對用戶預(yù)設(shè)的數(shù)據(jù)名稱進(jìn)行哈希算法得到的,存儲在索引文件中,可以用于查詢使用。
當(dāng)用戶查詢時,上述elasticsearch集群執(zhí)行以下具體步驟(431)至步驟(435):
(431)elasticsearch集群獲取用戶輸入的想要查詢的數(shù)據(jù)名稱;
(432)elasticsearch集群對用戶輸入的數(shù)據(jù)名稱進(jìn)行哈希計算,得到數(shù)據(jù)名稱哈希值;
(433)elasticsearch集群通過數(shù)據(jù)名稱哈希值查詢出與數(shù)據(jù)名稱哈希值相同的索引標(biāo)識,并得到具有該哈希值的索引文件;
(434)elasticsearch集群將該索引文件指示的存儲文件打開并取出存儲文件中的數(shù)據(jù);
(435)elasticsearch集群將取出的數(shù)據(jù)返回給用戶。
通過以上步驟(431)至步驟(435)的描述,在索引文件設(shè)置索引標(biāo)識,使得查詢的過程中可以通過查詢條件就可以確定用戶想要查詢的數(shù)據(jù)的索引文件,相當(dāng)于建立了查詢條件到具體查詢內(nèi)容的映射,方便用戶對數(shù)據(jù)的查詢。
在上述步驟(44)中,elasticsearch節(jié)點通過遍歷的方式,查詢出具有與上述索引標(biāo)識相同的數(shù)據(jù)類型標(biāo)識的增量恢復(fù)數(shù)據(jù)。
在上述步驟(46)中,elasticsearch節(jié)點采用現(xiàn)有的任何字符串拼接技術(shù)將查詢出的增量恢復(fù)數(shù)據(jù)合并到確定出的存儲文件中,這里不再贅述。
相應(yīng)的,當(dāng)獲取到第二增量數(shù)據(jù)恢復(fù)指令時,上述hbase集群,具體執(zhí)行以下步驟(1)至步驟(2):
(1)查詢出上述第二增量數(shù)據(jù)恢復(fù)指令中攜帶的上述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù),將上述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)確定為上述增量恢復(fù)數(shù)據(jù);
(2)向上述故障elasticsearch節(jié)點的標(biāo)識指示的故障elasticsearch節(jié)點返回上述增量恢復(fù)數(shù)據(jù)。
在上述步驟(1)中,上述hbase集群通過設(shè)置的協(xié)處理器調(diào)用預(yù)設(shè)的增量數(shù)據(jù)過濾器,將上述數(shù)據(jù)恢復(fù)時間段內(nèi)的增量數(shù)據(jù)查詢出來。
上述步驟(1)至步驟(2),可以通過hbase集群中的任意hbase節(jié)點執(zhí)行。
通過以上的描述可以看出,在elasticsearch出現(xiàn)故障時,數(shù)據(jù)處理平臺對故障elasticsearch中的增量數(shù)據(jù)提供容錯和校驗機制,無需spark集群再次從數(shù)據(jù)庫中獲取需要恢復(fù)的增量數(shù)據(jù),使故障elasticsearch節(jié)點獲取hbase集群中存儲的增量數(shù)據(jù)就可以進(jìn)行增量數(shù)據(jù)恢復(fù),數(shù)據(jù)恢復(fù)效率高。
具體地,參見圖3所示的elasticsearch節(jié)點對增量數(shù)據(jù)進(jìn)行合并操作的流程,多個elasticsearch節(jié)點均用于將處理后的上述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并,包括以下具體步驟:
步驟300、elasticsearch節(jié)點獲取預(yù)存的不同類型數(shù)據(jù)的索引文件,上述索引文件包括:索引標(biāo)識;
步驟302、當(dāng)具有未查詢的索引標(biāo)識時,上述elasticsearch節(jié)點根據(jù)索引文件中的索引標(biāo)識,查詢出具有與上述索引標(biāo)識相同的數(shù)據(jù)類型標(biāo)識的增量數(shù)據(jù);
步驟304、上述elasticsearch節(jié)點根據(jù)上述索引標(biāo)識對應(yīng)的索引文件,確定查詢出的增量數(shù)據(jù)對應(yīng)類型數(shù)據(jù)的存儲文件;
步驟306、上述elasticsearch節(jié)點將查詢出的增量數(shù)據(jù)合并到確定出的存儲文件中,將處理后的上述增量數(shù)據(jù)與快速查詢數(shù)據(jù)合并。
在上述步驟306中,elasticsearch節(jié)點將查詢出的增量恢復(fù)數(shù)據(jù)合并到確定出的存儲文件中的過程與上述步驟(46)類似,這里不再贅述。
在一個實施方式中,hbase集群不僅可以對故障elasticsearch中的增量數(shù)據(jù)進(jìn)行恢復(fù),還可以對自身節(jié)點出現(xiàn)的故障進(jìn)行數(shù)據(jù)恢復(fù)。上述hbase集群,包括:多個hbase節(jié)點;
上述多個hbase節(jié)點分別與上述spark集群和上述elasticsearch集群交互;
上述多個hbase節(jié)點均用于存儲上述spark集群處理后的上述增量數(shù)據(jù);
當(dāng)上述多個hbase節(jié)點中有hbase節(jié)點出現(xiàn)故障時,故障hbase節(jié)點從正常工作hbase節(jié)點中獲取上述增量數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作。
hbase節(jié)點作為高性能、列存儲、可伸縮、實時讀寫的分布式數(shù)據(jù)庫,可支持集群存儲海量數(shù)據(jù),極大的彌補了傳統(tǒng)數(shù)據(jù)庫的不足。hbase節(jié)點在主鍵上建立了類b+樹索引,可以高效的實現(xiàn)基于主鍵的快速查詢。然而由于hbase缺少非主鍵索引能力,在接受以非主鍵查詢請求時,需要對全表進(jìn)行掃描,導(dǎo)致查詢速度較慢,難以適應(yīng)大數(shù)據(jù)時空數(shù)據(jù)存儲和高效率的增量數(shù)據(jù)插入在速度上對應(yīng)的即時查詢。所以目前的大數(shù)據(jù)存儲系統(tǒng),需要將hbase與elasticsearch配合使用。以體現(xiàn)出hbase和elasticsearch兩種不同檢索方法的優(yōu)勢。
多個hbase節(jié)點均存儲上述spark集群處理后的上述增量數(shù)據(jù)的過程包括:在多個hbase節(jié)點中的每個hbase節(jié)點建表,接下來需要設(shè)計相應(yīng)的rowkey從而滿足相應(yīng)的業(yè)務(wù)需求。大數(shù)據(jù)平臺處理后的增量數(shù)據(jù)同一rowkey可能存在多條記錄,所以需要將相同rowkey下的數(shù)據(jù)合并后將結(jié)果flush到每個hbase節(jié)點中。
上述故障hbase節(jié)點從正常工作hbase節(jié)點中獲取上述增量數(shù)據(jù)進(jìn)行數(shù)據(jù)恢復(fù)操作的過程可以采用現(xiàn)有的任何數(shù)據(jù)恢復(fù)方法進(jìn)行數(shù)據(jù)恢復(fù),這里不再一一贅述。
通過以上的描述可以看出,hbase節(jié)點發(fā)生故障時,無需spark集群再次從數(shù)據(jù)庫中獲取需要恢復(fù)的增量數(shù)據(jù),hbase其他節(jié)點可以保護(hù)數(shù)據(jù),在保證數(shù)據(jù)安全性、容災(zāi)性的同時對故障hbase節(jié)點的數(shù)據(jù)進(jìn)行恢復(fù),進(jìn)一步提高了數(shù)據(jù)恢復(fù)效率。
實施例2
參見圖4,本實施例提供一種數(shù)據(jù)處理系統(tǒng),包括上述實施例1中描述的數(shù)據(jù)處理平臺400和數(shù)據(jù)庫402;
上述數(shù)據(jù)處理平臺400,包括:相互交互的spark集群4000、elasticsearch集群4002和hbase集群4004;
上述數(shù)據(jù)庫402與上述spark集群4000連接;
上述數(shù)據(jù)庫402,用于產(chǎn)生增量數(shù)據(jù)。
在一個實施方式中,上述數(shù)據(jù)處理系統(tǒng),還包括商業(yè)智能(businessintelligence,bi)平臺404;
上述bi平臺404,與上述spark集群4000連接;
上述bi平臺404,用于獲取上述spark集群4000處理后的增量數(shù)據(jù),并對獲取到的增量數(shù)據(jù)進(jìn)行商業(yè)分析。
上述bi平臺404,可以采用現(xiàn)有的任何使企業(yè)迅速收集、管理和分析數(shù)據(jù),并將這些數(shù)據(jù)轉(zhuǎn)化為有用的信息,然后分發(fā)到企業(yè)各處的平臺技術(shù),這里不再贅述。
綜上所述,本實施例提供的數(shù)據(jù)處理系統(tǒng),通過數(shù)據(jù)處理平臺中的spark集群對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行處理,并把處理后的增量數(shù)據(jù)導(dǎo)入elasticsearch集群和hbase集群,與相關(guān)技術(shù)中spark集群會存儲增量數(shù)據(jù)相比,spark集群僅對增量數(shù)據(jù)進(jìn)行分析,無需對數(shù)據(jù)庫產(chǎn)生的增量數(shù)據(jù)進(jìn)行存儲,減輕了spark集群的存儲壓力。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。