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

緩存存儲(chǔ)器與工作進(jìn)程的關(guān)聯(lián)的制作方法

文檔序號(hào):12287946閱讀:204來(lái)源:國(guó)知局
緩存存儲(chǔ)器與工作進(jìn)程的關(guān)聯(lián)的制作方法與工藝

本公開內(nèi)容的各個(gè)方面涉及計(jì)算硬件和軟件技術(shù),特別是涉及將緩存存儲(chǔ)器關(guān)聯(lián)至工作進(jìn)程。



背景技術(shù):

日益增多的數(shù)據(jù)密集型分布式應(yīng)用正在被開發(fā)用于服務(wù)各種需求,如對(duì)單個(gè)計(jì)算機(jī)通常無(wú)法處理的非常大的數(shù)據(jù)集進(jìn)行處理。代替之,采用計(jì)算機(jī)集群來(lái)分發(fā)各種任務(wù)或工作,如組織和訪問數(shù)據(jù)并且針對(duì)該數(shù)據(jù)執(zhí)行相關(guān)操作。各種應(yīng)用和框架已被開發(fā)用于與這樣的大數(shù)據(jù)集進(jìn)行交互,包括Hive、HBase、Hadoop、Amazon S3和CloudStore等。

同時(shí),虛擬化技術(shù)得到越來(lái)越廣泛的應(yīng)用,并且目前在提高計(jì)算資源的使用效率很有用的數(shù)據(jù)中心和其他環(huán)境中是常見的事。在虛擬化環(huán)境中,一個(gè)或更多個(gè)虛擬機(jī)在底層計(jì)算機(jī)(或另外的虛擬機(jī))上被實(shí)例化,并且共享底層計(jì)算機(jī)的資源。這些虛擬機(jī)可以使用通常駐留在真實(shí)機(jī)器上的應(yīng)用和框架來(lái)更高效地處理大數(shù)據(jù)集。



技術(shù)實(shí)現(xiàn)要素:

本文提供了用于將緩存存儲(chǔ)器關(guān)聯(lián)至工作進(jìn)程的系統(tǒng)、方法和軟件。在一個(gè)示例中,一種對(duì)計(jì)算系統(tǒng)內(nèi)的支持進(jìn)程進(jìn)行操作以針對(duì)工作進(jìn)程提供加速輸入和輸出的方法包括監(jiān)視由該工作進(jìn)程啟動(dòng)的文件映射嘗試。該方法還包括:響應(yīng)于文件映射嘗試來(lái)識(shí)別存儲(chǔ)器中的已分配給緩存服務(wù)的第一區(qū)域,并且將存儲(chǔ)器中的該第一區(qū)域與工作進(jìn)程進(jìn)行關(guān)聯(lián)。

在另一示例中,一種針對(duì)工作進(jìn)程提供加速輸入和輸出的計(jì)算機(jī)設(shè)備包括指示計(jì)算系統(tǒng)的支持進(jìn)程監(jiān)視由該工作進(jìn)程啟動(dòng)的文件映射嘗試的處理指令。處理指令還指示支持進(jìn)程響應(yīng)于文件映射嘗試來(lái)識(shí)別存儲(chǔ)器中的已分配給緩存服務(wù)的第一區(qū)域,并且將存儲(chǔ)器中的該第一區(qū)域與工作進(jìn)程進(jìn)行關(guān)聯(lián)。該計(jì)算機(jī)設(shè)備還包括存儲(chǔ)處理指令的一個(gè)或更多個(gè)非暫態(tài)計(jì)算機(jī)可讀介質(zhì)。

在又一示例中,一種用于針對(duì)工作進(jìn)程提供加速輸入和輸出的節(jié)點(diǎn)計(jì)算系統(tǒng)包括被配置成啟動(dòng)文件映射嘗試的工作進(jìn)程。節(jié)點(diǎn)計(jì)算系統(tǒng)還提供被配置成識(shí)別該文件映射嘗試的支持進(jìn)程。該支持進(jìn)程還被配置成:響應(yīng)于該文件映射嘗試來(lái)識(shí)別存儲(chǔ)器中的已分配給緩存服務(wù)的第一區(qū)域,并且將存儲(chǔ)器中的已分配給緩存服務(wù)的該第一區(qū)域與工作進(jìn)程進(jìn)行關(guān)聯(lián)。

附圖說(shuō)明

參考以下附圖可以更好地理解本公開內(nèi)容的很多方面。盡管結(jié)合這些附圖描述了若干實(shí)現(xiàn)方式,但是本公開內(nèi)容不限于本文公開的實(shí)現(xiàn)方式。相反,目的是覆蓋所有的替選方案、修改方案和等效方案。

圖1示出了用于在集群節(jié)點(diǎn)內(nèi)處理數(shù)據(jù)的映射歸約系統(tǒng);

圖2示出了用于對(duì)映射歸約集群中的集群節(jié)點(diǎn)進(jìn)行操作的操作場(chǎng)景;

圖3示出了對(duì)Java虛擬機(jī)進(jìn)行操作以請(qǐng)求映射文件的方法;

圖4示出了對(duì)內(nèi)核進(jìn)行操作以針對(duì)Java虛擬機(jī)映射緩存存儲(chǔ)器的方法;

圖5示出了用于向緩存服務(wù)分配共享存儲(chǔ)器的集群節(jié)點(diǎn)存儲(chǔ)器;

圖6示出了用于在緩存服務(wù)中分配共享存儲(chǔ)器的宿主機(jī)存儲(chǔ)器;

圖7示出了在物理存儲(chǔ)器中映射Java虛擬機(jī)存儲(chǔ)器;

圖8示出了針對(duì)多個(gè)Java虛擬機(jī)映射宿主機(jī)物理存儲(chǔ)器;

