欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的方法和裝置的制造方法

文檔序號:9200370閱讀:267來源:國知局
一種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的方法和裝置的制造方法
【技術(shù)領域】
[0001] 本發(fā)明涉及計算機計算領域,尤其涉及一種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確 性的方法和裝置。
【背景技術(shù)】
[0002] 隨著計算機技術(shù)的發(fā)展,計算機需要處理的數(shù)據(jù)的數(shù)據(jù)量也越來越大,單臺計算 機已經(jīng)不能處理一些大規(guī)模的數(shù)據(jù),為此需要將多臺計算機聯(lián)合起來,構(gòu)成計算機群,并行 處理大規(guī)模的數(shù)據(jù)。云計算就是通過采用精心設計的系統(tǒng)架構(gòu)對設備進行組織管理,能夠 提供十分強大的計算能力。MapReduce是一種編程模型,通常用于將大規(guī)模數(shù)據(jù)集并行且分 布式地運行于大型的集群中,所述的大規(guī)模數(shù)據(jù)集,一般是指大于ITB (萬億字節(jié))的數(shù)據(jù) 集。
[0003] MapReduce對數(shù)據(jù)集進行并行處理的過程具體可以包括:根據(jù)Map (映射)任務的 數(shù)量,將數(shù)據(jù)集分解為多個數(shù)據(jù)塊;分別對每個數(shù)據(jù)塊中的每個原始鍵值對數(shù)據(jù)執(zhí)行Map 處理,得到每個原始鍵值對數(shù)據(jù)對應的中間結(jié)果鍵值對數(shù)據(jù)集;在得到所有原始鍵值對數(shù) 據(jù)對應的中間結(jié)果鍵值對數(shù)據(jù)集后,再對所有具有相同鍵的中間結(jié)果鍵值對數(shù)據(jù)進行相應 的Reduce (規(guī)約)處理,得到相應的最終結(jié)果鍵值對數(shù)據(jù)。一般開發(fā)人員需要做的就是實現(xiàn) 自己的Map和Reduce函數(shù)邏輯,然后提交給MapReduce運行環(huán)境。由上述MapReduce的工 作原理可以看出,每個子任務的執(zhí)行結(jié)果都可以影響最終的計算結(jié)果。在實際的應用過程 中,在MapReduce的函數(shù)邏輯不變的情況下,MapReduce運行環(huán)境并不是一直不變化的,例 如會修改MapReduce運行環(huán)境中的某個或多個計算機的系統(tǒng)參數(shù)、修改運行的MapReduce 代碼中不會影響運行結(jié)果的參數(shù)等,這些微小的變化可能會導致某個或多個子任務的執(zhí)行 結(jié)果發(fā)生錯誤而影響最終的計算結(jié)果,例如,修改了某臺計算機中的運算的精度可能會導 致在該計算機上運行的子任務的輸出結(jié)果發(fā)生改變,或者修改了 MapReduce程序中不會影 響運算結(jié)果的一些參數(shù);這些可能會使某個或多個子任務的執(zhí)行結(jié)果發(fā)生錯誤,進而導致 最終的運算結(jié)果發(fā)生錯誤。所以,為了保證當前MapReduce運行環(huán)境下數(shù)據(jù)處理得到的結(jié) 果是正確的,經(jīng)常需要在進行實際的數(shù)據(jù)處理前,驗證當前MapReduce運行環(huán)境下處理數(shù) 據(jù)的正確性。
[0004] 驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的方法可以有兩種:
[0005] -種稱為編寫測試用例法。所述編寫測試用例法具體包括:測試人員編寫用于測 試的例子,在MapReduce環(huán)境下的運算結(jié)果應當發(fā)生變化時,所述測試的例子可以輸出相 應的錯誤的結(jié)果。這樣在MapReduce環(huán)境發(fā)生變化后對編寫的測試用例進行數(shù)據(jù)處理,將 得到的數(shù)據(jù)處理的結(jié)果與MapReduce環(huán)境發(fā)生變化前的數(shù)據(jù)處理結(jié)果進行對比,如果。
[0006] 另一種稱為真實數(shù)據(jù)法。所述真實數(shù)據(jù)法具體包括:使用真實的數(shù)據(jù),在 MapReduce環(huán)境發(fā)生變化后對實的數(shù)據(jù)進行數(shù)據(jù)處理,將得到的數(shù)據(jù)處理的結(jié)果與 MapReduce環(huán)境發(fā)生變化前的數(shù)據(jù)處理結(jié)果進行對比,分析數(shù)據(jù)處理結(jié)果的正確性。
[0007] 在實現(xiàn)本申請過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
[0008] 采用編寫測試用例法驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性時,需要人工編寫測 試用例,為了保證編寫的測試用例能在任何MapReduce環(huán)境下的運算結(jié)果應當發(fā)生變化時 能反應出數(shù)據(jù)處理的錯誤,需要保證編寫的測試用例盡量的全面,這樣就需要投入很大的 人工成本;同時,由于MapReduce的運行環(huán)境復雜,運算過程中可能發(fā)生的錯誤不能被完全 預測到,那么,人工編寫測試用例通常不能保證能反映出所有數(shù)據(jù)處理的錯誤,因此測試用 例的處理數(shù)據(jù)可能不可靠。采用真實數(shù)據(jù)法驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性時,所 述真實數(shù)據(jù)通常數(shù)據(jù)量巨大,一般真實數(shù)據(jù)可達幾百GB (千兆字節(jié))到幾個TB (萬億字節(jié)) 之間,因此,不管是對所述真實數(shù)據(jù)進行數(shù)據(jù)處理,還是對數(shù)據(jù)處理的結(jié)果進行比較,都需 要花費幾個小時甚至一兩天的時間。

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

