国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種大數(shù)據(jù)存儲優(yōu)化方法

      文檔序號:6505773閱讀:522來源:國知局
      一種大數(shù)據(jù)存儲優(yōu)化方法
      【專利摘要】本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其是面向海-云協(xié)同的一種大數(shù)據(jù)存儲優(yōu)化方法。所述的方法包括數(shù)據(jù)預處理、計算優(yōu)化和海量數(shù)據(jù)優(yōu)化,數(shù)據(jù)預處理包括數(shù)據(jù)采集、多源數(shù)據(jù)組織與匯聚、數(shù)據(jù)冗余處理、數(shù)據(jù)壓縮存儲;計算優(yōu)化包括HDFS文件傳輸優(yōu)化和Map/Reduce并行計算優(yōu)化;和海量數(shù)據(jù)優(yōu)化包括數(shù)據(jù)災(zāi)備、數(shù)據(jù)加密、CCIndex索引和CCT備份。本發(fā)明可以應(yīng)用于云平臺的大數(shù)據(jù)存儲中。
      【專利說明】一種大數(shù)據(jù)存儲優(yōu)化方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,尤其是面向海-云協(xié)同的一種大數(shù)據(jù)存儲優(yōu)化方法。
      【背景技術(shù)】
      [0002]隨著信息技術(shù)的快速發(fā)展,傳統(tǒng)的持久化存儲方案已經(jīng)從構(gòu)架上越來越難以適應(yīng)信息業(yè)務(wù)的發(fā)展;Hadoop分布式系統(tǒng)通過分布式算法,將數(shù)據(jù)的訪問和存儲分布在大量服務(wù)器之中,在可靠地多備份存儲的同時還能將訪問分布在集群中的各個服務(wù)器之上,是傳統(tǒng)存儲構(gòu)架的一個顛覆性的發(fā)展。但是機遇與挑戰(zhàn)并存,開源分布式架構(gòu)在解決分布式應(yīng)用時卻顯得格外笨重,特別是對大數(shù)據(jù)存儲及頻繁文件寫入、讀取操作時性能響應(yīng)不足。

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

      [0003]本發(fā)明解決的技術(shù)問題在于提供面向海-云協(xié)同的一種大數(shù)據(jù)存儲優(yōu)化方法,有效實現(xiàn)對打數(shù)據(jù)存儲的優(yōu)化。
      [0004]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
      [0005]所述的方法包括數(shù)據(jù)預處理、計算優(yōu)化和海量數(shù)據(jù)優(yōu)化,數(shù)據(jù)預處理包括數(shù)據(jù)采集、多源數(shù)據(jù)組織與匯聚、數(shù)據(jù)冗余處理、數(shù)據(jù)壓縮存儲;計算優(yōu)化包括HDFS文件傳輸優(yōu)化和Map/Reduce并行計算優(yōu)化;和海量數(shù)據(jù)優(yōu)化包括數(shù)據(jù)災(zāi)備、數(shù)據(jù)加密、CCIndex索引和CCT備份;客戶端提交的數(shù)據(jù)經(jīng)數(shù)據(jù)采集采集后,由多源數(shù)據(jù)組織與匯聚、數(shù)據(jù)冗余處理進行規(guī)范化處理,并采用RCFile進行壓縮存儲,數(shù)據(jù)水平拆分,引入分塊、分片機制先分塊再分片,塊內(nèi)采用按行存儲,分片內(nèi)按列存儲;然后,在計算優(yōu)化中,采用CCIndex將數(shù)據(jù)隨機遍歷轉(zhuǎn)化為按行索引遍歷,采用CCT進行記錄水平行復制完成數(shù)據(jù)增量備份;海量數(shù)據(jù)優(yōu)化時,并行計算組件完成HDFS文件系統(tǒng)和Map/Reduce計算模型配置類優(yōu)化,與G_cloud云平臺協(xié)同無縫集成,靈活使用G-cloud云平臺提供的基礎(chǔ)設(shè)施及基礎(chǔ)服務(wù)。
      [0006]存儲優(yōu)化的系統(tǒng)設(shè)置為:
      [0007]第一步,Linux系統(tǒng)文件掛載參數(shù)優(yōu)化,增加noatime參數(shù),;
      [0008]第二步,NameNode節(jié)點參數(shù)配置優(yōu)化,dfs.block, size海量數(shù)據(jù)文件處理設(shè)置為64M*N (N=l, 2, 3, 4), dfs.namenode.handler, count 默認值設(shè)置成 64 ;
      [0009]第三步,DataNode節(jié)點優(yōu)化,dfs.datanode.handler, count 的 DataNode 節(jié)點的遠程調(diào)用開啟的服務(wù)線程數(shù)量設(shè)置為8 ;
      [0010]第四步,job.tracker 監(jiān)控節(jié)點配置優(yōu)化,mapred.job.tracker, handler,count-job tracker上開啟的處理task trackers傳過來的RPC的服務(wù)線程的數(shù)量設(shè)置為64 ;mapred.map.tasks-每個job的map任務(wù)數(shù)量,設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值;mapred.reduce, tasks-每個job的reduce任務(wù)數(shù)量,設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值;
      [0011]第五步,task, tracker監(jiān)控節(jié)點配置優(yōu)化,[0012]mapred.tasktracker.map.tasks, maximum,一個 task tracker 上可以同時運行的map任務(wù)的最大數(shù)量,設(shè)置為服務(wù)器CPU內(nèi)核數(shù)目或者數(shù)目減I ;
      [0013]mapred.tasktracker.reduce, tasks, maximum 一個 task tracker 上可以同時控制同時運行的task的數(shù)量設(shè)置為2 ;TaskTracker.http, threads是HTTPserver上的線程數(shù),運行在每個TaskTracker上,用于處理maptask輸出,可以設(shè)置為40?50 ;
      [0014]第六步,map配置優(yōu)化,i0.sort, mb 可設(shè)置為 200M,i0.sort, factor 屬性,int 類型,Map端和Reduce端使用該屬性設(shè)置在Map端和Reduce端都使用到的對文件Sort時一次合并的最大流設(shè)置為100 ;i0.file, buffer, size屬性,iMapReduce作業(yè)使用該屬性設(shè)置MapReduce作業(yè)的1/0操作中所提供的緩沖區(qū)的大小,以字節(jié)為單位,調(diào)整為64KBorl28KB, tasktracker.http, threads屬性,int類型,Map端使用該屬性設(shè)置集群中每個tasktracker用于將map輸出傳給reducer的工作線程的數(shù)量提高至40-50之間;
      [0015]第七步,reduce配置優(yōu)化,mapred.reduce, parallel, copies 增加 reduce 端復制過程的并行數(shù)調(diào)整為20 ;mapred.child, java.0pts屬性,調(diào)整為2MB ;
      [0016]mapred.job.shuffle, input, buffer, percent 屬性,適當增大比例使 Map 輸出不被溢寫到磁盤;mapred.job.shuffle, merge, percent屬性,適當增大其比例減少磁盤溢寫次數(shù);mapred.1nmem.merge, threshold屬性,當Reduce函數(shù)內(nèi)存需求很少時,可將該屬性設(shè)置為 0,由 mapred.job.shuffle, merge, percent 屬性單獨控制溢寫過程;mapred.job.reduce, input, buffer, percent 屬性,設(shè)置為 1.0。
      [0017]HDFS分布式文件存儲工作流程是,
      [0018]第一步,客戶端通過身份驗證,建立TCP/IP連接,通過一個可配置的端口連接到NameNode并發(fā)起RPC遠程請求;
      [0019]第二步,NameNode檢查待創(chuàng)建的文件是否已經(jīng)存在,創(chuàng)建者是否有權(quán)限進行操作;成功則為文件創(chuàng)建一個記錄,否則向客戶端拋出異常;
      [0020]第三步,客戶端寫入文件,將文件切分成多個packets,并在內(nèi)部以數(shù)據(jù)隊列"data queue"的形式管理這些packets,同時向NameNode申請新的blocks,獲取用來存儲replicas的合適的DataNode列表,列表的大小根據(jù)在NameNode中對replication的設(shè)置而定;
      [0021]第四步,以pipeline的形式將packet寫入所有的replicas中,把packet以流的方式寫入第一個DataNode,該DataNode把該packet存儲之后,再將其傳遞給在此pipeline 中的下一個 DataNode,直到最后一個 DataNode ;
      [0022]第五步,如果傳輸過程中,有某個DataNode出現(xiàn)了故障,那么當前的pipeline會被關(guān)閉,出現(xiàn)故障的DataNode會從當前的pipeline中移除,剩余的block會繼續(xù)剩下的DataNode中繼續(xù)以pipeline的形式傳輸,同時NameNode會分配一個新的DataNode,保持replicas設(shè)定的數(shù)量,寫入操作完成;
      [0023]第六步,NameNode根據(jù)存儲的數(shù)據(jù)塊地址將通信地址鏈接到對應(yīng)的DataNode塊中,返回文件的部分或者全部block列表;
      [0024]第七步,NameNode選擇最近的DataNode節(jié)點,來讀取block列表,開始文件讀取文件。
      [0025]數(shù)據(jù)處理詳細流程為:[0026]第一步,從信息源、信息體、用戶需求等多個視角,分析多源海量信息的可用性特征;
      [0027]第二步,多源數(shù)據(jù)在組織和匯聚后,可能會產(chǎn)生多個相同副本;當新增文件進行匯聚存儲時,系統(tǒng)監(jiān)測到事件,計算出新文件的摘要值,向系統(tǒng)請求新建文件;系統(tǒng)對比摘要值是否已存在于系統(tǒng),如果不存在,則返回信息允許客戶端匯聚存儲數(shù)據(jù)、新建此文件;如果摘要值已存在,則系統(tǒng)新建該文件及對應(yīng)的權(quán)限、屬性信息,但文件數(shù)據(jù)直接引用已有數(shù)據(jù)內(nèi)容,無需再匯聚存入系統(tǒng);
      [0028]第三步,采用RCFile對數(shù)據(jù)完成壓縮,將關(guān)系數(shù)據(jù)水平拆分,分片內(nèi)按列序進行存儲,將分布式數(shù)據(jù)處理系統(tǒng)中以記錄為單位的存儲結(jié)構(gòu)變?yōu)橐粤袨閱挝坏拇鎯Y(jié)構(gòu);
      [0029]第四步,非結(jié)構(gòu)化文件數(shù)據(jù)存儲由數(shù)據(jù)集群負責,引入數(shù)據(jù)分塊和分塊副本機制進行存儲,并增加數(shù)據(jù)索引及樹節(jié)點優(yōu)化;
      [0030]第五步,采用傳輸信道加密和數(shù)據(jù)存儲加密方式,對稱加密與非對稱加密結(jié)合使用;
      [0031]第六步,采用磁盤陣列對生產(chǎn)數(shù)據(jù)進行實時備份;海量數(shù)據(jù)處理優(yōu)化引入CCIndex,將數(shù)據(jù)隨機遍歷轉(zhuǎn)化為高效的按行索引遍歷,引入CCT進行記錄水平行復制完成數(shù)據(jù)增量備份;
      [0032]第七步,同步接入G-cloud云平臺,使用計算資源、虛擬化資源、管理資源等進行海量數(shù)據(jù)預處理、濾重與挖掘分析,同時通過引入海量數(shù)據(jù)查詢索引及樹節(jié)點優(yōu)化等操作。
      [0033]HDFS分布式文件讀取詳細流程為:
      [0034]第一步,客戶端通過一個可配置的端口連接到NameNode,該連接通過TCP/IP協(xié)議
      建立;
      [0035]第二步,客戶端通過ClientProtocol 與 NameNode 交互;
      [0036]第三步,DataNode使用 DatanodeProtocol 與 NameNode 交互,并建立與 NameNode連接;
      [0037]第四步,DataNode通過周期性的向NameNode發(fā)送心跳和數(shù)據(jù)塊來保持和NameNode的通信連接;
      [0038]第五步,數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的屬性,即數(shù)據(jù)塊屬于哪個文件,數(shù)據(jù)塊地址ID,修改時間等;
      [0039]第六步,NameNode響應(yīng)來自客戶端和DataNode的RPC請求,并從所有的DataNode接收心跳信號和塊狀態(tài)報告;
      [0040]第七步,返回塊狀態(tài)報告給客戶端,狀態(tài)報告包括了某個DataNode所有的數(shù)據(jù)塊列表;
      [0041]第八步,客戶端根據(jù)塊報告中返回的地址信息,選取DataNode節(jié)點讀取數(shù)據(jù);
      [0042]第九步,關(guān)閉DataNode連接,一次讀取結(jié)束。
      [0043]本發(fā)明實現(xiàn)了 HDFS文件傳輸優(yōu)化、Map/Reduce并行計算優(yōu)化、海量數(shù)據(jù)查詢優(yōu)化,將達到以下性能指標:實現(xiàn)了穩(wěn)定、高效的大數(shù)據(jù)存儲優(yōu)化方法,海量數(shù)據(jù)查詢處理優(yōu)化,具有良好的可擴展性,能支持不少于100PB級的存儲容量,支持擴展到EB級存儲;具有良好的可靠性、安全性,對關(guān)鍵數(shù)據(jù)可實現(xiàn)多副本冗余保護機制,副本數(shù)不低于3 ;具有異地數(shù)據(jù)災(zāi)備系統(tǒng),基于G-cloud平臺實現(xiàn)資源彈性取用,系統(tǒng)具有良好的響應(yīng)速度,支持海 量數(shù)據(jù)分析與挖掘服務(wù)。
      【專利附圖】

      【附圖說明】
      [0044]下面結(jié)合附圖對本發(fā)明進一步說明;
      [0045]圖1是本發(fā)明系統(tǒng)架構(gòu)示意圖;
      [0046]圖2是非結(jié)構(gòu)化數(shù)據(jù)存儲體系示意圖;
      [0047]圖3是海-云協(xié)同平臺HDFS分布式文件系統(tǒng)示意圖;
      [0048]圖4是本發(fā)明網(wǎng)絡(luò)拓撲示意圖。
      【具體實施方式】
      [0049]本發(fā)明提出一種基于G-cloud云平臺的大數(shù)據(jù)存儲優(yōu)化方法,JobClient客戶端將數(shù)據(jù)提交到數(shù)據(jù)采集系統(tǒng),海量數(shù)據(jù)采用數(shù)據(jù)預處理技術(shù)將JobClient客戶端提交數(shù)據(jù)進行規(guī)范化處理,數(shù)據(jù)壓縮技術(shù)采用高效的存儲結(jié)構(gòu)RCFile,將數(shù)據(jù)水平拆分,引入分塊、分片機制即先分塊再分片,塊內(nèi)采用按行存儲,分片內(nèi)按列存儲;海量數(shù)據(jù)處理優(yōu)化引入CCIndex,將數(shù)據(jù)隨機遍歷轉(zhuǎn)化為高效的按行索引遍歷,引入CCT進行記錄水平行復制完成數(shù)據(jù)增量備份;并行計算組件完成HDFS文件系統(tǒng)和Map/Reduce計算模型配置類優(yōu)化,提供高度容錯性和高吞吐量的海量數(shù)據(jù)存儲方案,顯著提高文件處理及計算性能,與G-cloud云平臺協(xié)同無縫集成,靈活使用G-cloud云平臺提供的基礎(chǔ)設(shè)施及基礎(chǔ)服務(wù),支持大規(guī)模計算資源、存儲資源、網(wǎng)絡(luò)資源虛擬化和數(shù)據(jù)分析管理。
      [0050]如圖1所示,實施本發(fā)明存儲優(yōu)化方法的詳細流程為:
      [0051]第一步,Linux系統(tǒng)文件掛載參數(shù)優(yōu)化,增加noatime參數(shù),Linux提供了 noatime這個參數(shù)來禁止記錄最近一次訪問時間戳,文件系統(tǒng)掛載的時,能大幅提高磁盤IO的效率,修改設(shè)置后只需要重新掛載文件系統(tǒng)、不需要重啟就可以生效;
      [0052]第二步,NameNode節(jié)點參數(shù)配置優(yōu)化,dfs.block, size海量數(shù)據(jù)文件處理設(shè)置為64M*N(N= I, 2, 3, 4), dfs.namenode.handler, count 默認值是 10,海量數(shù)據(jù)文件集群時設(shè)置成64 ;
      [0053]第三步,DataNode節(jié)點優(yōu)化,dfs.datanode.handler, count, DataNode 節(jié)點的遠程調(diào)用開啟的服務(wù)線程數(shù)量,默認為3,本發(fā)明設(shè)置為8 ;
      [0054]第四步,job.tracker 監(jiān)控節(jié)點配置優(yōu)化,mapred.job.tracker, handler,count-job tracker上開啟的處理task trackers傳過來的RPC的服務(wù)線程的數(shù)量,一般的設(shè)置為task tracker節(jié)點數(shù)量的4%,本發(fā)明設(shè)置為64。mapred.map.tasks-每個job的map任務(wù)數(shù)量,經(jīng)常設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值。mapred.reduce,tasks-每個job的reduce任務(wù)數(shù)量,經(jīng)常設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值;
      [0055]第五步,task, tracker監(jiān)控節(jié)點配置優(yōu)化,
      [0056]mapred.tasktracker.map.tasks, maximum, 一個 task tracker 上可以同時運行的map任務(wù)的最大數(shù)量,設(shè)置為服務(wù)器CPU內(nèi)核數(shù)目或者數(shù)目減I時運行效率最高。mapred.tasktracker.reduce, tasks, maximum 一個 task tracker 上可以同時控制同時運行的 task的數(shù)量,本發(fā)明設(shè)置為2。TaskTracker.http, threads是HTTPserver上的線程數(shù),運行在每個TaskTracker上,用于處理maptask輸出,大數(shù)據(jù)集群可以設(shè)置為40?50 ;
      [0057]第六步,map配置優(yōu)化,i0.sort, mb默認10對于大集群可設(shè)置為200M, i0.sort,factor屬性,int類型,Map端和Reduce端使用該屬性設(shè)置在Map端和Reduce端都使用到的對文件Sort時一次合并的最大流,其默認值是10,增加到100。i0.file, buffer, size屬性,iMapReduce作業(yè)使用該屬性設(shè)置MapReduce作業(yè)的1/0操作中所提供的緩沖區(qū)的大小,以字節(jié)為單位,默認是 4KB,調(diào)整為 64KB orl28KB, tasktracker.http, threads 屬性,int類型,Map端使用該屬性設(shè)置集群中每個tasktracker用于將map輸出傳給reducer的工作線程的數(shù)量,默認是40,可以將其提高至40-50之間,能夠增加并線線程數(shù),提高集群性能;
      [0058]第七步,reduce配置優(yōu)化,mapred.reduce, parallel, copies 增加 reduce 端復制過程的并行數(shù),默認值5,本發(fā)明調(diào)整為20。mapred.child, java.0pts屬性,調(diào)整為2MB,提高 MapReduce 作業(yè)的性能。mapred.job.shuffle, input, buffer, percent 屬性,默認是
      0.70,適當增大比例使Map輸出不被溢寫到磁盤;
      [0059]mapred.job.shuffle, merge, percent屬性,適當增大其比例能夠減少磁盤溢寫次數(shù)。mapred.1nmem.merge, threshold屬性,默認為1000。當Reduce函數(shù)內(nèi)存需求很少時,可將該屬性設(shè)置為0,即沒有閾值限制,由mapred.job.shuffle, merge, percent屬性單獨控制溢寫過程。mapred.job.reduce, input, buffer, percent 屬性,設(shè)置為 1.0 ;
      [0060]第八步,海量數(shù)據(jù)處理優(yōu)化引入CCIndex,將數(shù)據(jù)隨機遍歷轉(zhuǎn)化為高效的按行索引遍歷,引入CCT進行記錄水平行復制完成數(shù)據(jù)增量備份;
      [0061]如圖2所示
      [0062]非結(jié)構(gòu)化數(shù)據(jù)存儲詳細流程為:
      [0063]第一步,海量多源數(shù)據(jù)中常含有不潔和不規(guī)范的格式,將對應(yīng)用系統(tǒng)的使用、統(tǒng)計分析造成潛在風險。必須通過數(shù)據(jù)預處理規(guī)范將數(shù)據(jù)轉(zhuǎn)化為系統(tǒng)平臺的標準化數(shù)據(jù);
      [0064]第二步,從信息源、信息體、用戶需求等多個視角,分析多源海量信息的可用性特征,建立滿足信息演化應(yīng)用的可用性評估推理模型;
      [0065]第三步,多源數(shù)據(jù)在組織和匯聚后,同份文件可能會產(chǎn)生多個相同副本。當新增文件進行匯聚存儲時,系統(tǒng)監(jiān)測到事件,計算出新文件的摘要值,向系統(tǒng)請求新建文件。系統(tǒng)對比摘要值是否已存在于系統(tǒng),如果不存在,則返回信息允許客戶端匯聚存儲數(shù)據(jù)、新建此文件。如果摘要值已存在,則系統(tǒng)新建該文件及對應(yīng)的權(quán)限、屬性信息,但文件數(shù)據(jù)直接引用已有數(shù)據(jù)內(nèi)容,無需再匯聚存入系統(tǒng);
      [0066]第四步,本發(fā)明采用一種高效的數(shù)據(jù)存儲結(jié)構(gòu)-RCFile (Record Columnar
      File),對數(shù)據(jù)完成壓縮,RCFile數(shù)據(jù)存儲結(jié)構(gòu)基于Hadoop系統(tǒng),RCFile存儲結(jié)構(gòu)結(jié)合了行存儲和列存儲的優(yōu)點,遵循“先水平劃分,再垂直劃分”的設(shè)計理念。
      [0067]第五步,非結(jié)構(gòu)化文件數(shù)據(jù)存儲由數(shù)據(jù)集群負責,引入數(shù)據(jù)分塊和分塊副本機制進行存儲,為加快數(shù)據(jù)的檢索速度,增加數(shù)據(jù)索引及樹節(jié)點優(yōu)化;
      [0068]第六步,為增加數(shù)據(jù)安全性,采用傳輸信道加密和數(shù)據(jù)存儲加密方式,對稱加密算法與非對稱加密算法結(jié)合使用;
      [0069]第七步,采用磁盤陣列對生產(chǎn)數(shù)據(jù)進行實時備份。
      [0070]如圖3所示
      [0071]海-云協(xié)同分布式文件存儲的詳細流程為:[0072]第一步,客戶端通過一個可配置的端口連接到NameNode,該連接通過TCP/IP協(xié)議
      建立;
      [0073]第二步,客戶端通過ClientProtocol 與 NameNode 交互;
      [0074]第三步,DataNode使用 DatanodeProtocol 與 NameNode 交互,并建立與 NameNode連接;
      [0075]第四步,DataNode通過周期性的向NameNode發(fā)送心跳和數(shù)據(jù)塊來保持和NameNode的通信連接;
      [0076]第五步,數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的屬性,即數(shù)據(jù)塊屬于哪個文件,數(shù)據(jù)塊地址ID,修改時間等;
      [0077]第六步,NameNode響應(yīng)來自客戶端和DataNode的RPC請求,并從所有的DataNode接收心跳信號和塊狀態(tài)報告;
      [0078]第七步,返回塊狀態(tài)報告給客戶端,狀態(tài)報告包括了某個DataNode所有的數(shù)據(jù)塊列表;
      [0079]第八步,客戶端根據(jù)塊報告中返回的地址信息,選取DataNode節(jié)點讀取數(shù)據(jù);
      [0080]第九步,關(guān)閉DataNode連接,讀取結(jié)束
      [0081]如圖4所示,本發(fā)明由海量數(shù)據(jù)存儲管理、分布式數(shù)據(jù)平臺和G-cloud云操作系統(tǒng)三部分組成;客戶端通過身份驗證,建立TCP/IP連接,通過一個可配置的端口連接到NameNode并發(fā)起RPC請求,與分布式文件處理系統(tǒng)進行數(shù)據(jù)存儲交互,底層接入云平臺,靈活使用云基礎(chǔ)設(shè)施及基礎(chǔ)服務(wù)進行數(shù)據(jù)挖掘與分析;完成海-云協(xié)同計算服務(wù)。
      【權(quán)利要求】
      1.一種大數(shù)據(jù)存儲優(yōu)化方法,其特征在于:所述的方法包括數(shù)據(jù)預處理、計算優(yōu)化和海量數(shù)據(jù)優(yōu)化,數(shù)據(jù)預處理包括數(shù)據(jù)采集、多源數(shù)據(jù)組織與匯聚、數(shù)據(jù)冗余處理、數(shù)據(jù)壓縮存儲;計算優(yōu)化包括HDFS文件傳輸優(yōu)化和Map/Reduce并行計算優(yōu)化;和海量數(shù)據(jù)優(yōu)化包括數(shù)據(jù)災(zāi)備、數(shù)據(jù)加密、CCIndex索引和CCT備份;客戶端提交的數(shù)據(jù)經(jīng)數(shù)據(jù)采集采集后,由多源數(shù)據(jù)組織與匯聚、數(shù)據(jù)冗余處理進行規(guī)范化處理,并采用RCFile進行壓縮存儲,數(shù)據(jù)水平拆分,引入分塊、分片機制先分塊再分片,塊內(nèi)采用按行存儲,分片內(nèi)按列存儲;然后,在計算優(yōu)化中,采用CCIndex將數(shù)據(jù)隨機遍歷轉(zhuǎn)化為按行索引遍歷,采用CCT進行記錄水平行復制完成數(shù)據(jù)增量備份;海量數(shù)據(jù)優(yōu)化時,并行計算組件完成HDFS文件系統(tǒng)和Map/Reduce計算模型配置類優(yōu)化,與G-cloud云平臺協(xié)同無縫集成,靈活使用G_cloud云平臺提供的基礎(chǔ)設(shè)施及基礎(chǔ)服務(wù)。
      2.根據(jù)權(quán)利要求1所述的大數(shù)據(jù)存儲及優(yōu)化方法,其特征在于:存儲優(yōu)化的系統(tǒng)設(shè)置為: 第一步,Linux系統(tǒng)文件掛載參數(shù)優(yōu)化,增加noatime參數(shù),; 第二步,NameNode節(jié)點參數(shù)配置優(yōu)化,dfs.block, size海量數(shù)據(jù)文件處理設(shè)置為64M*N (N=l, 2, 3, 4), dfs.namenode.handler, count 默認值設(shè)置成 64 ; 第三步,DataNode 節(jié)點優(yōu)化,dfs.datanode.handler, count 的 DataNode 節(jié)點的遠程調(diào)用開啟的服務(wù)線程數(shù)量設(shè)置為8 ; 第四步,job.tracker 監(jiān)控節(jié)點配置優(yōu)化,mapred.job.tracker, handler, count-jobtracker上開啟的處理task trackers傳過來的RPC的服務(wù)線程的數(shù)量設(shè)置為64 ;mapred.map.tasks-每個job的map任務(wù)數(shù)量,設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值;mapred.reduce, tasks-每個job的reduce任務(wù)數(shù)量,設(shè)置成與集群中存在的主機數(shù)量很接近的一個數(shù)值; 第五步,task, tracker監(jiān)控節(jié)點配置優(yōu)化,
      mapred.tasktracker.map.tasks, maximum, 一個 task tracker 上可以同時運行的 map任務(wù)的最大數(shù)量,設(shè)置為服務(wù)器CPU內(nèi)核數(shù)目或者數(shù)目減I ; mapred.tasktracker.reduce, tasks, maximum 一個 task tracker 上可以同時控制同時運行的task的數(shù)量設(shè)置為2 ;TaskTracker.http, threads是HTTPserver上的線程數(shù),運行在每個TaskTracker上·,用于處理maptask輸出,可以設(shè)置為40?50 ; 第六步,map配置優(yōu)化,i0.sort, mb可設(shè)置為200M, i0.sort, factor屬性,int類型,Map端和Reduce端使用該屬性設(shè)置在Map端和Reduce端都使用到的對文件Sort時一次合并的最大流設(shè)置為100 ;i0.file, buffer, size屬性,iMapReduce作業(yè)使用該屬性設(shè)置MapReduce作業(yè)的1/0操作中所提供的緩沖區(qū)的大小,以字節(jié)為單位,調(diào)整為64KBorl28KB, tasktracker.http, threads屬性,int類型,Map端使用該屬性設(shè)置集群中每個tasktracker用于將map輸出傳給reducer的工作線程的數(shù)量提高至40_50之間; 第七步,reduce 配置優(yōu)化,mapred.reduce, parallel, copies 增加 reduce 端復制過程的并行數(shù)調(diào)整為20 ;mapred.child, java.0pts屬性,調(diào)整為2MB ; mapred.job.shuffle, input, buffer, percent 屬性,適當增大比例使 Map 輸出不被溢寫到磁盤;mapred.job.shuffle, merge, percent屬性,適當增大其比例減少磁盤溢寫次數(shù);mapred.1nmem.merge, threshold屬性,當Reduce函數(shù)內(nèi)存需求很少時,可將該屬性設(shè)置為 O,由 mapred.job.shuffle, merge, percent 屬性單獨控制溢寫過程;mapred.job.reduce, input, buffer, percent 屬性,設(shè)置為 1.0。
      3.根據(jù)權(quán)利要求1所述的大數(shù)據(jù)存儲優(yōu)化方法,其特征在于: HDFS分布式文件存儲工作流程是, 第一步,客戶端通過身份驗證,建立TCP/IP連接,通過一個可配置的端口連接到NameNode并發(fā)起RPC遠程請求; 第二步,NameNode檢查待創(chuàng)建的文件是否已經(jīng)存在,創(chuàng)建者是否有權(quán)限進行操作;成功則為文件創(chuàng)建一個記錄,否則向客戶端拋出異常; 第三步,客戶端寫入文件,將文件切分成多個packets,并在內(nèi)部以數(shù)據(jù)隊列"dataqueue"的形式管理這些packets,同時向NameNode申請新的blocks,獲取用來存儲replicas的合適的DataNode列表,列表的大小根據(jù)在NameNode中對replication的設(shè)置而定; 第四步,以pipeline的形式將packet寫入所有的replicas中,把packet以流的方式寫入第一個DataNode,該DataNode把該packet存儲之后,再將其傳遞給在此pipeline中的下一個DataNode,直到最后一個DataNode ; 第五步,如果傳輸過程中,有某個DataNode出現(xiàn)了故障,那么當前的pipeline會被關(guān)閉,出現(xiàn)故障的DataNode會從當前的pipeline中移除,剩余的block會繼續(xù)剩下的DataNode中繼續(xù)以pipeline的形式傳輸,同時NameNode會分配一個新的DataNode,保持replicas設(shè)定的數(shù)量,寫入操作完成; 第六步,NameNode根據(jù)存儲的數(shù)據(jù)塊地址將通信地址鏈接到對應(yīng)的DataNode塊中,返回文件的部分或者全部b lock列表; 第七步,NameNode選擇最近的DataNode節(jié)點,來讀取block列表,開始文件讀取文件。
      4.根據(jù)權(quán)利要求2所述的大數(shù)據(jù)存儲優(yōu)化方法,其特征在于: HDFS分布式文件存儲工作流程是, 第一步,客戶端通過身份驗證,建立TCP/IP連接,通過一個可配置的端口連接到NameNode并發(fā)起RPC遠程請求; 第二步,NameNode檢查待創(chuàng)建的文件是否已經(jīng)存在,創(chuàng)建者是否有權(quán)限進行操作;成功則為文件創(chuàng)建一個記錄,否則向客戶端拋出異常; 第三步,客戶端寫入文件,將文件切分成多個packets,并在內(nèi)部以數(shù)據(jù)隊列"dataqueue"的形式管理這些packets,同時向NameNode申請新的blocks,獲取用來存儲replicas的合適的DataNode列表,列表的大小根據(jù)在Namenode中對replication的設(shè)置而定; 第四步,以pipeline的形式將packet寫入所有的replicas中,把packet以流的方式寫入第一個DataNode,該DataNode把該packet存儲之后,再將其傳遞給在此pipeline中的下一個DataNode,直到最后一個DataNode ; 第五步,如果傳輸過程中,有某個DataNode出現(xiàn)了故障,那么當前的pipeline會被關(guān)閉,出現(xiàn)故障的DataNode會從當前的pipeline中移除,剩余的block會繼續(xù)剩下的DataNode中繼續(xù)以pipeline的形式傳輸,同時NameNode會分配一個新的DataNode,保持replicas設(shè)定的數(shù)量,寫入操作完成;第六步,NameNode根據(jù)存儲的數(shù)據(jù)塊地址將通信地址鏈接到對應(yīng)的DataNode塊中,返回文件的部分或者全部block列表; 第七步,NameNode選擇最近的DataNode節(jié)點,來讀取block列表,開始文件讀取文件。
      5.根據(jù)權(quán)利要求1至4任一項所述的大數(shù)據(jù)存儲優(yōu)化方法,其特征在于: 數(shù)據(jù)處理詳細流程為: 第一步,從信息源、信息體、用戶需求等多個視角,分析多源海量信息的可用性特征; 第二步,多源數(shù)據(jù)在組織和匯聚后,可能會產(chǎn)生多個相同副本;當新增文件進行匯聚存儲時,系統(tǒng)監(jiān)測到事件,計算出新文件的摘要值,向系統(tǒng)請求新建文件;系統(tǒng)對比摘要值是否已存在于系統(tǒng),如果不存在,則返回信息允許客戶端匯聚存儲數(shù)據(jù)、新建此文件;如果摘要值已存在,則系統(tǒng)新建該文件及對應(yīng)的權(quán)限、屬性信息,但文件數(shù)據(jù)直接引用已有數(shù)據(jù)內(nèi)容,無需再匯聚存入系統(tǒng); 第三步,采用RCFile對數(shù)據(jù)完成壓縮,將關(guān)系數(shù)據(jù)水平拆分,分片內(nèi)按列序進行存儲,將分布式數(shù)據(jù)處理 系統(tǒng)中以記錄為單位的存儲結(jié)構(gòu)變?yōu)橐粤袨閱挝坏拇鎯Y(jié)構(gòu); 第四步,非結(jié)構(gòu)化文件數(shù)據(jù)存儲由數(shù)據(jù)集群負責,引入數(shù)據(jù)分塊和分塊副本機制進行存儲,并增加數(shù)據(jù)索引及樹節(jié)點優(yōu)化; 第五步,采用傳輸信道加密和數(shù)據(jù)存儲加密方式,對稱加密與非對稱加密結(jié)合使用;第六步,采用磁盤陣列對生產(chǎn)數(shù)據(jù)進行實時備份;海量數(shù)據(jù)處理優(yōu)化引入CCIndexJf數(shù)據(jù)隨機遍歷轉(zhuǎn)化為高效的按行索引遍歷,引入CCT進行記錄水平行復制完成數(shù)據(jù)增量備份; 第七步,同步接入G-cloud云平臺,使用計算資源、虛擬化資源、管理資源等進行海量數(shù)據(jù)預處理、濾重與挖掘分析,同時通過引入海量數(shù)據(jù)查詢索引及樹節(jié)點優(yōu)化等操作。
      6.根據(jù)權(quán)利要求1至4任一項所述的大數(shù)據(jù)存儲優(yōu)化方法,其特征在于: HDFS分布式文件讀取詳細流程為: 第一步,客戶端通過一個可配置的端口連接到NameNode,該連接通過TCP/IP協(xié)議建立; 第二步,客戶端通過ClientProtocol與NameNode交互; 第三步,DataNode 使用 DatanodeProtocol 與 NameNode 交互,并建立與 NameNode 連接;第四步,DataNode通過周期性的向NameNode發(fā)送心跳和數(shù)據(jù)塊來保持和NameNode的通信連接; 第五步,數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的屬性,即數(shù)據(jù)塊屬于哪個文件,數(shù)據(jù)塊地址ID,修改時間等; 第六步,NameNode響應(yīng)來自客戶端和DataNode的RPC請求,并從所有的DataNode接收心跳信號和塊狀態(tài)報告; 第七步,返回塊狀態(tài)報告給客戶端,狀態(tài)報告包括了某個DataNode所有的數(shù)據(jù)塊列表; 第八步,客戶端根據(jù)塊報告中返回的地址信息,選取DataNode節(jié)點讀取數(shù)據(jù); 第九步,關(guān)閉DataNode連接,一次讀取結(jié)束。
      7.根據(jù)權(quán)利要求5所述的大數(shù)據(jù)存儲優(yōu)化方法,其特征在于: HDFS分布式文件讀取詳細流程為:第一步,客戶端通過一個可配置的端口連接到NameNode,該連接通過TCP/IP協(xié)議建立; 第二步,客戶端通過ClientProtocol與NameNode交互; 第三步,DataNode 使用 DatanodeProtocol 與 NameNode 交互,并建立與 NameNode 連接;第四步,DataNode通過周期性的向NameNode發(fā)送心跳和數(shù)據(jù)塊來保持和NameNode的通信連接; 第五步,數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的屬性,即數(shù)據(jù)塊屬于哪個文件,數(shù)據(jù)塊地址ID,修改時間等; 第六步,NameNode響應(yīng)來自客戶端和DataNode的RPC請求,并從所有的DataNode接收心跳信號和塊狀態(tài)報告; 第七步,返回塊狀態(tài)報告給客戶端,狀態(tài)報告包括了某個DataNode所有的數(shù)據(jù)塊列表; 第八步,客戶端根據(jù)塊報告中返回的地址信息,選取DataNode節(jié)點讀取數(shù)據(jù); 第九步,關(guān)閉DataNode連 接,一次讀取結(jié)束。
      【文檔編號】G06F17/30GK103440244SQ201310293482
      【公開日】2013年12月11日 申請日期:2013年7月12日 優(yōu)先權(quán)日:2013年7月12日
      【發(fā)明者】安宏偉, 季統(tǒng)凱 申請人:廣東電子工業(yè)研究院有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1