圖9示出了用于向Java虛擬機(jī)提供緩存服務(wù)存儲(chǔ)器的概觀;

圖10示出了用于將共享存儲(chǔ)器映射至Java虛擬機(jī)的Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng);

圖11示出了用于向工作進(jìn)程提供緩存服務(wù)存儲(chǔ)器的概觀;以及

圖12示出了對(duì)節(jié)點(diǎn)中的支持進(jìn)程進(jìn)行操作以將緩存存儲(chǔ)器與工作進(jìn)程進(jìn)行關(guān)聯(lián)的方法。

具體實(shí)施方式

本文所述的各種示例提供將緩存存儲(chǔ)器關(guān)聯(lián)至工作進(jìn)程。特別地,已經(jīng)開發(fā)了使用一個(gè)或更多個(gè)處理節(jié)點(diǎn)或計(jì)算系統(tǒng)對(duì)來(lái)自存儲(chǔ)庫(kù)的大量數(shù)據(jù)進(jìn)行處理的應(yīng)用和框架。這些處理節(jié)點(diǎn)可以包括真實(shí)處理節(jié)點(diǎn)如服務(wù)器計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)等以及在真實(shí)計(jì)算系統(tǒng)內(nèi)執(zhí)行的虛擬處理節(jié)點(diǎn)。

為了處理這些數(shù)據(jù),將來(lái)自存儲(chǔ)庫(kù)的數(shù)據(jù)對(duì)象轉(zhuǎn)移到使得處理節(jié)點(diǎn)中的每個(gè)處理節(jié)點(diǎn)能夠訪問該數(shù)據(jù)的節(jié)點(diǎn)集群中。當(dāng)被轉(zhuǎn)入后,框架和工作進(jìn)程如Java虛擬機(jī)并行地處理該數(shù)據(jù)以基于該數(shù)據(jù)生成查詢響應(yīng)。在本示例中,包括緩存服務(wù),該緩存服務(wù)在集群的處理節(jié)點(diǎn)與該集群的處理節(jié)點(diǎn)上執(zhí)行的Java虛擬機(jī)(JVM)之間提供共享存儲(chǔ)器。該共享緩存使得數(shù)據(jù)能夠直接被JVM利用,而不需要將數(shù)據(jù)加載到節(jié)點(diǎn)中然后將數(shù)據(jù)拷貝到JVM中。具體地,為了向JVM提供共享存儲(chǔ)器,處理節(jié)點(diǎn)的內(nèi)核——在很多示例中其可以包括Linux內(nèi)核——監(jiān)視由JVM啟動(dòng)的文件映射嘗試。響應(yīng)于該嘗試,該內(nèi)核將共享緩存服務(wù)存儲(chǔ)器關(guān)聯(lián)至JVM,以使得JVM能夠直接訪問從存儲(chǔ)庫(kù)遞送的數(shù)據(jù)對(duì)象。

盡管前面的示例使用JVM,但是應(yīng)當(dāng)理解,任何工作進(jìn)程如應(yīng)用或其他工作進(jìn)程可能需要與JVM的存儲(chǔ)器關(guān)聯(lián)相同的存儲(chǔ)器關(guān)聯(lián)來(lái)訪問緩存服務(wù)存儲(chǔ)器。另外,盡管在前面的示例中使用了內(nèi)核,但是可以使用能夠?qū)⒕彺娣?wù)存儲(chǔ)器關(guān)聯(lián)至工作進(jìn)程的任何類似支持進(jìn)程。例如,工作進(jìn)程可以啟動(dòng)對(duì)文件進(jìn)行映射的請(qǐng)求。響應(yīng)于該請(qǐng)求,支持進(jìn)程可以識(shí)別存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域,并且將存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域關(guān)聯(lián)至工作進(jìn)程。

為了進(jìn)一步說(shuō)明在分布式數(shù)據(jù)處理系統(tǒng)內(nèi)對(duì)數(shù)據(jù)的處理,包括了圖1。圖1示出了用于在集群節(jié)點(diǎn)內(nèi)處理數(shù)據(jù)的映射歸約系統(tǒng)100。系統(tǒng)100包括集群110、緩存服務(wù)120和存儲(chǔ)庫(kù)130。集群110又包括節(jié)點(diǎn)115至117,并且節(jié)點(diǎn)117還包括內(nèi)容140,該內(nèi)容140包括Hadoop 142、Java虛擬機(jī)(JVM)144和緩存存儲(chǔ)器146。

節(jié)點(diǎn)115至117可以包括能夠執(zhí)行Hadoop或其他類似映射歸約框架的任何真實(shí)或虛擬計(jì)算裝置。節(jié)點(diǎn)115至117各自可以包括真實(shí)或虛擬處理系統(tǒng)、存儲(chǔ)系統(tǒng)、通信接口、用戶接口或者其他類似計(jì)算元件。

緩存服務(wù)120可以包括能夠?qū)?shù)據(jù)對(duì)象分發(fā)至節(jié)點(diǎn)115至117的任何真實(shí)或虛擬計(jì)算元件。緩存服務(wù)120可以包括真實(shí)或虛擬處理系統(tǒng)、存儲(chǔ)系統(tǒng)、通信接口、用戶接口或其他類似計(jì)算元件。盡管在本示例中被單獨(dú)示出,但是應(yīng)當(dāng)理解,緩存服務(wù)120可以是分布式緩存服務(wù),并且可以完全地或部分地駐留在與節(jié)點(diǎn)115至117相同的裝置上。

存儲(chǔ)庫(kù)130可以包括能夠存儲(chǔ)要由節(jié)點(diǎn)115至117處理的數(shù)據(jù)的一個(gè)或更多個(gè)存儲(chǔ)卷。存儲(chǔ)庫(kù)130可以包括使用緩存服務(wù)120向節(jié)點(diǎn)115至117提供數(shù)據(jù)的磁盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器、控制器和其他元件。

