本發(fā)明涉及大數(shù)據(jù)技術(shù)領(lǐng)域,具體地說是一種實(shí)用性強(qiáng)、適用于分布式算法的運(yùn)行容器及流程圖創(chuàng)建方法。
背景技術(shù):
隨著信息時(shí)代的到來,數(shù)據(jù)的積累成幾何倍增長。為了從已有的海量數(shù)據(jù)中挖掘有效信息,出現(xiàn)了各種不同的數(shù)據(jù)挖掘算法。
在數(shù)據(jù)挖掘中,無法立即確定最合適的算法,需要通過不斷的嘗試不同的算法,或者算法組合來獲得不同的計(jì)算結(jié)果。根據(jù)對不同的計(jì)算結(jié)果進(jìn)行對比,從而獲得最佳的算法方案、以及最優(yōu)的分析結(jié)果,以獲得最有效的數(shù)據(jù)反饋信息。
數(shù)據(jù)分析人員需要既懂算法的原理,又要懂算法的具體代碼實(shí)現(xiàn)。對技術(shù)人員要求較高,同時(shí)實(shí)現(xiàn)不同的算法組合分析數(shù)據(jù)時(shí)候,需要不斷調(diào)整編碼,較為繁瑣。
算法的改造一般針對三個方向進(jìn)行,算法處理容器、算法編寫規(guī)范、分布式運(yùn)行框架。尤其是分布式算法,分布式算法的編寫與傳統(tǒng)算法開發(fā)差別較大,并且分布式算法的運(yùn)行依托于特定的平臺,而且不同的平臺對分布式算法的開發(fā)要求不同,這就導(dǎo)致了同一種算法的實(shí)現(xiàn)在不同的平臺下不同。
在數(shù)據(jù)挖掘中,由于數(shù)據(jù)量大,導(dǎo)致單一服務(wù)器很難快速計(jì)算結(jié)果。鑒于此,現(xiàn)提供一種基于適用于分布式算法的運(yùn)行容器及流程圖創(chuàng)建方法。通過將繪制好的流程圖自動運(yùn)行到spark分布式計(jì)算系統(tǒng)中,通過采用云計(jì)算的方案,大大增加了運(yùn)算速率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種實(shí)用性強(qiáng)、適用于分布式算法的運(yùn)行容器及流程圖創(chuàng)建方法。
一種適用于分布式算法的運(yùn)行容器,包括硬件模塊和軟件模塊,硬件模塊為算法的運(yùn)行環(huán)境;軟件模塊則包括流程圖繪制模塊、關(guān)系確定模塊、接口模塊和檢測模塊;其中:
運(yùn)行環(huán)境,該運(yùn)行環(huán)境采用spark分布式計(jì)算系統(tǒng)并用于算法的運(yùn)行;
流程圖繪制模塊,提供繪制界面使用戶實(shí)現(xiàn)對算法流程的繪制,同時(shí)該繪制界面還用于添加算法實(shí)例節(jié)點(diǎn);
關(guān)系確定模塊,在通過流程圖繪制模塊添加算法實(shí)例節(jié)點(diǎn)后,該關(guān)系確定模塊通過算法實(shí)例節(jié)點(diǎn)與算法實(shí)例節(jié)點(diǎn)之間的連線來表示算法實(shí)例節(jié)點(diǎn)之間的關(guān)系;
接口模塊,提供用戶增加新的算法的接口與標(biāo)準(zhǔn),且該標(biāo)準(zhǔn)規(guī)范實(shí)現(xiàn)任意算法在流程圖繪制模塊中與其它算法隨機(jī)組合,進(jìn)行數(shù)據(jù)分析;
檢測模塊,檢測整個算法添加或組合過程的完整性。
所述流程圖繪制模塊中,提供瀏覽器使用戶實(shí)現(xiàn)對算法流程的繪制,該繪制的算法流程圖中包含算法實(shí)例節(jié)點(diǎn)以及算法實(shí)例節(jié)點(diǎn)的關(guān)系,算法實(shí)例節(jié)點(diǎn)的關(guān)系是通過算法之間的連線來確定。
在流程圖繪制模塊中,當(dāng)增加一個算法實(shí)例節(jié)點(diǎn)后,用戶通過算法實(shí)例節(jié)點(diǎn)的屬性值界面,修改算法用到的屬性,即每一個算法對應(yīng)已經(jīng)編寫好算法的jar包,統(tǒng)一算法的輸入輸出的參數(shù)信息,以保證算法節(jié)點(diǎn)之間的數(shù)據(jù)流轉(zhuǎn)。
所述關(guān)系確定模塊根據(jù)算法實(shí)例節(jié)點(diǎn)關(guān)系的描述,自動查找到算法節(jié)點(diǎn)的起始位置,開始執(zhí)行算法處理數(shù)據(jù),當(dāng)執(zhí)行完一個算法實(shí)例節(jié)點(diǎn)后,根據(jù)算法實(shí)例節(jié)點(diǎn)的描述自動執(zhí)行下一個算法實(shí)例節(jié)點(diǎn)。
一種基于適用于分布式算法的運(yùn)行容器的流程圖創(chuàng)建方法,其實(shí)現(xiàn)過程為:
首先通過流程圖繪制模塊新建流程;
創(chuàng)建流程以后,往流程里排放算法:已有算法直接添加到流程中;不存在的算法,根據(jù)接口模塊提供的標(biāo)準(zhǔn),增加新的算法后,將新增加的算法加入到流程中;
增加算法到流程后,修改算法中所用到的屬性;
編排完的流程,在spark分布式計(jì)算系統(tǒng)上進(jìn)行運(yùn)算,最終獲得分析結(jié)果。
本發(fā)明的一種適用于分布式算法的運(yùn)行容器及流程圖創(chuàng)建方法,具有以下優(yōu)點(diǎn):
本發(fā)明通過設(shè)計(jì)分布式運(yùn)行容器,并制定統(tǒng)一算法接口標(biāo)準(zhǔn),使算法與算法之間可以隨機(jī)組合。僅通過算法即可實(shí)現(xiàn)完整的數(shù)據(jù)分析過程。根據(jù)本發(fā)明的算法接口標(biāo)準(zhǔn)增加的算法,可以與原有算法無縫組合。方便用戶擴(kuò)充算法種類、以及增加個性化算法。
本發(fā)明通過繪制數(shù)據(jù)分析完整流程圖,使得分析數(shù)據(jù)無需編碼實(shí)現(xiàn)。數(shù)據(jù)分析人員只需要懂算法即可。減少了技術(shù)人員的要求,以及節(jié)省了一般數(shù)據(jù)分析中,因算法順序改變而編碼調(diào)整的時(shí)間。同時(shí)圖形化的數(shù)據(jù)分析界面,更容易查找整個數(shù)據(jù)分析流程中不適合的算法節(jié)點(diǎn)。
針對海量數(shù)據(jù)的分析,采用自動將流程圖解析,獲得算法執(zhí)行順序。并將算法運(yùn)算在spark群集上。采用這種云計(jì)算的方式,大大縮短了計(jì)算的時(shí)間,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發(fā)明的流程圖創(chuàng)建流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對本發(fā)明作進(jìn)一步說明。
本發(fā)明的一種適用于分布式算法的運(yùn)行容器,為不同算法(如分類、聚類、關(guān)聯(lián)、回歸等)制定統(tǒng)一的接口標(biāo)準(zhǔn),自動在容器中執(zhí)行,實(shí)現(xiàn)數(shù)據(jù)挖掘的云計(jì)算。這就使得用戶可以完全不關(guān)心分布式代碼的寫法以及分布式算法的運(yùn)行環(huán)境,只寫算法代碼即可。同時(shí)用戶可以根據(jù)系統(tǒng)的算法接口標(biāo)準(zhǔn),靈活實(shí)現(xiàn)自己的算法。根據(jù)系統(tǒng)接口標(biāo)準(zhǔn)規(guī)范增加的算法,可以很好的與其他已有算法進(jìn)行組合運(yùn)算,增加了算法實(shí)現(xiàn)的可擴(kuò)充性。
該容器包括硬件模塊和軟件模塊,硬件模塊為算法的運(yùn)行環(huán)境;軟件模塊則包括流程圖繪制模塊、關(guān)系確定模塊、接口模塊和檢測模塊;其中:
運(yùn)行環(huán)境,該運(yùn)行環(huán)境采用采用b/s架構(gòu),即Spark和Hadoop組成,算法處理容器能夠根據(jù)算法信息自動加載并運(yùn)行算法,這樣算法開發(fā)人員只需要按照算法編寫規(guī)范進(jìn)行分布式算法編碼,而不需要關(guān)心算法如何去運(yùn)行,從而降低分布式算法的開發(fā)門檻;
流程圖繪制模塊,提供繪制界面使用戶實(shí)現(xiàn)對算法流程的繪制,同時(shí)該繪制界面還用于添加算法實(shí)例節(jié)點(diǎn);
關(guān)系確定模塊,在通過流程圖繪制模塊添加算法實(shí)例節(jié)點(diǎn)后,該關(guān)系確定模塊通過算法實(shí)例節(jié)點(diǎn)與算法實(shí)例節(jié)點(diǎn)之間的連線來表示算法實(shí)例節(jié)點(diǎn)之間的關(guān)系;
接口模塊,提供用戶增加新的算法的接口與標(biāo)準(zhǔn),且該標(biāo)準(zhǔn)規(guī)范實(shí)現(xiàn)任意算法在流程圖繪制模塊中與其它算法隨機(jī)組合,進(jìn)行數(shù)據(jù)分析;
檢測模塊,檢測整個算法添加或組合過程的完整性。在系統(tǒng)中,通過該檢測模塊使其具備流程的檢測功能,檢查流程的完整性、正確性。例如:避免出現(xiàn)回路的流程等。系統(tǒng)通過測試功能,來驗(yàn)證整個流程的完整與可執(zhí)行。
所述流程圖繪制模塊中,提供瀏覽器使用戶實(shí)現(xiàn)對算法流程的繪制,該繪制的算法流程圖中包含算法實(shí)例節(jié)點(diǎn)以及算法實(shí)例節(jié)點(diǎn)的關(guān)系,算法實(shí)例節(jié)點(diǎn)的關(guān)系是通過算法之間的連線來確定。
在流程圖繪制模塊中,當(dāng)增加一個算法實(shí)例節(jié)點(diǎn)后,用戶通過算法實(shí)例節(jié)點(diǎn)的屬性值界面,修改算法用到的屬性,即每一個算法對應(yīng)已經(jīng)編寫好算法的jar包,統(tǒng)一算法的輸入輸出的參數(shù)信息,以保證算法節(jié)點(diǎn)之間的數(shù)據(jù)流轉(zhuǎn)。
所述關(guān)系確定模塊根據(jù)算法實(shí)例節(jié)點(diǎn)關(guān)系的描述,自動查找到算法節(jié)點(diǎn)的起始位置,開始執(zhí)行算法處理數(shù)據(jù),當(dāng)執(zhí)行完一個算法實(shí)例節(jié)點(diǎn)后,根據(jù)算法實(shí)例節(jié)點(diǎn)的描述自動執(zhí)行下一個算法實(shí)例節(jié)點(diǎn)。
如附圖1所示,一種基于適用于分布式算法的運(yùn)行容器的流程圖創(chuàng)建方法,其實(shí)現(xiàn)過程為:
首先通過流程圖繪制模塊新建流程;
創(chuàng)建流程以后,往流程里排放算法:已有算法直接添加到流程中;不存在的算法,根據(jù)接口模塊提供的標(biāo)準(zhǔn),增加新的算法后,將新增加的算法加入到流程中;
增加算法到流程后,修改算法中所用到的屬性;
編排完的流程,在spark分布式計(jì)算系統(tǒng)上進(jìn)行運(yùn)算,最終獲得分析結(jié)果。
上述流程即為流程圖。
在本發(fā)明中,通過統(tǒng)一算法的接口和標(biāo)準(zhǔn),能夠讓用戶自由實(shí)現(xiàn)自己的算法,并與系統(tǒng)的其他算法無縫組合。
通過繪制算法流程圖,實(shí)現(xiàn)對算法的不同順序組合來分析處理數(shù)據(jù),分析流程多樣化。
流程圖會自動解析運(yùn)行在spark的群集上,省去了人工將算法運(yùn)行在spark上的工作。
算法所運(yùn)行的spark分布式系統(tǒng)是主流的云計(jì)算框架之一,運(yùn)行速度較快。
上述具體實(shí)施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的一種適用于分布式算法的運(yùn)行容器及流程圖創(chuàng)建方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。