亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種多線程數(shù)據(jù)上傳方法

文檔序號(hào):6636996閱讀:585來(lái)源:國(guó)知局
一種多線程數(shù)據(jù)上傳方法
【專利摘要】提出一種多線程數(shù)據(jù)上傳方法,所述方法配置需要上傳的文件所在源路徑信息、文件需要上傳到HDFS系統(tǒng)的目的路徑信息以及可以使用的線程數(shù)目信息;根據(jù)所述需要上傳的文件的數(shù)據(jù)量和配置的所述線程數(shù)目信息確定每個(gè)線程需要處理的數(shù)據(jù)范圍;基于配置的所述信息和確定的所述數(shù)據(jù)范圍執(zhí)行多線程并行數(shù)據(jù)上傳。所述方法將一個(gè)大的文本文件分為多個(gè)文件并行上傳到HDFS系統(tǒng)中,從而提高寫入速度,大大降低了文件上傳的時(shí)間。
【專利說(shuō)明】一種多線程數(shù)據(jù)上傳方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息存儲(chǔ)【技術(shù)領(lǐng)域】,具體涉及一種多線程數(shù)據(jù)上傳方法。

【背景技術(shù)】
[0002]隨著人類社會(huì)全面進(jìn)入信息時(shí)代,數(shù)據(jù)成為與水、石油同等重要的戰(zhàn)略資源。通過(guò)挖掘海量數(shù)據(jù),能夠使政府和企業(yè)的運(yùn)行決策建立在更加科學(xué)的依據(jù)基礎(chǔ)上,提高決策效率、危機(jī)應(yīng)對(duì)能力和公共服務(wù)水平。大數(shù)據(jù)(big data),或稱巨量資料,指的是所涉及的資料量規(guī)模巨大到無(wú)法通過(guò)目前主流軟件工具,在合理時(shí)間內(nèi)達(dá)到擷取、管理、處理、并整理成為幫助企業(yè)經(jīng)營(yíng)決策的資訊。
[0003]Hadoop Distributed File System(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。運(yùn)行在HDFS之上的程序有很大量的數(shù)據(jù)集。典型的HDFS文件大小是TB級(jí)別,所以,HDFS被調(diào)整成支持大文件,應(yīng)該提供很高的聚合數(shù)據(jù)帶寬,一個(gè)集群中支持?jǐn)?shù)百個(gè)節(jié)點(diǎn),一個(gè)集群中還應(yīng)該支持千萬(wàn)級(jí)別的文件。
[0004]HDFS上的文件來(lái)源有很多途徑,文件服務(wù)器(比如NFS)中的已有文件是一種非常重要的來(lái)源。例如,銀行業(yè)務(wù)系統(tǒng)中從數(shù)據(jù)庫(kù)中卸載的數(shù)據(jù)表,每天會(huì)生成一個(gè)增量文件到文件服務(wù)器,要對(duì)這些文件進(jìn)行挖掘分析,首先要把其上傳到HDFS中。有些分析可能需要的文件很大。傳統(tǒng)的方法使用單機(jī)上傳文件,一方面文件服務(wù)器的帶寬沒(méi)有充分利用,另一方面HDFS各數(shù)據(jù)節(jié)點(diǎn)沒(méi)有被充分利用,所以這種方法用于上傳海量數(shù)據(jù)往往耗時(shí)過(guò)久而無(wú)法現(xiàn)實(shí)應(yīng)用。因此,需要提出一種新的方案,充分利用文件服務(wù)器的帶寬,提高文件上傳效率。


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