在操作中,集群110被配置成具有多個(gè)節(jié)點(diǎn)115至117以處理利用單個(gè)計(jì)算裝置將難以處理的大數(shù)據(jù)集。在一些示例中,節(jié)點(diǎn)115至117可以包括物理計(jì)算裝置,但是還可以包括在真實(shí)計(jì)算裝置或宿主機(jī)系統(tǒng)上執(zhí)行的虛擬計(jì)算裝置或虛擬機(jī)。這些虛擬機(jī)可以使用管理程序(hypervisor)來(lái)執(zhí)行,該管理程序?qū)λ拗鳈C(jī)系統(tǒng)的物理硬件進(jìn)行抽象并且將宿主機(jī)的必要元件提供給虛擬機(jī)。必要元件可以包括虛擬硬件如通信接口、處理系統(tǒng)、存儲(chǔ)元件或任意其他類似虛擬化項(xiàng)。

在本示例中,節(jié)點(diǎn)117包括內(nèi)容140,該內(nèi)容140包括Hadoop框架142、一個(gè)或更多個(gè)JVM 144和緩存存儲(chǔ)器146。盡管在本示例中包括Hadoop 142,但是應(yīng)當(dāng)理解,可以在集群110上采用其他映射歸約框架。在操作中,Hadoop 142需要一個(gè)或更多個(gè)JVM 144來(lái)處理緩存服務(wù)120所提供的大數(shù)據(jù)集部分。為臨時(shí)緩存和訪問數(shù)據(jù),包括有在節(jié)點(diǎn)117與JVM 144之間共享的共享緩存存儲(chǔ)器146。因此,當(dāng)數(shù)據(jù)被傳送到節(jié)點(diǎn)117時(shí),該數(shù)據(jù)被存儲(chǔ)在緩存存儲(chǔ)器146內(nèi)以允許JVM 144快速訪問。盡管在本示例中針對(duì)單個(gè)節(jié)點(diǎn)示出了內(nèi)容,但是應(yīng)當(dāng)理解,節(jié)點(diǎn)115至116的內(nèi)容可以與節(jié)點(diǎn)117的內(nèi)容類似。

為了更好地示出對(duì)用于Java虛擬機(jī)的內(nèi)容的緩存,包括了圖2。圖2示出了用于對(duì)映射歸約集群中的集群節(jié)點(diǎn)進(jìn)行操作的操作場(chǎng)景200。操作場(chǎng)景200可以表示節(jié)點(diǎn)115至117中的任意節(jié)點(diǎn)的操作。操作場(chǎng)景200包括內(nèi)核存儲(chǔ)器210、Java虛擬機(jī)(JVM)存儲(chǔ)器220和緩存服務(wù)存儲(chǔ)器230。內(nèi)核存儲(chǔ)器210表示對(duì)集群節(jié)點(diǎn)如節(jié)點(diǎn)117的操作系統(tǒng)內(nèi)核進(jìn)行操作所需要的存儲(chǔ)器。緩存服務(wù)存儲(chǔ)器230表示由緩存服務(wù)使用以將用于處理的數(shù)據(jù)導(dǎo)入至集群節(jié)點(diǎn)的共享存儲(chǔ)器。JVM存儲(chǔ)器220表示執(zhí)行由Hadoop或其他類似映射歸約框架引起的JVM所需要的存儲(chǔ)器。

在操作中,集群節(jié)點(diǎn)內(nèi)的Hadoop或其他類似映射歸約框架可以啟動(dòng)JVM來(lái)處理由緩存服務(wù)分發(fā)至該處理節(jié)點(diǎn)的數(shù)據(jù)。當(dāng)JVM被啟動(dòng)并且被分配有JVM存儲(chǔ)器220時(shí),JVM可以啟動(dòng)操作300以加速JVM內(nèi)的輸入/輸出(I/O)。為了加速JVM的I/O,JVM將詢問內(nèi)核來(lái)對(duì)文件進(jìn)行映射以為JVM提供較簡(jiǎn)單的I/O事務(wù)。在一些示例中,文件映射詢問可以包括將內(nèi)核所識(shí)別的特定存儲(chǔ)器映射至JVM的新的I/O通道請(qǐng)求。

為了響應(yīng)該詢問,內(nèi)核存儲(chǔ)器210包括可以被執(zhí)行以處理來(lái)自JVM的詢問的操作400。因此,響應(yīng)于識(shí)別到來(lái)自JVM的詢問,內(nèi)核識(shí)別緩存服務(wù)存儲(chǔ)器230的要用于JVM的至少一部分。當(dāng)被識(shí)別后,將緩存服務(wù)存儲(chǔ)器230的該部分與JVM進(jìn)行關(guān)聯(lián)。通過與緩存服務(wù)存儲(chǔ)器230的該部分進(jìn)行關(guān)聯(lián),使得JVM能夠較快訪問由緩存服務(wù)提供的用于處理的數(shù)據(jù)。

例如,返回至圖1,可以將緩存存儲(chǔ)器146的一部分與JVM 144中的JVM進(jìn)行關(guān)聯(lián)。因此,如果緩存服務(wù)120嘗試使數(shù)據(jù)進(jìn)入節(jié)點(diǎn)117,則可以將該數(shù)據(jù)放置在緩存存儲(chǔ)器146的與該JVM相關(guān)聯(lián)的部分中。因此,代替首先將數(shù)據(jù)放入節(jié)點(diǎn)中然后將數(shù)據(jù)拷貝至JVM中,JVM可以在節(jié)點(diǎn)與JVM之間共享的存儲(chǔ)器中訪問數(shù)據(jù)。

