[發明專利]面向海量數據的分布式處理方法有效
| 申請號: | 201110424530.5 | 申請日: | 2011-12-16 |
| 公開(公告)號: | CN102521367A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 楊廣文;耿益鋒;黃小猛 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 面向 海量 數據 分布式 處理 方法 | ||
技術領域
本發明涉及海量數據的分布式處理技術領域,尤其涉及一種面向以數組形式存儲的海量數據的分布式處理方法。
背景技術
隨著互聯網的快速發展,網絡產生的數據越來越多,如何存儲和處理這些海量數據,是一個亟待解決的問題。MapReduce是由Google提出的分布式處理框架,用戶只要編寫“Map”和“Reduce”中的處理過程,MapReduce系統就可以使用戶實現對海量數據的分布式并行處理,并提供自動的任務容錯和負載均衡。結合Google的分布式文件系統(GFS),MapReduce可以充分利用數據的局部性,從而大大減少網絡傳輸的數據量。Hadoop是MapReduce和GFS架構的開源實現,被Yahoo!、Facebook等許多公司使用。由于MapReduce框架的高效易用、可容錯和可擴展,它被廣泛應用于文檔聚類、機器學習、日志分析等應用程序中。
隨著儀器精度,數據采集和研究方法的快速發展,科學研究收集和生成的數據也越來越多。這些數據大多以數據的形式(如NetCDF、HDF文件格式)存儲在網絡文件系統(NFS)和并行文件系統上,用戶可以編寫串行程序用單機進行處理,但是顯然單機的處理能力無法應對海量的科學數據;用戶可以編寫MPI程序來進行多機處理,但是MPI的調試、容錯和負載均衡使得完成一個簡單的處理程序都非常費時費力。
MapReduce的分布式處理框架可以克服MPI多機處理的缺點,但是MapReduce并行處理框架最初是針對Web數據而設計的,并不能簡單地應用到以數組方式存儲的科學數據上。另外,科學家使用MapReduce框架處理數據的時候需要自己編寫相應的MapReduce處理程序,雖然相比MPI多機程序,已經減少了很多工作量,但還是有一定的學習門檻和工作量。
Hive是架設于MapReduce之上的開源SQL引擎,提供數據查詢和分析功能。Hive能夠提供SQL語義,并將SQL語義轉化為MapReduce任務進行執行。但是Hive并不能直接應用于科學數據處理,因為Hive中的處理都是基于表的列和行進行的,而以數組形式存儲的科學數據沒有表的列和行的概念。
發明內容
(一)要解決的技術問題
本發明要解決的技術問題是:如何設計一種對于以數組形式存儲的海量數據的分布式處理方法。
(二)技術方案
為解決上述技術問題,本發明提供了一種面向海量數據的分布式處理方法,包括以下步驟:
S1:根據SQL命令以及數組文件內的變量信息計算輸出變量和條件變量集合中的主變量,如果主變量存在,執行步驟S2,其中,所述數組文件是以數組形式存儲的數據文件;
S2:判斷是否進行條件變量的選擇優化,如果否,那么在讀取數據時,遍歷數組文件中的主變量的整個索引范圍;如果是,那么先根據條件變量的選擇范圍計算輸出變量的維度范圍,并根據該維度范圍讀取數據;
S3:判斷數組是否合并存儲,如果否,那么讀取數組組成數據元組;如果是,那么不展開讀取的數據,且生成另一個數據元組,所生成的數據元組中每一個單元都包含該列對應變量的數據值的集合;
S4:SQL引擎根據SQL命令以及表中定義的各列的數據類型生成MapReduce任務接收到的數據元組,并生成結果數據元組;
S5:對于生成的結果數據元組,判斷是否需要將其以數組文件存儲,如果否,那么就按照保存為其他文件格式的方法處理該結果數據元組;如果是,那么判斷結果數據元組中的數組是否被合并存儲,如果未被合并存儲,則遍歷結果數據的行,每一列生成一個變量的數組,并按照表中定義的列的數據類型將數組存儲到數組文件,如果已被合并存儲,那么將結果數據元組中每個單元的內容取出作為一個變量數組,并按照表中定義的列的數據類型將數組存儲到數組文件。
優選地,步驟S3中,如果數據不進行合并存儲,則所述數據元組的個數取決于主變量的維度范圍,每個數據元組包含輸出變量和條件變量在當前主變量索引處的值。
優選地,所述海量數據包括多個所述數據文件。
(三)有益效果
本發明設計了一種基于MapReduce的、對于以數組形式存儲的海量數據的分布式處理方法,使得用戶可以使用SQL命令對以數組形式存儲的海量數據進行分布式處理,該方法具有使用簡單、運行高效,可容錯的特點。
附圖說明
圖1為本發明實施例的方法流程圖;
圖2為多維數組到數據庫表的行和列的相互映射例示圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110424530.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





