亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

離線數(shù)據(jù)上傳方法及裝置的制造方法

文檔序號:10616045閱讀:285來源:國知局
離線數(shù)據(jù)上傳方法及裝置的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種離線數(shù)據(jù)上傳方法及裝置。根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中;啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。實(shí)現(xiàn)了快速高效的離線數(shù)據(jù)上傳,提升了分布式處理的效率。
【專利說明】
離線數(shù)據(jù)上傳方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種離線數(shù)據(jù)上傳方法及裝置。
【背景技術(shù)】
[0002]在大數(shù)據(jù)的作業(yè)中,通常會有大量離線的文件或數(shù)據(jù)需要處理,例如大量離線日志。對于單個(gè)服務(wù)器而言,它是沒有能力處理這些數(shù)據(jù)的,而分布式系統(tǒng)中恰好具有足夠的資源來處理這些數(shù)據(jù)。在分布式系統(tǒng)對這些數(shù)據(jù)進(jìn)行處理之前,首先需要將這些大量數(shù)據(jù)上傳至分布式系統(tǒng)進(jìn)行處理。
[0003]數(shù)據(jù)的產(chǎn)生是不間斷的,每一天每一個(gè)小時(shí)都會產(chǎn)生大量的數(shù)據(jù),且這些數(shù)據(jù)在存儲介質(zhì)中通常是以壓縮形式存在的,通常,將其上傳至分布式處理系統(tǒng)時(shí),其數(shù)據(jù)量要翻倍,約10倍左右。若是一次性向一個(gè)服務(wù)器上傳過多的數(shù)據(jù),一方面會導(dǎo)致數(shù)據(jù)上傳的過程十分緩慢,從而拖慢整個(gè)分布式系統(tǒng)的處理速度;另一方面,接收數(shù)據(jù)的服務(wù)器也可能會因?yàn)閿?shù)據(jù)加載過多而導(dǎo)致內(nèi)存溢出,從而出現(xiàn)故障無法進(jìn)行數(shù)據(jù)處理。
[0004]因此,一種合理的離線數(shù)據(jù)上傳方法亟待提出。

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