現(xiàn)在參考圖3,圖3示出了用于對(duì)Java虛擬機(jī)進(jìn)行操作以請(qǐng)求映射文件的操作300。如所示出的,操作300啟動(dòng)將文件映射至JVM的嘗試(301)。對(duì)文件的這種映射通常使得JVM能夠訪問由節(jié)點(diǎn)管理的文件的存儲(chǔ)空間。然而,在本示例中,不是對(duì)文件進(jìn)行映射,而是將JVM映射至對(duì)由緩存服務(wù)提供的用于處理的數(shù)據(jù)進(jìn)行緩存的緩存服務(wù)存儲(chǔ)器230的至少一部分。因此,不是從存儲(chǔ)器讀取文件,而是將JVM配置成啟動(dòng)對(duì)緩存在緩存服務(wù)存儲(chǔ)器230的被映射部分中的數(shù)據(jù)的處理(302)。

轉(zhuǎn)至圖4,圖4示出了操作節(jié)點(diǎn)內(nèi)核以針對(duì)Java虛擬機(jī)映射緩存存儲(chǔ)器的操作400。如所示出的,操作400監(jiān)視來(lái)自節(jié)點(diǎn)上的一個(gè)或更多個(gè)JVM的對(duì)文件進(jìn)行映射的嘗試(401)。響應(yīng)于嘗試,操作400識(shí)別存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域(402)。當(dāng)識(shí)別到該存儲(chǔ)器中的區(qū)域后,操作400將該存儲(chǔ)器中的區(qū)域與Java虛擬機(jī)進(jìn)行關(guān)聯(lián)以允許Java虛擬機(jī)訪問該緩存服務(wù)存儲(chǔ)器中的數(shù)據(jù)(403)。

參考圖2,JVM啟動(dòng)對(duì)文件進(jìn)行映射的請(qǐng)求,該請(qǐng)求由處理節(jié)點(diǎn)的內(nèi)核來(lái)識(shí)別。響應(yīng)于該映射請(qǐng)求,內(nèi)核識(shí)別緩存服務(wù)存儲(chǔ)器230的可以分配給虛擬機(jī)的至少一部分,并且將緩存服務(wù)存儲(chǔ)器230的該部分分配給JVM。當(dāng)完成關(guān)聯(lián)后,可以將數(shù)據(jù)放置在被映射的緩存服務(wù)存儲(chǔ)器230內(nèi)使得JVM能夠訪問以進(jìn)行數(shù)據(jù)處理。

參考圖5,圖5示出了用于向緩存服務(wù)分配共享存儲(chǔ)器的集群節(jié)點(diǎn)存儲(chǔ)器500。集群節(jié)點(diǎn)存儲(chǔ)器500包括框架存儲(chǔ)器510、Java虛擬機(jī)(JVM)存儲(chǔ)器521至522和緩存服務(wù)存儲(chǔ)器530。在本示例中,集群節(jié)點(diǎn)存儲(chǔ)器500表示用于數(shù)據(jù)處理集群內(nèi)的物理節(jié)點(diǎn)的存儲(chǔ)器,然而,應(yīng)當(dāng)理解,在一些示例中,這些節(jié)點(diǎn)可以是虛擬機(jī)。

在操作中,集群節(jié)點(diǎn)被配置成具有Hadoop或其他類似框架以與其他節(jié)點(diǎn)并行地處理大數(shù)據(jù)集。在存儲(chǔ)器500中由Hadoop框架存儲(chǔ)器510表示的這種框架啟動(dòng)JVM以引入并處理必要數(shù)據(jù)。在本示例中,用于啟動(dòng)的JVM的存儲(chǔ)器在圖5中由JVM存儲(chǔ)器521至522來(lái)表示,其中JVM存儲(chǔ)器521至522包括與緩存服務(wù)存儲(chǔ)器530相關(guān)聯(lián)的存儲(chǔ)器部分。作為這種關(guān)聯(lián)的結(jié)果,JVM存儲(chǔ)器521至522包括共享緩存的用于臨時(shí)存儲(chǔ)來(lái)自各種存儲(chǔ)庫(kù)的要被處理的數(shù)據(jù)的至少一部分。

例如,如果數(shù)據(jù)對(duì)象要被加載到節(jié)點(diǎn)中以由JVM處理,則可以將該對(duì)象放置在緩存服務(wù)存儲(chǔ)器530和JVM存儲(chǔ)器521至522的共享部分中。因此,當(dāng)該對(duì)象被緩存后,適當(dāng)?shù)腏VM可以加載并處理該對(duì)象,而不需要將該數(shù)據(jù)對(duì)象從集群節(jié)點(diǎn)存儲(chǔ)器500拷貝到用于每個(gè)JVM的單獨(dú)存儲(chǔ)器中。

作為另一示出的示例,包括了圖6。圖6示出了用于在緩存服務(wù)中分配共享存儲(chǔ)器的宿主機(jī)存儲(chǔ)器600。宿主機(jī)存儲(chǔ)器600示出了能夠初始化并執(zhí)行各種虛擬機(jī)節(jié)點(diǎn)的宿主機(jī)計(jì)算系統(tǒng)中的存儲(chǔ)器系統(tǒng)。這些虛擬機(jī)節(jié)點(diǎn)被分配有虛擬機(jī)存儲(chǔ)器611至612,其中該虛擬機(jī)存儲(chǔ)器611至612具有框架存儲(chǔ)器641至642和Java虛擬機(jī)存儲(chǔ)器621至622。宿主機(jī)存儲(chǔ)器600還包括緩存用于在虛擬機(jī)內(nèi)處理的數(shù)據(jù)的緩存服務(wù)存儲(chǔ)器630。