[0009] 本申請的目的在于提供一種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的方法,以減 少實現(xiàn)驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的人工成本和實現(xiàn)時間。
[0010] -種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的方法,包括:
[0011] 為MapReduce源代碼加入劫持代碼,生成帶有劫持代碼的數(shù)據(jù)處理程序;
[0012] 運行所述帶有劫持代碼的數(shù)據(jù)處理程序?qū)斎霐?shù)據(jù)進行數(shù)據(jù)處理,所述帶有劫 持代碼的數(shù)據(jù)處理程序劫持得到輸入數(shù)據(jù)、輸出數(shù)據(jù),所述數(shù)據(jù)處理程序記錄數(shù)據(jù)處理過 程中代碼是否被執(zhí)行的覆蓋信息;設定覆蓋信息和對應的輸入數(shù)據(jù)、輸出數(shù)據(jù)為三元組數(shù) 據(jù);
[0013] 去除覆蓋信息相同的三元組數(shù)據(jù),形成監(jiān)控三元組集合;
[0014] 在驗證處理數(shù)據(jù)正確性時,將所述監(jiān)控三元組集合中的輸入數(shù)據(jù)返回至帶有劫持 代碼的數(shù)據(jù)處理程序重新進行數(shù)據(jù)處理,所述帶有劫持代碼的數(shù)據(jù)處理程序劫持得到輸出 數(shù)據(jù),形成輸出數(shù)據(jù)集合;
[0015] 通過監(jiān)控三元組集合中的輸出數(shù)據(jù)驗證所述輸出數(shù)據(jù)集合中的數(shù)據(jù)是否正確。
[0016] 優(yōu)選方案中,所述劫持代碼包括:輸入劫持代碼和輸出劫持代碼。
[0017] 優(yōu)選方案中,所述去除覆蓋信息相同的三元組數(shù)據(jù),形成監(jiān)控三元組集合,具體包 括:設置三元組集合,所述三元組集合的初始狀態(tài)為空集;將新生成的三元組數(shù)據(jù)的覆蓋 信息與三元組集合中的三元組數(shù)據(jù)的覆蓋信息進行比對,將覆蓋信息不完全相同的三元組 數(shù)據(jù)存放至所述三元組集合中,將輸入數(shù)據(jù)處理完畢后所述的三元組數(shù)據(jù)集合作為監(jiān)控三 元組集合。
[0018] 優(yōu)選方案中,通過監(jiān)控三元組集合中的輸出數(shù)據(jù)驗證所述輸出數(shù)據(jù)集合中的數(shù)據(jù) 是否正確,具體包括:
[0019] 將輸出數(shù)據(jù)集合中的每一條輸出數(shù)據(jù)與監(jiān)控三元組集合中對應的輸出數(shù)據(jù)進行 比對,且:
[0020] 對于同一輸入數(shù)據(jù)的兩個集合中對應的輸出數(shù)據(jù)相同的,驗證輸出數(shù)據(jù)集合中該 條記錄的處理數(shù)據(jù)為正確;
[0021] 對于同一輸入數(shù)據(jù)的兩個集合中對應的輸出數(shù)據(jù)不相同的,驗證輸出數(shù)據(jù)集合中 該條記錄的處理數(shù)據(jù)為錯誤。
[0022] 優(yōu)選方案中,所述設定覆蓋信息和對應的輸入數(shù)據(jù)、輸出數(shù)據(jù)為三元組數(shù)據(jù),包 括:將標識相同的輸入數(shù)據(jù)與輸出數(shù)據(jù)及對應的覆蓋信息為三元組數(shù)據(jù)。
[0023] 優(yōu)選方案中,所述覆蓋信息,包括:語句執(zhí)行覆蓋信息和跳轉(zhuǎn)執(zhí)行覆蓋信息。
[0024] -種驗證MapReduce環(huán)境下處理數(shù)據(jù)正確性的裝置,包括:處理程序準備單元、三 元組生成單元、監(jiān)控三元組集合單元、輸出數(shù)據(jù)集合單元、驗證單元;其中,
[0025] 所述處理程序準備單元,用于為MapReduce源代碼加入劫持代碼,并生成帶有劫 持代碼的數(shù)據(jù)處理程序;
[0026] 所述三元組生成單元,用于運行所述處理程序準備單元中的數(shù)據(jù)處理程序?qū)斎?數(shù)據(jù)進行數(shù)據(jù)處理,并記錄輸入數(shù)據(jù)、輸出數(shù)據(jù)和覆蓋信息,設定覆蓋信息和對應的輸入數(shù) 據(jù)、輸出數(shù)據(jù)為三元組數(shù)據(jù);
[0027] 所述監(jiān)控三元組集合單元,用于讀取所述三元組生成單元生成的三元組數(shù)據(jù),去 除覆蓋信息相同的三元組數(shù)據(jù),形成監(jiān)控三元組集合;
[0028] 所述輸出數(shù)據(jù)集合單元,用于在驗證處理數(shù)據(jù)正確性時,將所述監(jiān)控三元組集合 中的輸入數(shù)據(jù)返回至三元組生成單元進行數(shù)據(jù)處理,并將此時的輸出數(shù)據(jù)存放至輸出數(shù)據(jù) 集合中;
[0029] 所述驗證單元,用于根據(jù)監(jiān)控三元組集合中的輸出數(shù)據(jù),驗證輸出數(shù)據(jù)集合中的 輸出數(shù)據(jù)是否正確。
[0030] 優(yōu)選方案中,所述處理程序準備單元,包括:代碼修改單元、程序生成單元;其中,
[0031] 所述代碼修改單元,用于為MapReduce源代碼加入記錄輸入數(shù)據(jù)、輸出數(shù)據(jù)及數(shù) 據(jù)標識的劫持代碼;
[0032] 所述程序生成單元,用于將代碼修改單元輸出的加入了劫持代碼的MapReduce代 碼進行編譯,生成帶有劫持代碼的數(shù)據(jù)處理程序。
[0033] 優(yōu)選方案中,所述三元組生成單元,包括:數(shù)據(jù)輸入單元、程序處理單元、三元組組 成單元;其中,
[0034] 所述數(shù)據(jù)輸入單元,用于讀入需要進行數(shù)據(jù)處理的輸入數(shù)據(jù);
[0035] 所述程序處理單元,用于對數(shù)據(jù)輸入單元中讀入的數(shù)據(jù)利用帶有劫持代碼的數(shù)據(jù) 梳理程序進行處理,得到輸出數(shù)據(jù),并記錄輸入數(shù)據(jù)、輸出數(shù)據(jù)和覆蓋信息;
[0036] 所述三元組組成單元,用于設定對應的輸入數(shù)據(jù)、輸出數(shù)據(jù)和覆蓋信息為三元組 數(shù)據(jù)。
[0037] 優(yōu)選方案中,所述監(jiān)控三元組集合單元,包括:數(shù)據(jù)讀取單元、信息對比單元、三元 組存放單元;其中,
[0038] 所述數(shù)據(jù)讀取單元,用于
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东乡县| 靖安县| 大邑县| 土默特右旗| 宽城| 耿马| 江华| 财经| 武汉市| 年辖:市辖区| 寻甸| 咸阳市| 凤阳县| 漠河县| 靖安县| 福泉市| 明水县| 永寿县| 林西县| 泗阳县| 凤山市| 闵行区| 达尔| 石屏县| 墨竹工卡县| 全南县| 郧西县| 东乌珠穆沁旗| 鄱阳县| 新龙县| 莱阳市| 阿勒泰市| 嘉义市| 武冈市| 宜兰市| 崇信县| 丰县| 花莲市| 安达市| 延津县| 图木舒克市|