[發明專利]一種多線程數據上傳方法在審
| 申請號: | 201410722793.8 | 申請日: | 2014-12-02 |
| 公開(公告)號: | CN104408147A | 公開(公告)日: | 2015-03-11 |
| 發明(設計)人: | 金洪殿;辛國茂;劉偉;盧軍佐 | 申請(專利權)人: | 浪潮(北京)電子信息產業有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京安信方達知識產權代理有限公司 11262 | 代理人: | 王丹;李丹 |
| 地址: | 100085 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多線程 數據 上傳 方法 | ||
技術領域
本發明涉及信息存儲技術領域,具體涉及一種多線程數據上傳方法。
背景技術
隨著人類社會全面進入信息時代,數據成為與水、石油同等重要的戰略資源。通過挖掘海量數據,能夠使政府和企業的運行決策建立在更加科學的依據基礎上,提高決策效率、危機應對能力和公共服務水平。大數據(big?data),或稱巨量資料,指的是所涉及的資料量規模巨大到無法通過目前主流軟件工具,在合理時間內達到擷取、管理、處理、并整理成為幫助企業經營決策的資訊。
Hadoop?Distributed?File?System(HDFS)被設計成適合運行在通用硬件(commodity?hardware)上的分布式文件系統。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。運行在HDFS之上的程序有很大量的數據集。典型的HDFS文件大小是TB級別,所以,HDFS被調整成支持大文件,應該提供很高的聚合數據帶寬,一個集群中支持數百個節點,一個集群中還應該支持千萬級別的文件。
HDFS上的文件來源有很多途徑,文件服務器(比如NFS)中的已有文件是一種非常重要的來源。例如,銀行業務系統中從數據庫中卸載的數據表,每天會生成一個增量文件到文件服務器,要對這些文件進行挖掘分析,首先要把其上傳到HDFS中。有些分析可能需要的文件很大。傳統的方法使用單機上傳文件,一方面文件服務器的帶寬沒有充分利用,另一方面HDFS各數據節點沒有被充分利用,所以這種方法用于上傳海量數據往往耗時過久而無法現實應用。因此,需要提出一種新的方案,充分利用文件服務器的帶寬,提高文件上傳效率。
發明內容
本技發明提供了一種多線程數據上傳方法,充分考慮HDFS的特性,充分利用資源(帶寬、磁盤IO等),極大提高了海量數據上傳的效率并保證文件行原子性。所述方法包括:
S1:配置需要上傳的文件所在源路徑信息、文件需要上傳到HDFS系統的目的路徑信息以及可以使用的線程數目信息;
S2:根據所述需要上傳的文件的數據量和配置的所述線程數目信息確定每個線程需要處理的數據范圍;
S3:基于步驟S1配置的所述信息和步驟S2確定的所述數據范圍執行多線程并行數據上傳。
特別地:
所述步驟S2中所述的數據范圍包括每個線程需要上傳的文件數據的開始位置偏移量和結束位置偏移量。
特別地:
所述多線程并行數據上傳具體包括如下步驟:
S31:所述線程首先判斷數據上傳開始位置偏移量是否為0,如果是,則執行步驟S32,否則執行步驟S33;
S32:所述線程將所述開始位置偏移量處到所述結束位置偏移量處的數據上傳到HDFS系統,并執行步驟S34;
S33:所述線程從所述開始位置偏移量處向后依次讀取每一字節數據,直至讀取到的數據為換行符,將所述換行符后到所述結束位置偏移量處的數據上傳到HDFS系統;
S34:從所述結束位置偏移量處向后依次讀取每一字節數據并上傳,直至所讀取到的數據為換行符,流程結束。
本發明的有益效果是:將一個大的文本文件分為多個文件并行上傳到HDFS系統中,從而提高寫入速度,大大降低了文件上傳的時間。
附圖說明
附圖1為本發明提出的多線程數據上傳方法流程圖。
附圖2為本發明提出的基于多線程的保障HDFS文件行原子性的數據上傳方法的流程圖。
具體實施方式
下面將結合附圖詳細描述本發明提出的多線程數據上傳方法,所述方法能夠保障HDFS文件行原子性。
本發明主要考慮可以在保障數據行原子性的基礎上并行的上傳數據,充分利用網絡I/O和系統資源。每個線程上傳的數據量默認為:文件大小/線程總數。每個線程上傳文件開始前,先判斷讀取的開始偏移量第一個字符是否是換行符,如果是不是換行符,則按字節向后讀取,直至讀取到換行符,然后從換行符后開始上傳文件內容,如果開始偏移量為0,則不需要判斷是否是換行符,讀取數據并開始上傳。當線程上傳文件的內容達到分配的內容時,需要繼續判斷結束偏移量后的下一個字符是否是換行符,如不是換行符,則需要繼續上傳,直至最后一個字符是換行符。這就實現了每個線程在上傳文件內容的時候,開始時向后移動,結束時也向后移動,從而保證了文件行原子性。
參見附圖1,本發明提出的多線程數據上傳方法,所述方法包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浪潮(北京)電子信息產業有限公司,未經浪潮(北京)電子信息產業有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410722793.8/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