在操作中,宿主機(jī)可以被配置成執(zhí)行充當(dāng)數(shù)據(jù)處理系統(tǒng)內(nèi)的節(jié)點(diǎn)的多個(gè)虛擬機(jī)。這些虛擬機(jī)可以在管理程序之上執(zhí)行,其中該管理程序?qū)λ拗鳈C(jī)的物理部件進(jìn)行抽象并且將它們提供給虛擬機(jī)以用于執(zhí)行。在本實(shí)例中,每個(gè)虛擬機(jī)在存儲(chǔ)器中由虛擬機(jī)(VM)存儲(chǔ)器611至612來(lái)表示。在每個(gè)虛擬機(jī)內(nèi),可以采用被配置成在數(shù)據(jù)被分發(fā)至集群的各個(gè)節(jié)點(diǎn)時(shí)對(duì)數(shù)據(jù)進(jìn)行處理的框架如Hadoop或其他映射歸約框架。此處,該框架在存儲(chǔ)器中被表示成具有框架(FW)存儲(chǔ)器641至642。

當(dāng)在虛擬機(jī)內(nèi)啟動(dòng)框架后,該框架可以用于啟動(dòng)一個(gè)或更多個(gè)Java虛擬機(jī)或JVM以協(xié)助處理大數(shù)據(jù)集。在存儲(chǔ)器中由JVM存儲(chǔ)器621至622表示的這些JVM訪問由框架提供的數(shù)據(jù)并且并行地處理該數(shù)據(jù)以得到由管理員或一些其他進(jìn)程進(jìn)行查詢的答案。為向虛擬機(jī)提供數(shù)據(jù),可以在與一個(gè)或更多個(gè)存儲(chǔ)庫(kù)進(jìn)行通信的宿主機(jī)中使用緩存服務(wù)來(lái)向該宿主機(jī)內(nèi)的每個(gè)節(jié)點(diǎn)分發(fā)數(shù)據(jù)。

在本示例中,為了快速地向每個(gè)JVM提供數(shù)據(jù),每個(gè)JVM被配置成詢問虛擬機(jī)節(jié)點(diǎn)內(nèi)核將文件映射至該JVM。響應(yīng)于該請(qǐng)求,內(nèi)核識(shí)別緩存服務(wù)存儲(chǔ)器630的可以分配給JVM的至少一部分,并且將緩存服務(wù)存儲(chǔ)器630的該部分與虛擬機(jī)進(jìn)行關(guān)聯(lián)。作為這種關(guān)聯(lián)的結(jié)果,虛擬機(jī)能夠被從緩存服務(wù)遞送數(shù)據(jù)并且能夠?qū)⒃摂?shù)據(jù)直接放入可由JVM訪問的存儲(chǔ)器的一部分中。

如本示例所示,緩存服務(wù)存儲(chǔ)器630被配置成與VM存儲(chǔ)器611至612內(nèi)的JVM存儲(chǔ)器621至622部分地重疊。因此,緩存服務(wù)存儲(chǔ)器630的重疊部分用作可以緩存數(shù)據(jù)并且可由JVM直接訪問的存儲(chǔ)器的量。盡管在本示例中被示出具有兩個(gè)虛擬機(jī),但是應(yīng)當(dāng)理解,可以在宿主機(jī)內(nèi)實(shí)現(xiàn)任何數(shù)目的虛擬機(jī)。另外,盡管每個(gè)虛擬機(jī)包括單個(gè)JVM,但是應(yīng)當(dāng)理解,每個(gè)虛擬機(jī)內(nèi)可以產(chǎn)生任意數(shù)目的JVM。

現(xiàn)在參考圖7以進(jìn)一步說(shuō)明存儲(chǔ)器到Java虛擬機(jī)的映射。圖7示出了根據(jù)一個(gè)示例的在物理存儲(chǔ)器中映射Java虛擬機(jī)存儲(chǔ)器。圖7包括物理存儲(chǔ)器710、節(jié)點(diǎn)內(nèi)核720、JVM 730和緩存740。如所示出的,處理集群內(nèi)的節(jié)點(diǎn)包括在節(jié)點(diǎn)的執(zhí)行期間可以用于各種不同目標(biāo)的物理存儲(chǔ)器710。在本示例中,物理存儲(chǔ)器710的至少一部分被分配給緩存740,該緩存740用于在數(shù)據(jù)對(duì)象被分發(fā)在集群內(nèi)以用于并行數(shù)據(jù)處理時(shí)對(duì)該數(shù)據(jù)對(duì)象進(jìn)行緩存。該緩存740最初與內(nèi)核720一起被分配,但是被預(yù)留以在各個(gè)Java虛擬機(jī)被啟動(dòng)以處理進(jìn)入節(jié)點(diǎn)的數(shù)據(jù)時(shí)由各個(gè)Java虛擬機(jī)訪問。

使用本示例,JVM 730可以由Hadoop或其他類似映射歸約框架啟動(dòng)以處理節(jié)點(diǎn)內(nèi)的數(shù)據(jù)。當(dāng)被啟動(dòng)后,JVM 730可以詢問節(jié)點(diǎn)內(nèi)核720來(lái)為JVM 730映射文件。響應(yīng)于該詢問,節(jié)點(diǎn)內(nèi)核720可以識(shí)別緩存740的可用于JVM 730的至少一部分,并且將緩存740的該部分與JVM 730進(jìn)行關(guān)聯(lián)。結(jié)果,JVM 730可以更快地訪問下述數(shù)據(jù):若以其他方式進(jìn)行,該數(shù)據(jù)在可以被訪問之前需要被拷貝到JVM 730中。在一個(gè)示例中,可以在集群內(nèi)采用分布式緩存服務(wù)以在每個(gè)集群節(jié)點(diǎn)之中分發(fā)數(shù)據(jù)。緩存服務(wù)可以被配置成將文件放置在緩存740內(nèi),這將使得JVM 730能夠讀取該文件并且做出必要處理。

