基于模型驅(qū)動(dòng)的MapReduce大數(shù)據(jù)變換軟件開(kāi)發(fā)方法研究
發(fā)布時(shí)間:2020-08-05 09:37
【摘要】:近年來(lái),大數(shù)據(jù)研究和應(yīng)用已成為產(chǎn)業(yè)升級(jí)與新產(chǎn)業(yè)崛起的重要力量,網(wǎng)絡(luò)數(shù)據(jù)呈現(xiàn)指數(shù)級(jí)增長(zhǎng),GB,TB乃至PB級(jí)別的數(shù)據(jù)處理變得司空見(jiàn)慣。這些海量數(shù)據(jù)存儲(chǔ)于社會(huì)中的各個(gè)部門當(dāng)中,置于多種數(shù)據(jù)環(huán)境和數(shù)據(jù)平臺(tái),形態(tài)各異,形成了大量的異構(gòu)數(shù)據(jù)。異構(gòu)數(shù)據(jù)的廣泛存在,嚴(yán)重阻礙了數(shù)據(jù)交流。與此同時(shí),以Hadoop和Spark為代表的大數(shù)據(jù)處理平臺(tái)應(yīng)運(yùn)而生。然而這些大數(shù)據(jù)處理平臺(tái)有其自身特有的編程模型和實(shí)現(xiàn)細(xì)節(jié),使用這些平臺(tái)也需要借助于特定的編程語(yǔ)言,因此學(xué)習(xí)門檻較高,學(xué)習(xí)曲線陡峭。基于以上背景,我們需要一種可以屏蔽平臺(tái)細(xì)節(jié)和數(shù)據(jù)異構(gòu)性的方法,讓用戶在對(duì)大數(shù)據(jù)平臺(tái)沒(méi)有深刻掌握,不需要考慮數(shù)據(jù)異構(gòu)的情況下,進(jìn)行大數(shù)據(jù)程序開(kāi)發(fā)。本文提出了一套模型驅(qū)動(dòng)的MapReduce大數(shù)據(jù)變換程序開(kāi)發(fā)方法,該方法對(duì)數(shù)據(jù)進(jìn)行抽象建模,用模型轉(zhuǎn)換表示數(shù)據(jù)的變換過(guò)程,利用代碼生成技術(shù)映射生成Hadoop和Spark兩種數(shù)據(jù)處理程序的代碼,讓用戶開(kāi)發(fā)大數(shù)據(jù)程序?qū)A慨悩?gòu)進(jìn)行處理的過(guò)程可以屏蔽平臺(tái)細(xì)節(jié)和數(shù)據(jù)異構(gòu)姓。我們選取了目前廣泛使用的Ecore格式用于源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的模型表示,并采用OMG組織公布的QVT-R標(biāo)準(zhǔn)作為模型轉(zhuǎn)換層的描述語(yǔ)言。我們引入一門平臺(tái)無(wú)關(guān)命令式描述語(yǔ)言Midcore作為大數(shù)據(jù)處理代碼與QVT-R橋接的中間語(yǔ)言。Ecore和QVT-R映射生成對(duì)應(yīng)的Midcore描述,Midcore支持同時(shí)映射生成Hadoop和Spark代碼。本方法還可以支持?jǐn)U展,基于Midcore可生成其他大數(shù)據(jù)平臺(tái)代碼。基于本文提出的方法,我們實(shí)現(xiàn)了相應(yīng)的支撐工具QE2HS,該工具能夠?qū)core和QVT-R描述的模型和變換自動(dòng)生成Hadoop和Spark代碼,最后我們還進(jìn)行了相關(guān)的實(shí)例研究。結(jié)果表明,該方法能夠有效生成大數(shù)據(jù)處理程序的源代碼代碼,實(shí)現(xiàn)了平臺(tái)細(xì)節(jié)和數(shù)據(jù)異構(gòu)性的屏蔽,簡(jiǎn)化了大數(shù)據(jù)程序代碼的編寫復(fù)雜程度,生成的代碼執(zhí)行效率也是可以接受的。
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP311.52;TP311.13
【圖文】:
等多平臺(tái)并行編程框架0ctopUSt18],它能屏蔽不同平臺(tái)的細(xì)節(jié),向用戶提供統(tǒng)逡逑一的R語(yǔ)言接口,設(shè)計(jì)一套算法,讓R語(yǔ)言描述的矩陣操作能夠轉(zhuǎn)化為具體平逡逑臺(tái)的編程描述。圖1-3是Octopus框架圖,最底層是結(jié)構(gòu)是HDFS,邋Tachyon等逡逑分布式文件系統(tǒng),Octopus將矩陣數(shù)據(jù)分布式存儲(chǔ)在這些文件系統(tǒng)中。往上一逡逑層是邋Spark,邋Hadoop邋MapReduce,邋MPI,邋Local邋R邋等矩陣運(yùn)算執(zhí)行引擎。Octopus邋為逡逑用戶提供了名為Octopus-R的API,用戶利用其編寫程序,Octopus為這些API逡逑提供執(zhí)行優(yōu)化器與引擎連接器,將矩陣計(jì)算過(guò)程進(jìn)行優(yōu)化,通過(guò)分布式并行矩逡逑陣計(jì)算算法對(duì)計(jì)算過(guò)程進(jìn)行轉(zhuǎn)化
程序空間以實(shí)現(xiàn)有效的MapReduce數(shù)據(jù)處理過(guò)程。這些規(guī)則包括一種用于處逡逑理不規(guī)則循環(huán)承載依賴性的新技術(shù),使用group-by操作來(lái)實(shí)現(xiàn)更大的并行性。逡逑圖1-4是方法的代碼轉(zhuǎn)換示意圖。一個(gè)輸入程序首先被翻譯成Array邋SSA形逡逑式[22],這有助于推導(dǎo)成一個(gè)lambda-演算式功能描述,翻譯并使用fold算子來(lái)逡逑維護(hù)循環(huán)的結(jié)構(gòu),這對(duì)于后來(lái)的轉(zhuǎn)換是必不可少的。程序最初生成的“lambda逡逑plus邋fold”描述與有效的MapReduce程序相距甚遠(yuǎn)。雖然fold操作可以使用逡逑
圖2-1:各層次模型轉(zhuǎn)換示意圖逡逑1.邐M2層次即UML等各種標(biāo)準(zhǔn)的元模型之間的轉(zhuǎn)換;逡逑2.邐Ml層模型之間的轉(zhuǎn)換,我們平常觸及的模型轉(zhuǎn)換以這種類型最為常見(jiàn);逡逑
本文編號(hào):2781362
【學(xué)位授予單位】:南京大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP311.52;TP311.13
【圖文】:
等多平臺(tái)并行編程框架0ctopUSt18],它能屏蔽不同平臺(tái)的細(xì)節(jié),向用戶提供統(tǒng)逡逑一的R語(yǔ)言接口,設(shè)計(jì)一套算法,讓R語(yǔ)言描述的矩陣操作能夠轉(zhuǎn)化為具體平逡逑臺(tái)的編程描述。圖1-3是Octopus框架圖,最底層是結(jié)構(gòu)是HDFS,邋Tachyon等逡逑分布式文件系統(tǒng),Octopus將矩陣數(shù)據(jù)分布式存儲(chǔ)在這些文件系統(tǒng)中。往上一逡逑層是邋Spark,邋Hadoop邋MapReduce,邋MPI,邋Local邋R邋等矩陣運(yùn)算執(zhí)行引擎。Octopus邋為逡逑用戶提供了名為Octopus-R的API,用戶利用其編寫程序,Octopus為這些API逡逑提供執(zhí)行優(yōu)化器與引擎連接器,將矩陣計(jì)算過(guò)程進(jìn)行優(yōu)化,通過(guò)分布式并行矩逡逑陣計(jì)算算法對(duì)計(jì)算過(guò)程進(jìn)行轉(zhuǎn)化
程序空間以實(shí)現(xiàn)有效的MapReduce數(shù)據(jù)處理過(guò)程。這些規(guī)則包括一種用于處逡逑理不規(guī)則循環(huán)承載依賴性的新技術(shù),使用group-by操作來(lái)實(shí)現(xiàn)更大的并行性。逡逑圖1-4是方法的代碼轉(zhuǎn)換示意圖。一個(gè)輸入程序首先被翻譯成Array邋SSA形逡逑式[22],這有助于推導(dǎo)成一個(gè)lambda-演算式功能描述,翻譯并使用fold算子來(lái)逡逑維護(hù)循環(huán)的結(jié)構(gòu),這對(duì)于后來(lái)的轉(zhuǎn)換是必不可少的。程序最初生成的“lambda逡逑plus邋fold”描述與有效的MapReduce程序相距甚遠(yuǎn)。雖然fold操作可以使用逡逑
圖2-1:各層次模型轉(zhuǎn)換示意圖逡逑1.邐M2層次即UML等各種標(biāo)準(zhǔn)的元模型之間的轉(zhuǎn)換;逡逑2.邐Ml層模型之間的轉(zhuǎn)換,我們平常觸及的模型轉(zhuǎn)換以這種類型最為常見(jiàn);逡逑
【參考文獻(xiàn)】
相關(guān)期刊論文 前1條
1 何嘯;麻志毅;王瑞超;邵維忠;;語(yǔ)義可配置的模型轉(zhuǎn)換[J];軟件學(xué)報(bào);2013年07期
本文編號(hào):2781362
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2781362.html
最近更新
教材專著