欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種實時在線的分布式計算框架的實現(xiàn)方法

文檔序號:8412380閱讀:953來源:國知局
一種實時在線的分布式計算框架的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機云計算中數(shù)據(jù)處理分析技術(shù)領(lǐng)域,尤其是涉及一種實時在線的分布式計算框架的實現(xiàn)方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)通信技術(shù)的飛速發(fā)展,云計算領(lǐng)域海量數(shù)據(jù)分析業(yè)務(wù)得到大力應(yīng)用,在云計算領(lǐng)域中,海量數(shù)據(jù)處理分析業(yè)務(wù)和其他分布式Java程序主要是采用持久性可重用的Java Virtual Machine (Java虛擬機,以下簡稱JVM)提高在集群環(huán)境中事務(wù)處理的吞吐量和速率,同時大大降低用于海量數(shù)據(jù)處理的MapReduce任務(wù)的啟動時間,提高系統(tǒng)在連續(xù)運轉(zhuǎn)時效率,提高系統(tǒng)查詢通信CDR、KPI和專題等數(shù)據(jù)的查詢效率,同時有效地提升了JVM負載均衡和橫向擴展能力。MapReduce是一種在編程模型,用于大規(guī)模數(shù)據(jù)集(大于I TB)的并行運算,在使用MapReduce框架對海量數(shù)據(jù)進行分析時,提交一個Job (即作業(yè))到MapReduce框架,隨即被分解為多臺服務(wù)器上多個并行的Task(即任務(wù)),完成后將計算結(jié)果回收歸并。通常每個Task運行在一個JVM上,每個JVM是一個獨立的進程,同一個Job的多個Task可以復(fù)用一個JVM。從而導(dǎo)致了現(xiàn)有技術(shù)中存在如下缺陷:(I)在MapReduce中,Job啟動加載慢,由于每個Job需要在多臺服務(wù)器上啟動多個JVM進程,服務(wù)器越多啟動開銷越大、啟動越慢。(2)目前MapReduce只支持Task復(fù)用JVM,當(dāng)需要連續(xù)地處理海量數(shù)據(jù)上的多個數(shù)據(jù)分析業(yè)務(wù)時,這種重復(fù)啟動JVM的開銷十分明顯而且不必要。(3)更廣泛地、對于集群上的分布式Java程序,負載均衡的粒度也不能細致到JVM級別。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的在于設(shè)計一種實時在線的分布式計算框架的實現(xiàn)方法,解決上述問題。
[0004]為了實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0005]一種實時在線的分布式計算框架的實現(xiàn)方法,包括如下步驟:
[0006]步驟101,在JVM的MapReduce地址空間中共享JVM資源;所述JVM資源包括堆棧、加載所述堆棧的中間件和運行所述堆棧的應(yīng)用類;
[0007]步驟102,利用共享的所述JVM資源,實現(xiàn)所述JVM的重置;所述重置包括初始化所述JVM、重用所述中間件和/或共享所述應(yīng)用類;
[0008]步驟103,通過所述JVM的重置,實現(xiàn)了在線的分布式計算框架。
[0009]優(yōu)選的,步驟101中,所述堆棧包括系統(tǒng)堆棧、應(yīng)用類系統(tǒng)堆棧和非系統(tǒng)堆棧;所述系統(tǒng)堆棧用于為所述JVM運行的生命周期內(nèi)加載類文件;所述應(yīng)用類系統(tǒng)堆棧用于為所述JVM的生命周期內(nèi)共享的所述JVM資源構(gòu)建應(yīng)用類對象;所述非系統(tǒng)堆棧用于為所述JVM的生命周期內(nèi)構(gòu)建內(nèi)存區(qū)域。
[0010]優(yōu)選的,所述系統(tǒng)堆棧包括通過自舉類加載系統(tǒng)類文件、通過擴展類加載系統(tǒng)的標(biāo)準擴展類文件和加載中間件類文件。
[0011]優(yōu)選的,所述非系統(tǒng)堆棧包括通過加載中間件類共享對象的中間件堆棧和通過環(huán)境變量加載臨時類文件對象的臨時堆棧。
[0012]優(yōu)選的,步驟102中,所述重置具體的實現(xiàn)方法為,通過Java本地接口實現(xiàn)JVM的重置。
[0013]優(yōu)選的,步驟102中,共享所述應(yīng)用類中禁止修改所述應(yīng)用類;禁止修改所述應(yīng)用類的具體內(nèi)容包括,禁止修改所述應(yīng)用類的全局靜態(tài)變量、禁止接入所述應(yīng)用類的派生物、禁止基于所述應(yīng)用類加載程序庫文件和禁止管理所述應(yīng)用類的線程。
[0014]優(yōu)選的,步驟102中,重用所述中間件的具體方法包括清理所述中間件的狀態(tài)和調(diào)用初始化的類文件。
[0015]優(yōu)選的,清理所述中間件的狀態(tài)包括釋放所述中間件的存儲空間、終止所述中間件的線程和清除所述中間件在所述堆棧的控制。
[0016]本發(fā)明的有益效果可以總結(jié)如下:
[0017]1、在大規(guī)模集群操作系統(tǒng)的事務(wù)處理環(huán)境中,持久性可重用Java虛擬機能夠加速Java應(yīng)用的處理速度。
[0018]2、持久性可重用的JVM通過提供以下能力提高了在這些環(huán)境中事務(wù)處理的吞吐量,大大降低用于海量數(shù)據(jù)處理的MapReduce任務(wù)的啟動時間。
[0019]3、通過重用Java虛擬機,減少了啟動JVM進程的次數(shù),減少服務(wù)器啟動壓力,提高服務(wù)器工作效率。
[0020]4、通過本發(fā)明,能夠更廣泛地、對于集群上的分布式Java程序中,可提升JVM負載均衡和橫向擴展能力,細致化的到JVM級別的負載均衡。
【附圖說明】
[0021]圖1為本發(fā)明流程示意圖。
【具體實施方式】
[0022]為了使本發(fā)明所解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0023]如圖1所示的一種實時在線的分布式計算框架的實現(xiàn)方法,包括如下步驟:
[0024]步驟101,在JVM的MapReduce地址空間中共享JVM資源JVM資源包括堆棧、加載堆棧的中間件和運行堆棧的應(yīng)用類;系統(tǒng)堆棧用于為JVM運行的生命周期內(nèi)加載類文件;應(yīng)用類系統(tǒng)堆棧用于為JVM的生命周期內(nèi)共享的JVM資源構(gòu)建應(yīng)用類對象;非系統(tǒng)堆棧用于為JVM的生命周期內(nèi)構(gòu)建內(nèi)存區(qū)域;系統(tǒng)堆棧包括通過自舉類加載系統(tǒng)類文件、通過擴展類加載系統(tǒng)的標(biāo)準擴展類文件和加載中間件類文件;
[0025]為了確保事務(wù)之間的隔離,在MapReduce地址空間中,每個JVM每次只處理一個事務(wù),而且每個JVM用自己的語言環(huán)境創(chuàng)建以確保各個孤立的JVM能夠并行的計算。在一個JVM地址空間內(nèi)的設(shè)置被稱作一個JVMSet。在一個JVMSet中的JVM資源都共享一套系統(tǒng)類中的共同系統(tǒng)堆棧以及其他共享類。這樣顯著減少了在JVMSet中啟動一個新的JVM所需要的時間,因為大多數(shù)的系統(tǒng)類已經(jīng)在新的JVM啟動前在系統(tǒng)堆棧中被加載了。它也從整體上減少了對這些類的內(nèi)存封裝,因為他們是針對每個JVMSet加載一次,而不是每個JVM加載一次。一個JVMSet由一個主JVM和多個(I至η個)從JVM組成。主JVM通過兩種方式控制JVMSet:它提供所有從JVM共享的系統(tǒng)堆棧;它建立用于將類加載入系統(tǒng)堆棧的加載類環(huán)境。主用JVM從被創(chuàng)建起從不主動參與任何工作。它的主要任務(wù)僅僅是JVMSet的初始化。除此之外,它還要從被分配的系統(tǒng)堆棧中獲取一些共享內(nèi)存。這個共享內(nèi)存在獲取后被JVMSet內(nèi)的所有JVM當(dāng)作共享類緩存使用。其他在JVMSet內(nèi)所有JVM共同的信息,例如:類的加載路徑也被放置在這個共享內(nèi)存中。標(biāo)識共享內(nèi)存位置的令牌通過創(chuàng)建主用JVM的Java本地接口(JNI)返回。加載程序?qū)⑦@個令牌傳遞給創(chuàng)建每個從JVM的Java本地接口(JNI)。
[0026]堆棧包括系統(tǒng)堆棧、應(yīng)用類系統(tǒng)堆棧和非系統(tǒng)堆棧;系統(tǒng)堆棧包括通過自舉類加載器加載的系統(tǒng)類。例如:java.1ang.* ;通過擴展類加載器加載的標(biāo)準擴展類;通過執(zhí)行共享接口的中間件加載器加載的中間件類。例如:被信任的中間件加載器(TMC)供給持久性可重用的JVM執(zhí)行共享接口。這些類僅被加載一次。他們的靜態(tài)初始化器也僅運行一次。系統(tǒng)堆棧從不回收垃圾。應(yīng)用類系統(tǒng)堆棧是系統(tǒng)堆棧中一個被隔離的部分,而且包括為JVM生命周期持久的共享應(yīng)用類對象。共享應(yīng)用類通過執(zhí)行共享接口的應(yīng)用類加載器僅加載一次。例如:共享應(yīng)用類加載器(SAC)以供給持久性可重用的JVM執(zhí)行共享接口。因為這些類在JVM重置的過程中被重置了,這迫使靜態(tài)初始化器在第一次使用時運行。應(yīng)用類系統(tǒng)堆棧從不回收垃圾。非系統(tǒng)堆棧包括通過加載中間件類共享對象的中間件堆棧和通過環(huán)境變量加載臨時類文件對象的臨時堆棧。中間件堆棧包含預(yù)計生命周期長于單獨事務(wù)的對象,并且這些對象通過JVM重置持久化。這些對象包括由中間件供應(yīng)商提供的中間件類加載器加載的非共享類對象,以及在中間件環(huán)境中創(chuàng)建的對象。在JVM重置過程中,清理和重新初始化的方法被用來將這些類重置到一個已知的初始狀態(tài)為下一次事務(wù)做準備。通常情況下,在JVM重置的時間,這些中間件堆棧被垃圾回收模塊管理。這些類的生命周期被中間件控制。臨時堆棧包括預(yù)計生命周期與事務(wù)綁定的對象。這些包括由默認應(yīng)用類加載器(通過使用環(huán)境變量加載)加載的類,以及在應(yīng)用環(huán)境中創(chuàng)建的任何對象。類通過應(yīng)用代碼為每一個事務(wù)加載。他們的靜態(tài)初始化器在第一次使用時運行。這些臨時堆棧從屬于垃圾回收模塊,雖然在事務(wù)處理過程中通常并不需要臨時堆棧。在JVM
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
招远市| 墨江| 遂宁市| 象山县| 丹东市| 临城县| 南木林县| 蓬溪县| 高密市| 察隅县| 历史| 会理县| 太和县| 津南区| 南雄市| 丰顺县| 那坡县| 宁都县| 镇原县| 如东县| 宁强县| 东阳市| 牟定县| 蓝田县| 宁明县| 新丰县| 肥乡县| 南通市| 磐石市| 石楼县| 大同市| 苍山县| 穆棱市| 马龙县| 余干县| 扶绥县| 黎川县| 呼玛县| 昭觉县| 定远县| 科技|