[0005]本發(fā)明實(shí)施例提供一種離線數(shù)據(jù)上傳方法及裝置,用以解決現(xiàn)有技術(shù)中離線數(shù)據(jù)上傳至分布式系統(tǒng)因數(shù)據(jù)量大導(dǎo)致的上傳緩慢或服務(wù)器內(nèi)存溢出的缺陷,實(shí)現(xiàn)大量離線數(shù)據(jù)的合理高效上傳。
[0006]本發(fā)明實(shí)施例提供一種離線數(shù)據(jù)上傳方法,包括:
[0007]根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0008]將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中;
[0009]啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。
[0010]本發(fā)明實(shí)施例提供一種離線數(shù)據(jù)上傳裝置,包括:
[0011]切割模塊,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0012]迀移模塊,用于將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中;
[0013]上傳模塊,用于啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。
[0014]本發(fā)明實(shí)施例提供的離線數(shù)據(jù)上傳方法及裝置,通過啟動定時(shí)服務(wù)對待處理的數(shù)據(jù)進(jìn)行定時(shí)切割并啟動若干線程將數(shù)據(jù)并發(fā)上傳至分布式文件系統(tǒng),改變了現(xiàn)有技術(shù)中進(jìn)行離線數(shù)據(jù)上傳時(shí),用上傳速度緩慢以及同一服務(wù)器數(shù)據(jù)加載過度導(dǎo)致的內(nèi)存溢出,實(shí)現(xiàn)了快速高效的離線數(shù)據(jù)上傳,提升了分布式處理的效率。
【附圖說明】
[0015]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0016]圖1為本申請實(shí)施例一的方法流程圖;
[0017]圖2為本本申請實(shí)施例二的方法流程圖;
[0018]圖3為本本申請實(shí)施例三的方法流程圖;
[0019]圖4為本申請實(shí)施例四的裝置實(shí)施例結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0021]圖1是本申請實(shí)施例一的方法流程圖,結(jié)合圖1,本申請實(shí)施例一種離線數(shù)據(jù)上傳方法,可由如下的步驟實(shí)現(xiàn):
[0022]步驟S110:根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0023]步驟S120:將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中;
[0024]步驟S130:啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。
[0025]具體的,在步驟SllO中,所述數(shù)據(jù)源目錄包含存儲介質(zhì)中數(shù)據(jù)文件的名稱、說明信息以及相應(yīng)的數(shù)據(jù)內(nèi)容。當(dāng)數(shù)據(jù)消費(fèi)者,即需要使用數(shù)據(jù)的用戶或者需要使用數(shù)據(jù)的應(yīng)用/服務(wù),需要從存儲介質(zhì)中獲取目標(biāo)數(shù)據(jù)進(jìn)行數(shù)據(jù)處理時(shí),首先獲取數(shù)據(jù)消費(fèi)者需要的目標(biāo)數(shù)據(jù)文件的名稱或者檢索參數(shù),查詢所述預(yù)設(shè)的數(shù)據(jù)源目錄,獲取相應(yīng)的目標(biāo)數(shù)據(jù)文件。本申請實(shí)施例的應(yīng)用場景中,數(shù)據(jù)消費(fèi)者所消費(fèi)的目標(biāo)數(shù)據(jù)通常都是大量的,大量的數(shù)據(jù)上傳至分布式文件系統(tǒng)很容易造成系統(tǒng)故障,例如上傳緩慢或者服務(wù)器內(nèi)存溢出等等,從而影響分布式數(shù)據(jù)處理的效率,也對數(shù)據(jù)消費(fèi)者造成了不良體驗(yàn)。因此,本步驟中,首先啟動一個(gè)定時(shí)服務(wù),以預(yù)設(shè)的時(shí)間及間隔取出待處理的數(shù)據(jù)進(jìn)行上傳。
[0026]數(shù)據(jù)上傳是需要一定時(shí)間的,若是連續(xù)不斷地取數(shù)據(jù)并進(jìn)行上傳很容易造成某一服務(wù)器加載的數(shù)據(jù)量過大從而導(dǎo)致服務(wù)器內(nèi)存溢出,出現(xiàn)故障。因此,本申請實(shí)施例的定時(shí)服務(wù),采用定時(shí)腳本的方式,每間隔一段預(yù)設(shè)的時(shí)間間隔對數(shù)據(jù)進(jìn)行一次切割。在所述預(yù)設(shè)的時(shí)間間隔中,被切割的數(shù)據(jù)可以上傳至分布式文件系統(tǒng)進(jìn)行處理,當(dāng)判斷所述被切割的數(shù)據(jù)可能處理完成之后,則啟動下一次切割,將新切割得到的數(shù)據(jù)再上傳至分布式文件系統(tǒng),這樣就有足夠的網(wǎng)絡(luò)帶寬來推送數(shù)據(jù)并且分布式文件系統(tǒng)也有足夠的資源來處理這些新的數(shù)據(jù)。
[0027]因此,綜上描述,所述預(yù)設(shè)的時(shí)間間隔是一個(gè)很關(guān)鍵的取值,也是一個(gè)與切割數(shù)據(jù)量有關(guān)的經(jīng)驗(yàn)值。在取值的時(shí)候,要保證在這段時(shí)間之內(nèi)已經(jīng)上傳至分布式文件系統(tǒng)的數(shù)據(jù)大部分已經(jīng)被處理,從而分布式文件系統(tǒng)能夠騰出資源和空間進(jìn)行下一次數(shù)據(jù)的處理。所述預(yù)設(shè)的時(shí)間間隔過大,會導(dǎo)致上一次上傳的數(shù)據(jù)已經(jīng)處理結(jié)束而新的數(shù)據(jù)還未上傳至分布式文件系統(tǒng),這樣會拖慢系統(tǒng)的處理效率;若是所述預(yù)設(shè)的時(shí)間間隔過小,則容易導(dǎo)致上一次上傳的數(shù)據(jù)還未處理完,新的數(shù)據(jù)就已經(jīng)推送至分布式系統(tǒng),若是數(shù)據(jù)量大,則很容易就導(dǎo)致服務(wù)器內(nèi)存溢出。
[0028]具體的,將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割,具體切割數(shù)據(jù)的數(shù)量閾值大小可以是經(jīng)驗(yàn)值,也可以通過以下的步驟進(jìn)行更加精確合理的計(jì)算:
[0029]首先,對所述數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大??;
[0030]其次,根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值并根據(jù)所述數(shù)量閾值對所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割。
[0031 ]本步驟中,對所述數(shù)據(jù)源目錄進(jìn)行分析,具體可以查詢所述數(shù)據(jù)源目錄中保存的每一數(shù)據(jù)文件的數(shù)據(jù)量的大小,對于數(shù)據(jù)量較大的數(shù)據(jù)文件,其切割數(shù)量閾值應(yīng)當(dāng)較大,從而將大的數(shù)據(jù)文件切割成較小的數(shù)據(jù)塊進(jìn)行上傳。然而,對于數(shù)據(jù)量較小的數(shù)據(jù)文件,其切割數(shù)據(jù)閾值應(yīng)當(dāng)適當(dāng)調(diào)小,因數(shù)據(jù)量小的數(shù)據(jù)文件在上傳和處理的過程中都能輕易實(shí)現(xiàn),如果將其切成更小的數(shù)據(jù)塊,對其處理速度而言并沒有很明顯的提升,反而在數(shù)據(jù)切割的過程中浪費(fèi)了較多的時(shí)間。因此,估計(jì)所述數(shù)據(jù)切割的數(shù)量閾值之前需獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大小,從而能夠得到一個(gè)合理的所述數(shù)據(jù)切割的數(shù)量閾值。
[0032]具體的,在步驟S120中,所述預(yù)設(shè)的臨時(shí)工作目錄用于存儲已經(jīng)切割好的分塊數(shù)據(jù),其目錄中可以包含臨時(shí)存放的數(shù)據(jù)文件的名稱、說明信息以及相應(yīng)的分塊數(shù)據(jù)。需要說明的是,所述預(yù)設(shè)的臨時(shí)工作目錄是受監(jiān)控的,當(dāng)檢測到某一數(shù)據(jù)文件的所有分塊數(shù)據(jù)都上傳至分布式文件系統(tǒng)后,這一數(shù)據(jù)文件在所述預(yù)設(shè)的臨時(shí)工作目錄中的所有記錄都將刪除,從而將清空的空間留給下一次待上傳的文件。
[0033]具體的,在步驟S130中,啟動上傳線程從臨時(shí)工作目錄中讀取數(shù)據(jù)并上傳至分布式文件系統(tǒng)。其中,線程的數(shù)量是預(yù)設(shè)的,可以是一個(gè)定值也可以是一個(gè)動態(tài)變化的值。
[0034]優(yōu)選的,本申請實(shí)施例采用動態(tài)數(shù)量的線程對所述預(yù)設(shè)的臨時(shí)工作目錄中的分塊數(shù)據(jù)進(jìn)行上傳,從而能夠合理分配數(shù)據(jù)上傳的并行線程數(shù)量達(dá)到最高上傳效率。具體實(shí)現(xiàn)方式如下:
[0035]獲取所述分布式文件系統(tǒng)的系統(tǒng)資源使用量,并根據(jù)所述系統(tǒng)資源使用量計(jì)算所述線程的數(shù)量;其中所述系統(tǒng)資源使用量包括所述分布式系統(tǒng)中服務(wù)器的數(shù)量、服務(wù)器CPU的核數(shù)以及(PU的占用率。
[0036]例如,某一服務(wù)器集群中包含的服務(wù)器數(shù)量較多且服務(wù)CPU的占用率較低,則可以啟動較多數(shù)量的線程從所述預(yù)設(shè)的臨時(shí)文件工作目錄中取數(shù)據(jù)進(jìn)程上傳。
[0037]需要說明的是,本申請實(shí)施例中,當(dāng)判定所述線程的數(shù)量超過預(yù)設(shè)線程數(shù)閾值時(shí),以所述預(yù)設(shè)線程數(shù)閾值更新所述線程的數(shù)量。
[0038]數(shù)據(jù)上傳線程的數(shù)量并非越多越好,同時(shí)啟動過多的線程對分布式文件系統(tǒng)而言,并不能夠?qū)Ψ植际较到y(tǒng)的處理效率有任何提升作用。因數(shù)據(jù)上傳至分布式文件系統(tǒng)時(shí),網(wǎng)絡(luò)帶寬是有限的,上傳時(shí)首先要保證待上傳的離線數(shù)據(jù)能夠被接收服務(wù)器接收,其次要保證接收的數(shù)據(jù)能夠及時(shí)的上傳到分布式文件系統(tǒng)中。多線程上傳更合理地使用了 CPU資源,因此可以提高數(shù)據(jù)上傳效率。但是上傳的離線數(shù)據(jù)量不能超過網(wǎng)絡(luò)帶寬,所以線程數(shù)量達(dá)到一定數(shù)量了,就會因?yàn)槿屨紟捹Y源,反而影響了效率。
[0039]因此,本申請實(shí)施例中,設(shè)置一個(gè)線程數(shù)閾值,當(dāng)根據(jù)所述系統(tǒng)資源使用量計(jì)算得到所述線程的數(shù)量大于所述線程數(shù)閾值時(shí),將直接采用所述線程數(shù)閾值作為上傳線程的數(shù)量。
[0040]線程的數(shù)量的合理值,可以通過一個(gè)預(yù)先的測試來估算;設(shè)服務(wù)器的網(wǎng)卡是千兆網(wǎng)卡(單位是bit),理論上該服務(wù)器網(wǎng)絡(luò)的吞吐量為1000/8 = 120M(單位byte),假設(shè)一般是數(shù)據(jù)進(jìn)出各占50%的帶寬。數(shù)據(jù)上傳是出服務(wù)器的流量,理論的最大值是60M。測試一下單線程的上傳速度,例如測試單線程的上傳速率是5M/秒,那么理論上60/5 = 12是線程的最大值,但是效率和線程是不是指數(shù)關(guān)系,同時(shí)要給系統(tǒng)留一定的冗余,可以取理論最優(yōu)值的80%,所以可以設(shè)置最優(yōu)線程數(shù)為9個(gè)左右。
[0041 ]本實(shí)施例中,通過啟動定時(shí)服務(wù)對待處理的數(shù)據(jù)進(jìn)行定時(shí)切割并啟動若干線程將數(shù)據(jù)并發(fā)上傳至分布式文件系統(tǒng),改變了現(xiàn)有技術(shù)中進(jìn)行離線數(shù)據(jù)上傳時(shí),用上傳速度緩慢以及同一服務(wù)器數(shù)據(jù)加載過度導(dǎo)致的內(nèi)存溢出,實(shí)現(xiàn)了快速高效的離線數(shù)據(jù)上傳,提升了分布式處理的效率。
[0042]圖2是本申請實(shí)施例二的方法流程圖,結(jié)合圖2,本申請實(shí)施例一種離線數(shù)據(jù)上傳方法,還可由如下的實(shí)現(xiàn)步驟:
[0043]步驟S210:對數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大??;
[0044]步驟S220:根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值;
[0045]步驟S230:根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并根據(jù)所述數(shù)據(jù)切割的數(shù)量閾值將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0046]步驟S240:將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中并對所述臨時(shí)工作目錄進(jìn)行實(shí)時(shí)監(jiān)控;
[0047]步驟S250:啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng);
[0048]步驟S260:當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),從所述臨時(shí)工作目錄中刪除所述待處理數(shù)據(jù)。
[0049]上述步驟S210?步驟S260是一個(gè)定時(shí)服務(wù),在每個(gè)所述預(yù)設(shè)的時(shí)間間隔內(nèi)均會執(zhí)行一次,例如,當(dāng)所述預(yù)設(shè)的時(shí)間間隔為10分鐘,上述步驟的第一次執(zhí)行時(shí)間為0:00,則當(dāng)時(shí)間到達(dá)0:10時(shí),從步驟S210開始,上述步驟重復(fù)執(zhí)行一次,直至數(shù)據(jù)消費(fèi)者所需的所有數(shù)據(jù)均被處理完成。
[0050]本實(shí)施例中,在數(shù)據(jù)上傳之前,首先判斷數(shù)據(jù)量并根據(jù)數(shù)量計(jì)算應(yīng)當(dāng)切得的數(shù)據(jù)塊的多少,保證了切割得到分塊數(shù)據(jù)的大小,從而保證了通過分塊數(shù)據(jù)上傳至分布式系統(tǒng)的效率,避免了因一次性加載過多數(shù)據(jù)造成的服務(wù)器內(nèi)存溢出;與此同時(shí),本申請實(shí)施例中,啟動定時(shí)服務(wù)對待處理的數(shù)據(jù)進(jìn)行定時(shí)切割并啟動若干線程將數(shù)據(jù)并發(fā)上傳至分布式文件系統(tǒng),實(shí)現(xiàn)了快速高效的離線數(shù)據(jù)上傳,提升了分布式處理的效率。
[0051]圖3是本申請實(shí)施例三的方法流程圖,結(jié)合圖3,本申請實(shí)施例一種離線數(shù)據(jù)上傳方法,還可以有如下的實(shí)施方式:
[0052]步驟S310:對數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大??;
[0053]步驟S320:根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值;
[0054]步驟S330:根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,取出待處理數(shù)據(jù)并根據(jù)所述數(shù)據(jù)切割的數(shù)量閾值將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0055]步驟S340:將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中并對所述臨時(shí)工作目錄進(jìn)行實(shí)時(shí)監(jiān)控;
[0056]步驟S350:啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng);
[0057]步驟S360:當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),從所述臨時(shí)工作目錄中刪除所述待處理數(shù)據(jù)。
[0058]步驟S370:當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),根據(jù)所述預(yù)設(shè)的數(shù)據(jù)源目錄,取出下一待處理數(shù)據(jù)并將所述下一待處理數(shù)據(jù)進(jìn)行所述數(shù)據(jù)切割。
[0059]其中,步驟S360和步驟S370是兩個(gè)并行的步驟,實(shí)際無先后順序,在刪除所述臨時(shí)工作目錄中的所述待處理數(shù)據(jù)的同時(shí)即可開始下一待處理數(shù)據(jù)的提取以及分割,從而,所述臨時(shí)工作目錄中正好能夠騰出足夠的空間容納下一次分割得到的分塊數(shù)據(jù)。
[0060]不同于實(shí)施例一的實(shí)現(xiàn)方法,本實(shí)施例中,不需要定時(shí)服務(wù),而是采用一種監(jiān)控和提醒的機(jī)制對數(shù)據(jù)文件的切割時(shí)刻進(jìn)行控制。很容易想到,采用定時(shí)服務(wù)時(shí),定時(shí)的時(shí)長即所述預(yù)設(shè)時(shí)間間隔的取值是一個(gè)不易控制的因素。在取值的時(shí)候,若所述預(yù)設(shè)的時(shí)間間隔過大,會導(dǎo)致上一次上傳的數(shù)據(jù)已經(jīng)處理結(jié)束而新的數(shù)據(jù)還未上傳至分布式文件系統(tǒng),這樣會拖慢系統(tǒng)的處理效率;若是所述預(yù)設(shè)的時(shí)間間隔過小,則容易導(dǎo)致上一次上傳的數(shù)據(jù)還未處理完,新的數(shù)據(jù)就已經(jīng)推送至分布式系統(tǒng),若是數(shù)據(jù)量大,則很容易就導(dǎo)致服務(wù)器內(nèi)存溢出。
[0061]因此,本申請的優(yōu)選實(shí)施例中,將定時(shí)服務(wù)更換成監(jiān)控提醒服務(wù)。所述預(yù)設(shè)的臨時(shí)工作目錄實(shí)際上是一個(gè)數(shù)據(jù)中轉(zhuǎn)站,切割好的分塊數(shù)據(jù)預(yù)先存在這個(gè)數(shù)據(jù)中轉(zhuǎn)站中等待著數(shù)據(jù)上傳線程將其上傳至分布式文件系統(tǒng),對所述臨時(shí)工作目錄進(jìn)行監(jiān)控就能夠?qū)崟r(shí)獲知已經(jīng)切割好的數(shù)據(jù)是否上傳完成。若上傳完成之后,則可以通知下一批數(shù)據(jù)所述臨時(shí)工作目錄中有剩余空間,可以開始進(jìn)行下一次切割。
[0062]這樣的優(yōu)化方式避免了選取定時(shí)服務(wù)的所述預(yù)設(shè)時(shí)間間隔的繁瑣操作,避免所述預(yù)設(shè)時(shí)間間隔選取過大造成的空閑等待時(shí)間過多,也可避免所述預(yù)設(shè)時(shí)間間隔選取過小對服務(wù)器造成的壓力。
[0063]本申請實(shí)施例中,通過啟動定時(shí)服務(wù)對待處理的數(shù)據(jù)進(jìn)行定時(shí)切割并啟動若干線程將數(shù)據(jù)并發(fā)上傳至分布式文件系統(tǒng),改變了現(xiàn)有技術(shù)中進(jìn)行離線數(shù)據(jù)上傳時(shí),用上傳速度緩慢以及同一服務(wù)器數(shù)據(jù)加載過度導(dǎo)致的內(nèi)存溢出,實(shí)現(xiàn)了快速高效的離線數(shù)據(jù)上傳,提升了分布式處理的效率;與此同時(shí),將定時(shí)服務(wù)更換成監(jiān)控提醒服務(wù)也巧妙避免了選取定時(shí)服務(wù)的所述預(yù)設(shè)時(shí)間間隔的繁瑣操作,從而結(jié)束上一次數(shù)據(jù)分割后能夠得到準(zhǔn)確的下一次分割時(shí)間,節(jié)省時(shí)間且合理分配了服務(wù)器的壓力。
[0064]圖4是本申請實(shí)施例四的裝置結(jié)構(gòu)示意圖,結(jié)合圖4,本申請實(shí)施例一種離線數(shù)據(jù)上傳裝置,包括如下的模塊:
[0065]切割模塊410,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù)以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割;
[0066]迀移模塊420,用于將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中;
[0067]上傳模塊430,用于啟動預(yù)設(shè)數(shù)據(jù)量的線程從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。
[0068]其中,所述切割模塊410具體用于:對所述數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大??;
[0069]根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值并根據(jù)所述數(shù)量閾值對所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割。
[0070]其中,所述上傳模塊430具體用于:獲取所述分布式文件系統(tǒng)的系統(tǒng)資源使用量,并根據(jù)所述系統(tǒng)資源使用量計(jì)算所述線程的數(shù)量;其中所述系統(tǒng)資源使用量包括所述分布式系統(tǒng)中服務(wù)器的數(shù)量、服務(wù)器(PU的核數(shù)以及CPU的占用率。
[0071]其中,所述裝上傳模塊430具體用于:當(dāng)判定所述線程的數(shù)量超過預(yù)設(shè)線程數(shù)閾值時(shí),以所述預(yù)設(shè)線程數(shù)閾值更新所述線程的數(shù)量。
[0072]其中,所述裝置還包括監(jiān)測模塊440,所述檢測模塊440具體用于:
[0073]實(shí)時(shí)監(jiān)測所述臨時(shí)工作目錄中每一所述待處理數(shù)據(jù)的所述分塊數(shù)據(jù)的上傳過程;當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),從所述臨時(shí)工作目錄中刪除所述待處理數(shù)據(jù)。
[0074]其中,當(dāng)所述監(jiān)測模塊440監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),所述切割模塊410還用于根據(jù)所述預(yù)設(shè)的數(shù)據(jù)源目錄,取出下一待處理數(shù)據(jù)并將所述下一待處理數(shù)據(jù)進(jìn)行所述數(shù)據(jù)切割。
[0075]圖4所示裝置可以執(zhí)行圖1?圖3所示實(shí)施例的方法,實(shí)現(xiàn)原理和技術(shù)效果參考圖1?圖3所示實(shí)施例,不再贅述。
[0076]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
[0077]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)裝置(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0078]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種離線數(shù)據(jù)上傳方法,其特征在于,包括如下的步驟: 根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù),以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割; 將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中; 啟動預(yù)設(shè)數(shù)據(jù)量的線程,從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,以預(yù)設(shè)的時(shí)間間隔將待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割,具體包括: 對所述數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大??; 根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值,并根據(jù)所述數(shù)量閾值對所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,啟動預(yù)設(shè)數(shù)據(jù)量的線程,具體包括: 獲取所述分布式文件系統(tǒng)的系統(tǒng)資源使用量,并根據(jù)所述系統(tǒng)資源使用量計(jì)算所述線程的數(shù)量;其中所述系統(tǒng)資源使用量包括所述分布式系統(tǒng)中服務(wù)器的數(shù)量、服務(wù)器(PU的核數(shù)以及CPU的占用率。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 當(dāng)判定所述線程的數(shù)量超過預(yù)設(shè)線程數(shù)閾值時(shí),以所述預(yù)設(shè)線程數(shù)閾值更新所述線程的數(shù)量。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 實(shí)時(shí)監(jiān)測所述臨時(shí)工作目錄中每一所述待處理數(shù)據(jù)的所述分塊數(shù)據(jù)的上傳過程; 當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),從所述臨時(shí)工作目錄中刪除所述待處理數(shù)據(jù)。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),根據(jù)所述預(yù)設(shè)的數(shù)據(jù)源目錄,取出下一待處理數(shù)據(jù)并將所述下一待處理數(shù)據(jù)進(jìn)行所述數(shù)據(jù)切割。7.一種離線數(shù)據(jù)上傳裝置,其特征在于,包括如下的模塊: 切割模塊,用于根據(jù)預(yù)設(shè)的數(shù)據(jù)源目錄,啟動定時(shí)服務(wù),以預(yù)設(shè)的時(shí)間間隔取出待處理數(shù)據(jù)并將所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割; 迀移模塊,用于將所述數(shù)據(jù)切割得到的分塊數(shù)據(jù)轉(zhuǎn)移至預(yù)設(shè)的臨時(shí)工作目錄中; 上傳模塊,用于啟動預(yù)設(shè)數(shù)據(jù)量的線程,從所述臨時(shí)工作目錄中讀取所述分塊數(shù)據(jù)并將所述分塊數(shù)據(jù)上傳至分布式文件系統(tǒng)。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述切割模塊具體用于: 對所述數(shù)據(jù)源目錄進(jìn)行分析,獲取下一時(shí)刻進(jìn)行所述數(shù)據(jù)切割的所述待處理數(shù)據(jù)的數(shù)據(jù)量大小; 根據(jù)所述待處理數(shù)據(jù)的數(shù)據(jù)量大小計(jì)算所述數(shù)據(jù)切割的數(shù)量閾值并根據(jù)所述數(shù)量閾值對所述待處理數(shù)據(jù)進(jìn)行數(shù)據(jù)切割。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述上傳模塊具體用于: 獲取所述分布式文件系統(tǒng)的系統(tǒng)資源使用量,并根據(jù)所述系統(tǒng)資源使用量計(jì)算所述線程的數(shù)量;其中所述系統(tǒng)資源使用量包括所述分布式系統(tǒng)中服務(wù)器的數(shù)量、服務(wù)器(PU的核數(shù)以及CPU的占用率。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝上傳模塊具體用于: 當(dāng)判定所述線程的數(shù)量超過預(yù)設(shè)線程數(shù)閾值時(shí),以所述預(yù)設(shè)線程數(shù)閾值更新所述線程的數(shù)量。11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括監(jiān)測模塊,所述檢測模塊具體用于: 實(shí)時(shí)監(jiān)測所述臨時(shí)工作目錄中每一所述待處理數(shù)據(jù)的所述分塊數(shù)據(jù)的上傳過程; 當(dāng)監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),從所述臨時(shí)工作目錄中刪除所述待處理數(shù)據(jù)。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,當(dāng)所述監(jiān)測模塊監(jiān)測到所述臨時(shí)工作目錄中所述待處理的數(shù)據(jù)的所有分塊數(shù)據(jù)都上傳完成時(shí),所述切割模塊還用于根據(jù)所述預(yù)設(shè)的數(shù)據(jù)源目錄,取出下一待處理數(shù)據(jù)并將所述下一待處理數(shù)據(jù)進(jìn)行所述數(shù)據(jù)切割。
【文檔編號】H04L29/08GK105978949SQ201610270829
【公開日】2016年9月28日
【申請日】2016年4月27日
【發(fā)明人】趙富欣
【申請人】樂視控股(北京)有限公司, 樂視網(wǎng)信息技術(shù)(北京)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1