與上面參考圖7所描述的操作類似,包括了圖8以示出針對(duì)多個(gè)Java虛擬機(jī)和多個(gè)虛擬節(jié)點(diǎn)映射宿主機(jī)物理存儲(chǔ)器。圖8包括宿主機(jī)物理存儲(chǔ)器810、節(jié)點(diǎn)內(nèi)核820至821、JVM 830至831和緩存840。宿主機(jī)物理存儲(chǔ)器810表示用于有能力執(zhí)行多個(gè)虛擬機(jī)的宿主機(jī)計(jì)算裝置如服務(wù)器計(jì)算機(jī)或臺(tái)式計(jì)算機(jī)的物理存儲(chǔ)器。在一些情況下,該宿主機(jī)計(jì)算裝置可以包括被配置成對(duì)宿主機(jī)計(jì)算裝置的物理元件進(jìn)行抽象并且將它們提供給虛擬機(jī)的管理程序。

在本示例中,宿主機(jī)物理存儲(chǔ)器810被配置成具有用于對(duì)要由各個(gè)虛擬機(jī)處理的數(shù)據(jù)進(jìn)行緩存的緩存部840。因此,每個(gè)虛擬機(jī)節(jié)點(diǎn)內(nèi)核820至821被分配有緩存的一部分以允許對(duì)存儲(chǔ)在緩存840內(nèi)的數(shù)據(jù)的訪問。為了在每個(gè)虛擬機(jī)中處理數(shù)據(jù),虛擬機(jī)可以被配置成具有Hadoop或其他類似分布式框架。該框架可以啟動(dòng)和執(zhí)行虛擬機(jī)內(nèi)的JVM如JVM 830至831以處理必要的數(shù)據(jù)對(duì)象。當(dāng)被啟動(dòng)后,JVM 830至831分別詢問VM節(jié)點(diǎn)內(nèi)核820至821將文件映射至JVM。對(duì)文件的這種映射用于使得JVM 830至831能夠快速訪問通常僅VM自身可訪問的文件。響應(yīng)于JVM請(qǐng)求,VM節(jié)點(diǎn)內(nèi)核820至821識(shí)別緩存840的可以映射至每個(gè)JVM 830至831的至少一部分,并且將所識(shí)別的部分與JVM進(jìn)行關(guān)聯(lián)。作為該映射的結(jié)果,放置在用于VM節(jié)點(diǎn)內(nèi)核820至821中的每個(gè)VM節(jié)點(diǎn)內(nèi)核的緩存840中的數(shù)據(jù)因此也可被JVM 830至831利用。

圖9示出了用于向Java虛擬機(jī)提供緩存服務(wù)存儲(chǔ)器的概觀900。概觀900包括物理存儲(chǔ)器910、節(jié)點(diǎn)內(nèi)核920、JVM 930、緩存服務(wù)存儲(chǔ)器940和JVM部分945。節(jié)點(diǎn)內(nèi)核920可以表示真實(shí)裝置中的操作系統(tǒng)內(nèi)核,或者可以表示用于虛擬計(jì)算裝置或機(jī)器的操作系統(tǒng)內(nèi)核。在操作中,節(jié)點(diǎn)被啟動(dòng)以與處理集群中的其他節(jié)點(diǎn)并行地處理大數(shù)據(jù)集,其中該節(jié)點(diǎn)可以是真實(shí)的或虛擬的。

當(dāng)被啟動(dòng)后,節(jié)點(diǎn)內(nèi)核920監(jiān)視該節(jié)點(diǎn)上啟動(dòng)的JVM的用于將JVM映射至緩存存儲(chǔ)器940的文件映射請(qǐng)求。緩存存儲(chǔ)器940是被分配的存儲(chǔ)器,其使得緩存服務(wù)能夠提供用于由該節(jié)點(diǎn)內(nèi)執(zhí)行的JVM處理的數(shù)據(jù)。當(dāng)為該節(jié)點(diǎn)分配了工作后,Hadoop或一些他類似映射歸約框架可以啟動(dòng)JVM 930以協(xié)助并行處理一個(gè)或更多個(gè)數(shù)據(jù)集。當(dāng)被啟動(dòng)后,JVM 930詢問節(jié)點(diǎn)內(nèi)核920將文件映射至JVM 930。響應(yīng)于該詢問,節(jié)點(diǎn)內(nèi)核920識(shí)別要被映射至JVM 930的JVM部分945。然后,將緩存服務(wù)存儲(chǔ)器940的這個(gè)被識(shí)別的部分與JVM 930進(jìn)行關(guān)聯(lián),使得JVM 930能夠?qū)彺嬖贘VM部分945的數(shù)據(jù)進(jìn)行訪問。通過將數(shù)據(jù)緩存在存儲(chǔ)器的共享部分中,該數(shù)據(jù)可以使用節(jié)點(diǎn)來(lái)存儲(chǔ),但是可以被該節(jié)點(diǎn)內(nèi)執(zhí)行的JVM更快速訪問。

轉(zhuǎn)至圖10,圖10示出了用于將共享存儲(chǔ)器映射至Java虛擬機(jī)的Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000。Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000是節(jié)點(diǎn)115至117的示例,然而可以存在節(jié)點(diǎn)的其他示例。Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000包括通信接口1001、用戶接口1002和處理系統(tǒng)1003。處理系統(tǒng)1003鏈接至通信接口1001和用戶接口1002。處理系統(tǒng)1003包括處理電路系統(tǒng)1005和存儲(chǔ)操作軟件1007的存儲(chǔ)器裝置1006。