[0005]本技發(fā)明提供了一種多線程數(shù)據(jù)上傳方法,充分考慮HDFS的特性,充分利用資源(帶寬、磁盤1等),極大提高了海量數(shù)據(jù)上傳的效率并保證文件行原子性。所述方法包括:
[0006]S1:配置需要上傳的文件所在源路徑信息、文件需要上傳到HDFS系統(tǒng)的目的路徑信息以及可以使用的線程數(shù)目信息;
[0007]S2:根據(jù)所述需要上傳的文件的數(shù)據(jù)量和配置的所述線程數(shù)目信息確定每個(gè)線程需要處理的數(shù)據(jù)范圍;
[0008]S3:基于步驟SI配置的所述信息和步驟S2確定的所述數(shù)據(jù)范圍執(zhí)行多線程并行數(shù)據(jù)上傳。
[0009]特別地:
[0010]所述步驟S2中所述的數(shù)據(jù)范圍包括每個(gè)線程需要上傳的文件數(shù)據(jù)的開始位置偏移量和結(jié)束位置偏移量。
[0011]特別地:
[0012]所述多線程并行數(shù)據(jù)上傳具體包括如下步驟:
[0013]S31:所述線程首先判斷數(shù)據(jù)上傳開始位置偏移量是否為0,如果是,則執(zhí)行步驟S32,否則執(zhí)行步驟S33 ;
[0014]S32:所述線程將所述開始位置偏移量處到所述結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng),并執(zhí)行步驟S34 ;
[0015]S33:所述線程從所述開始位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù),直至讀取到的數(shù)據(jù)為換行符,將所述換行符后到所述結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng);
[0016]S34:從所述結(jié)束位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù)并上傳,直至所讀取到的數(shù)據(jù)為換行符,流程結(jié)束。
[0017]本發(fā)明的有益效果是:將一個(gè)大的文本文件分為多個(gè)文件并行上傳到HDFS系統(tǒng)中,從而提高寫入速度,大大降低了文件上傳的時(shí)間。

【專利附圖】

【附圖說(shuō)明】
[0018]附圖1為本發(fā)明提出的多線程數(shù)據(jù)上傳方法流程圖。
[0019]附圖2為本發(fā)明提出的基于多線程的保障HDFS文件行原子性的數(shù)據(jù)上傳方法的流程圖。