通信接口1001包括經(jīng)由通信鏈接如網(wǎng)卡、端口、RF收發(fā)器、處理電路系統(tǒng)和軟件或者一些其他通信裝置進(jìn)行通信的部件。通信接口1001可以被配置成經(jīng)由金屬鏈路、無(wú)線鏈路或光鏈路進(jìn)行通信。通信接口1001可以被配置成使用TDM協(xié)議、IP協(xié)議、以太網(wǎng)協(xié)議、光聯(lián)網(wǎng)協(xié)議、無(wú)線協(xié)議、通信信令或一些其他通信格式——包括其組合。

用戶接口1002包括與用戶交互的部件。用戶接口1002可以包括鍵盤、顯示屏、鼠標(biāo)、觸摸板或一些其他用戶輸入/輸出設(shè)備。在一些示例中,可以省略用戶接口1002。

處理電路系統(tǒng)1005包括微處理器以及從存儲(chǔ)器裝置1006檢索操作軟件1007并執(zhí)行該操作軟件1007的其他電路系統(tǒng)。存儲(chǔ)器裝置1006包括非暫態(tài)存儲(chǔ)介質(zhì)如磁盤驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器、數(shù)據(jù)存儲(chǔ)電路系統(tǒng)或一些其他存儲(chǔ)器設(shè)備。操作軟件1007包括計(jì)算機(jī)程序、固件或一些其他形式的機(jī)器可讀處理指令。操作軟件1007包括可以位于Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000的內(nèi)核1020內(nèi)的監(jiān)視模塊1008、識(shí)別模塊1009和關(guān)聯(lián)模塊1010。操作軟件1007還可以包括操作系統(tǒng)、實(shí)用程序、驅(qū)動(dòng)器、網(wǎng)絡(luò)接口、應(yīng)用或一些其他類型的軟件。操作軟件1007在由電路系統(tǒng)1005執(zhí)行時(shí)指示處理系統(tǒng)1003如本文所描述的那樣來(lái)操作Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000。

具體地,Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000表示用于在集群環(huán)境中處理大數(shù)據(jù)集的計(jì)算系統(tǒng)。Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000可以表示真實(shí)計(jì)算裝置如服務(wù)器或臺(tái)式機(jī),但是也可以表示宿主計(jì)算機(jī)內(nèi)的虛擬計(jì)算裝置。在操作中,計(jì)算系統(tǒng)1000被配置成執(zhí)行Hadoop或其他類似映射歸約框架。在執(zhí)行該框架期間,可以啟動(dòng)對(duì)用于數(shù)據(jù)分析所必需的數(shù)據(jù)進(jìn)行處理的一個(gè)或更多個(gè)Java虛擬機(jī)JVM。

在本示例中,當(dāng)JVM被啟動(dòng)后,監(jiān)視模塊1008被配置成監(jiān)視來(lái)自Java虛擬機(jī)的文件映射嘗試。該文件映射嘗試包括由JVM做出的對(duì)存儲(chǔ)器中的文件進(jìn)行映射以使得JVM能夠更快速訪問該文件的嘗試。響應(yīng)于識(shí)別到文件映射嘗試,識(shí)別模塊1009識(shí)別存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域。在啟動(dòng)JVM中的任何JVM之前,緩存服務(wù)可以分配Hadoop節(jié)點(diǎn)計(jì)算系統(tǒng)1000中的一定量的存儲(chǔ)器來(lái)緩存要在該系統(tǒng)內(nèi)處理的數(shù)據(jù)。該存儲(chǔ)器可以被分配為內(nèi)核1020的一部分,或者可由內(nèi)核1020訪問并且能夠被映射至啟動(dòng)的JVM的任意其他位置。當(dāng)識(shí)別到存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域時(shí),關(guān)聯(lián)模塊1010將存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域與Java虛擬機(jī)進(jìn)行關(guān)聯(lián)。因此,不是被映射至文件,而是將虛擬機(jī)與被分配給緩存服務(wù)的存儲(chǔ)器進(jìn)行關(guān)聯(lián)。因此,當(dāng)數(shù)據(jù)被遞送至計(jì)算系統(tǒng)1000用于由一個(gè)或更多個(gè)JVM處理時(shí),JVM可以具有到緩存服務(wù)的直接映射以在不將數(shù)據(jù)轉(zhuǎn)移入JVM的情況下快速訪問信息。

盡管在本示例中被示出具有三個(gè)軟件模塊,但是應(yīng)當(dāng)理解,在計(jì)算系統(tǒng)1000內(nèi)可以采用任意數(shù)目的軟件模塊來(lái)實(shí)現(xiàn)本文所述的操作。另外,盡管在本示例中與真實(shí)計(jì)算裝置類似地示出,但是應(yīng)當(dāng)理解,計(jì)算系統(tǒng)1000可以表示虛擬計(jì)算裝置。在這樣的情況下,計(jì)算系統(tǒng)1000可以被配置成在宿主機(jī)內(nèi)與其他節(jié)點(diǎn)一起操作以用于處理大數(shù)據(jù)集。在一些示例中,宿主機(jī)可以包括用于對(duì)宿主機(jī)的物理元件進(jìn)行抽象并且將它們提供給像計(jì)算系統(tǒng)1000一樣的處理節(jié)點(diǎn)的管理程序。因此,多個(gè)節(jié)點(diǎn)能夠在單個(gè)宿主機(jī)計(jì)算系統(tǒng)上執(zhí)行。

盡管在前面示例中被示出使用JVM,但是應(yīng)當(dāng)理解,任何工作進(jìn)程如應(yīng)用或其他工作進(jìn)程可能需要與JVM的文件映射相同的文件映射來(lái)訪問緩存服務(wù)存儲(chǔ)器。另外,盡管在前面的示例中使用內(nèi)核,但是可以使用能夠?qū)⒕彺娣?wù)存儲(chǔ)器關(guān)聯(lián)至工作進(jìn)程的任何類似支持進(jìn)程。例如,參考圖11,圖11示出了用于向計(jì)算節(jié)點(diǎn)或系統(tǒng)內(nèi)的工作進(jìn)程提供緩存服務(wù)存儲(chǔ)器的概觀。圖11包括節(jié)點(diǎn)存儲(chǔ)器1110、支持進(jìn)程1120和工作進(jìn)程1130。節(jié)點(diǎn)存儲(chǔ)器還包括緩存服務(wù)存儲(chǔ)器1140和緩存服務(wù)存儲(chǔ)器1140內(nèi)的工作區(qū)域1145。