【具體實(shí)施方式】
[0020]下面將結(jié)合附圖詳細(xì)描述本發(fā)明提出的多線程數(shù)據(jù)上傳方法,所述方法能夠保障HDFS文件行原子性。
[0021]本發(fā)明主要考慮可以在保障數(shù)據(jù)行原子性的基礎(chǔ)上并行的上傳數(shù)據(jù),充分利用網(wǎng)絡(luò)I/O和系統(tǒng)資源。每個(gè)線程上傳的數(shù)據(jù)量默認(rèn)為:文件大小/線程總數(shù)。每個(gè)線程上傳文件開始前,先判斷讀取的開始偏移量第一個(gè)字符是否是換行符,如果是不是換行符,則按字節(jié)向后讀取,直至讀取到換行符,然后從換行符后開始上傳文件內(nèi)容,如果開始偏移量為0,則不需要判斷是否是換行符,讀取數(shù)據(jù)并開始上傳。當(dāng)線程上傳文件的內(nèi)容達(dá)到分配的內(nèi)容時(shí),需要繼續(xù)判斷結(jié)束偏移量后的下一個(gè)字符是否是換行符,如不是換行符,則需要繼續(xù)上傳,直至最后一個(gè)字符是換行符。這就實(shí)現(xiàn)了每個(gè)線程在上傳文件內(nèi)容的時(shí)候,開始時(shí)向后移動(dòng),結(jié)束時(shí)也向后移動(dòng),從而保證了文件行原子性。
[0022]參見附圖1,本發(fā)明提出的多線程數(shù)據(jù)上傳方法,所述方法包括:
[0023]S1:配置需要上傳的文件所在源路徑信息、文件需要上傳到HDFS系統(tǒng)的目的路徑信息以及可以使用的線程數(shù)目信息;
[0024]S2:根據(jù)所述需要上傳的文件的數(shù)據(jù)量和配置的所述線程數(shù)目信息確定每個(gè)線程需要處理的數(shù)據(jù)范圍;
[0025]S3:基于步驟SI配置的信息和步驟S2確定的所述數(shù)據(jù)范圍執(zhí)行多線程并行數(shù)據(jù)上傳。
[0026]其中所述的數(shù)據(jù)范圍包括每個(gè)線程需要上傳數(shù)據(jù)的開始位置偏移量和結(jié)束位置偏移量。
[0027]參見附圖2,其示出了為了保障上傳文件的行原子性,每個(gè)線程所執(zhí)行的數(shù)據(jù)上傳步驟流程,其中包括:
[0028]S31:線程首先判斷其數(shù)據(jù)上傳開始位置偏移量是否為0,如果是,則執(zhí)行步驟S32,否則執(zhí)行步驟S33 ;
[0029]本步驟中,如果數(shù)據(jù)上傳開始位置偏移量為0,則表明該線程上傳數(shù)據(jù)的開始位置為整個(gè)文件的開始處。
[0030]S32:所述線程將上傳開始位置偏移量處到上傳結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng),并執(zhí)行步驟S34 ;
[0031]S33:所述線程從開始位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù),直至讀取到的數(shù)據(jù)為換行符,將所述換行符后到結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng);
[0032]此步驟中,線程從開始位置偏移量處向后依次讀取一個(gè)字節(jié)的數(shù)據(jù),每讀取一次就判斷該字節(jié)數(shù)據(jù)是否為換行符,如果不是則順序讀取下一個(gè)字節(jié)的數(shù)據(jù)再執(zhí)行判斷,直至讀取到的一個(gè)字節(jié)的數(shù)據(jù)為換行符為止。
[0033]S34:從結(jié)束位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù)并上傳,直至所讀取到的數(shù)據(jù)為換行符,流程結(jié)束。
[0034]此步驟中,線程從結(jié)束位置偏移量處向后依次讀取一個(gè)字節(jié)的數(shù)據(jù),每讀取一次就判斷該字節(jié)數(shù)據(jù)是否為換行符,如果不是則上傳該數(shù)據(jù),并順序讀取下一個(gè)字節(jié)的數(shù)據(jù)再執(zhí)行判斷和上傳步驟,直至讀取到的一個(gè)字節(jié)的數(shù)據(jù)為換行符為止。
[0035]當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種多線程數(shù)據(jù)上傳方法,其特征在于,包括: S1:配置需要上傳的文件所在源路徑信息、文件需要上傳到HDFS系統(tǒng)的目的路徑信息以及可以使用的線程數(shù)目信息; S2:根據(jù)所述需要上傳的文件的數(shù)據(jù)量和配置的所述線程數(shù)目信息確定每個(gè)線程需要處理的數(shù)據(jù)范圍; S3:基于步驟SI配置的所述信息和步驟S2確定的所述數(shù)據(jù)范圍執(zhí)行多線程并行數(shù)據(jù)上傳。
2.如權(quán)利要求1所述的方法,其特征在于: 所述步驟S2中所述的數(shù)據(jù)范圍包括每個(gè)線程需要上傳的文件數(shù)據(jù)的開始位置偏移量和結(jié)束位置偏移量。
3.如權(quán)利要求2所述的方法,其特征在于: 所述多線程并行數(shù)據(jù)上傳具體包括如下步驟: 531:所述線程首先判斷數(shù)據(jù)上傳開始位置偏移量是否為O,如果是,則執(zhí)行步驟S32,否則執(zhí)行步驟S33 ; 532:所述線程將所述開始位置偏移量處到所述結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng),并執(zhí)行步驟S34; 533:所述線程從所述開始位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù),直至讀取到的數(shù)據(jù)為換行符,將所述換行符后到所述結(jié)束位置偏移量處的數(shù)據(jù)上傳到HDFS系統(tǒng); S34:從所述結(jié)束位置偏移量處向后依次讀取每一字節(jié)數(shù)據(jù)并上傳,直至所讀取到的數(shù)據(jù)為換行符,流程結(jié)束。
【文檔編號(hào)】G06F17/30GK104408147SQ201410722793
【公開日】2015年3月11日 申請(qǐng)日期:2014年12月2日 優(yōu)先權(quán)日:2014年12月2日
【發(fā)明者】金洪殿, 辛國(guó)茂, 劉偉, 盧軍佐 申請(qǐng)人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1