在操作中,可以是計(jì)算節(jié)點(diǎn)內(nèi)的任何java虛擬機(jī)或進(jìn)程的工作進(jìn)程1130可以啟動(dòng)對(duì)文件進(jìn)行映射的請(qǐng)求。該映射請(qǐng)求通常用于對(duì)存儲(chǔ)器中的文件進(jìn)行共享,否則該文件需要被拷貝到工作進(jìn)程1130的存儲(chǔ)器中。響應(yīng)于該映射請(qǐng)求,支持進(jìn)程1120識(shí)別存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域——在本示例中是工作區(qū)域1145,并且將緩存服務(wù)存儲(chǔ)器1140的工作區(qū)域1145關(guān)聯(lián)至工作進(jìn)程1130。通過分配緩存服務(wù)存儲(chǔ)器1140的工作區(qū)域1145,工作進(jìn)程1130可以訪問下述數(shù)據(jù):若以其他方式進(jìn)行,該數(shù)據(jù)可能需要被拷貝到用于該工作進(jìn)程的存儲(chǔ)器的非共享區(qū)域中。

為了進(jìn)一步說(shuō)明支持進(jìn)程1120的操作,包括了圖12。圖12示出了對(duì)節(jié)點(diǎn)中的支持進(jìn)程進(jìn)行操作以將緩存存儲(chǔ)器與工作進(jìn)程進(jìn)行關(guān)聯(lián)的方法1200。該方法包括識(shí)別來(lái)自工作進(jìn)程的對(duì)文件進(jìn)行映射的請(qǐng)求(1201)。在一些示例中,工作進(jìn)程可以包括被配置成協(xié)助映射歸約框架的Java虛擬機(jī),但是應(yīng)當(dāng)理解,該工作進(jìn)程可以包括其他類型的工作進(jìn)程。另外,在一些實(shí)例下,支持進(jìn)程可以是計(jì)算機(jī)節(jié)點(diǎn)內(nèi)核或Linux內(nèi)核,但是可以包括能夠?qū)?jié)點(diǎn)內(nèi)的存儲(chǔ)器進(jìn)行分配的任何其他支持進(jìn)程。當(dāng)支持進(jìn)程接收到對(duì)文件進(jìn)行映射的請(qǐng)求時(shí),支持進(jìn)程識(shí)別存儲(chǔ)器中的被分配給緩存服務(wù)的區(qū)域,并且將該存儲(chǔ)器中的區(qū)域關(guān)聯(lián)至工作進(jìn)程。返回參考圖11,支持進(jìn)程1120識(shí)別用于工作進(jìn)程1130的工作區(qū)域1145。因此,當(dāng)工作區(qū)域1145與工作進(jìn)程1130相關(guān)聯(lián)后,工作進(jìn)程1130可以使用緩存存儲(chǔ)器來(lái)完成已分配的任務(wù)。

附圖中提供的功能框圖、操作序列和流程圖表示用于執(zhí)行本公開內(nèi)容的新穎部分的示例性架構(gòu)、環(huán)境和方法。盡管出于簡(jiǎn)化說(shuō)明的目的,本文包括的方法可以是功能圖、操作序列或流程圖的形式并且可以被描述為一系列動(dòng)作,但是應(yīng)當(dāng)理解和領(lǐng)會(huì),所述方法不受動(dòng)作的順序的限制,因?yàn)楦鶕?jù)所述方法,一些動(dòng)作可以以不同的順序發(fā)生和/或與來(lái)自本文所示和所描述的方法的其他動(dòng)作同時(shí)發(fā)生。例如,本領(lǐng)域的技術(shù)人員將理解和領(lǐng)會(huì),方法可以替選地被表示為如狀態(tài)圖中的一系列相關(guān)狀態(tài)或事件。此外,對(duì)于新穎的實(shí)現(xiàn)方式,可能并不需要方法中所示的所有動(dòng)作。

所包括的描述和附圖描述了特定實(shí)現(xiàn)方式以教示本領(lǐng)域的技術(shù)人員如何獲得和使用最好的選項(xiàng)。出于教示發(fā)明性原理的目的,簡(jiǎn)化或省略了一些常規(guī)方面。本領(lǐng)域的技術(shù)人員將理解,來(lái)自這些實(shí)現(xiàn)方式的變型落入本發(fā)明的范圍內(nèi)。本領(lǐng)域的技術(shù)人員還將理解,上述特征可以以各種方式進(jìn)行組合以形成多個(gè)實(shí)現(xiàn)方式。因此,本發(fā)明不限于上述特定實(shí)現(xiàn)方式,而是僅由權(quán)利要求書及其等同方案來(lái)限定。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
通州市| 澜沧| 小金县| 民县| 铜陵市| 黑龙江省| 永年县| 抚远县| 关岭| 井冈山市| 黄陵县| 宁阳县| 大渡口区| 娄底市| 太仆寺旗| 丰城市| 巴林右旗| 高邑县| 九龙县| 东乌珠穆沁旗| 遂昌县| 宜兴市| 伊金霍洛旗| 怀化市| 金湖县| 增城市| 宾川县| 承德县| 莲花县| 万盛区| 钦州市| 小金县| 弥渡县| 闽侯县| 湖州市| 哈巴河县| 青岛市| 东至县| 磐安县| 黄浦区| 安阳市|