999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種新型的Hadoop本地化測試模型

2013-07-17 11:20:32王曉華
赤峰學院學報·自然科學版 2013年19期
關鍵詞:程序環境模型

王曉華

(蚌埠醫學院 科研處,安徽 蚌埠 233000)

一種新型的Hadoop本地化測試模型

王曉華

(蚌埠醫學院 科研處,安徽 蚌埠 233000)

MapReduce是Hadoop核心處理程序.但是目前軟件界更多是對MapReduce程序的編寫,而對其測試方法還是空白,依舊使用的是基于JUnit為基礎的測試插件.而JUnit是為了軟件進行單機測試而誕生的一種測試插件,其對分布式測試的支持性很差.同時由于其天生的狹隘性,對大規模數據進行測試根本是不可能進行.本文利用Hadoop自帶的抽象類,通過欺騙注入,給Hadoop設計一種通過營造一個運行在單機上的偽集群環境模型,從而使得MapReduce在不借助外部其他插件支持的情況下可以獨立完成全部運行并將結果輸出在本地磁盤空間.

分布式計算;hadoop;MapReduce;軟件測試

1 引言

面對現代社會數據信息高速增長,數據分析與設計人員迫切地希望一種能夠對大規模數據進行分析與處理的系統.但是由于往往數據的日常產生是以G B為單位,因此對于其分析進而計算并不是一件非常容易的事.而Hadoop為了解決單機對大數據分析計算的不能夠有效及時處理這一缺陷而誕生的.

Hadoop是一種新興的分布式計算系統框架,由Apache基金會開發.其主要是為了解決大規模分布式計算模式下的,讓使用者不必要知道底層運算的細節的情況下,充分利用集群計算機的強大處理能力進行數據的存儲與計算. Hadoop的構成主要是由一個底層分布式文件存儲系統以及運行在存儲系統之上的一個MapReduce處理程序構成.其中H D F S主要是負責在集群的計算機存儲硬盤上重新構建出一個基于Java虛擬機的一種集群化存儲結構,把集群中所有可利用磁盤空間組成一個巨大的偽磁盤空間供Hadoop使用.而MapReduce在此之上則通過充分調用集群內各個計算機所擁有的的獨立資源進行分布式并行數據處理,為使用者提供了充足的可使用資源,并且由于其架構本身就是低耦合性為特性,因此可以很容易的進行數據擴展.

隨著“云計算”這一新興數據處理模型的日益推廣,Hadoop作為實現“云計算”的底層實現框架也越來越深入人心.隨之而來的就是Hadoop核心處理程序MapReduce的大規模應用.但是MapReduce程序設計廣泛推廣應用的基礎上,存在一個非常嚴重的問題,就是目前缺乏對MapReduce有效的測試工具.而且對測試工具的模型設計基本上是空白,因此本文提出了一種基于本地化的測試可用的MapReduce測試模型.

2 MapReduce測試存在的問題

Hadoop是使用Java語言所搭建的大規模數據處理框架,因此對其核心處理程序的設計我們首選是Java程序測試框架.MRUnit可以較好的為我們解決極小量數據處理的測試.其依托于JUnit來對程序進行測試運算,通過斷言計算值與期望值之間的一致性為我們提供特定值的測試結果.此種結果在一定程度上是準確且可信的,但是對于數據進行分析,特別是大規模數據分析,如果測試數據過于狹隘,往往并不能得到有效可信的結果.而MRUnit則是繼承自JUnit測試插件.JUnit的使用本身是為了單機程序測試而創造的測試工具,因此MRUnit在誕生之處就先天具有狹隘性,并不能為集群環境的數據測試提供支持.

而將未經測試的MapReduce程序上傳到集群環境中進行測試本身就是一種極大的冒險.而且相對本地環境的測試,其配置更為復雜,影響因素較多,無法能夠簡單的實現對,MapReduce程序進行測試.同時目前軟件界還沒有專門文獻證實或關于直接在云計算集群系統中運行MapReduce的測試案例及測試結果出現.

為了解決MapReduce程序使用MRUnit進行測試無法對大規模數據進行測試分析,同時又不推薦直接向程序上傳到集群環境中進行測試的問題,我們自己設計了一種的基于本地磁盤系統的在單機上進行文件測試方法用以解決難以對MapReduce進行測試的難題.

3 測試分析

Java程序是一種面向對象的程序設計語言,其設計普遍思路是將實物抽象成一個抽象的數據模型來進行操縱.而抽象的數據模型在Java程序設計中以類的形式表現.而Hadoop的分布式框架是由Java語言構成.因此,我們在對分布式框架進行測試的時候,應該遵循Java語言這一特性,更多的使用類進行我們需要的測試.而對于測試類的來歷我們偏向于使用Hadoop自帶的原生類.因為相對于使用外部測試框架或輔助文件包來說,使用原生類能為我們帶來更具有穩定性及健壯性的支持.在這里我們選擇使用的是Configured類.通過分析Hadoop的源代碼我們可以知道,Configured是繼承自Configurable接口的一個實現類,主要作用是對Hadoop設置一個可供運行的環境變量.這里的環境變量指的是基于Java虛擬機環境系統下的一種Java運行環境.我們知道Java本身具有平臺無關性的特點.而對于Hadoop來說,其本身的運行環境也是一種基于Java虛擬機的集群式分布環境,此種環境也是Java語言構建的運行環境,因此可以通過獲得本地的運行環境從而修改和替換分布式的運行環境,因此如果想在本地磁盤環境下進行MapReduce程序測試的話,那么獲得本地環境設置是我們需要解決的重點問題.

對于環境變量的獲取,需要獲取當前運行程序的環境變量并進行欺騙性注入實現一種對于MapReduce驗證的欺騙.為了解決此目的,我們選擇了Tool接口.

Tool接口本身實現了兩個方法,分別是getConf與set-Conf.其作用是獲取當前運行環境的一個環境變量.在這里我們可以通過獲取當前的環境變量注入到MapReduce中,實驗結果證明是可行的.

4 實驗環境

詞頻統計是測試Hadoop運算性能的既簡單又有效的程序之一,主要是統計文本文件中每個單詞出現的次數.具體的實驗運行環境如下:

CPU:XEON5620

內存/主硬盤:4GB/500G7200 r/min

操作系統:Ubuntu11.10

測試工具:Eclipse 3.4.1

測試數據:hadoop0.20.2自帶單詞統計樣本

5 代碼設計

本測試中主要是為了對MapReduce的本地化運行模型進行測試,因此在MapReduce的運算模型選擇上,更多采取了一些Hadoop自帶的演示程序進行測試,但是由于新老A P I的交接原因,重寫了所有MapReduce代碼.

對于MapReduce來說,其自定義的Mapper與Reduce設定是重中之重.我們重寫了經典的字母計數的MapReduce程序,部分代碼如下所示:

這里分別使用了新API進行Map與Reduce的設置,這里不做過多程序,而對于主要環境獲取來說,需要使用自定義的含有main方法的程序對MapReduce進行驅動執行.下面是程序部分模型建立代碼:

從代碼片段我們可以看到,對于傳統的Configuration的對象獲取,由過去產生對當前環境變量的獲取轉為獲取程序所執行環境變量,并根據獲取的環境變量注入Hadoop默認的執行驅動中,因此可以通過欺騙的形式運行MapReduce運行環境.

6 運行過程與輸出驗證

對于測試的運行我們使用的是Eclipse,只需使用傳統的軟件運行方式即可,而無需使用專門針對軟件測試方式的JUnit模式進行運行、對于結果的驗證,因為我們在本地磁盤上模擬Hadoop環境進行處理,生成的結果文件與集群環境下HDFS相類似,最終在本地磁盤空間的制定路徑上生成名為“part-r-00000”的內容.part-r-00000并不帶有后綴名,究其原因是因為HDFS默認對此類文件的支持.為了解決此問題,我們使用了“NOTEPAD++”這一開源免費的文本處理工具,可以直接將結果轉碼后顯示.

7 測試結論

對于使用此新型本地化檢測模型我們可以得到三個顯著結論:

(1)Hadoop本身的運行環境是構建在Java的虛擬機環境之上,可以通過修改Configuration獲取的路徑從而欺騙Hadoop使用不同的虛擬機環境.

(2)Hadoop的存儲底層是實現是使用HDFS系統,此系統也遵循一般的磁盤存儲原理而僅僅是通過修改鏈接傳輸協議而構成的一個偽集群環境.HDFS的底層實現仍舊是一般的磁盤系統.

(3)MapReduce雖然是運行在Hadoop集群環境之上的數據處理程序,但是仍舊可以通過偽造環境變量的方式使之運行在本地計算機系統之上,而無需對其進行專門配置,這點為學習或者測試MapReduce的程序設計人員提供了一條非常好的測試思路.

〔1〕White T.Hadoop:the definitiveguide[M].南京:東南大學出版社,2011.203-204.

〔2〕Apache.Single node setup[EB/OL].(2012-02-14)[2012-05 -10].http//hadoop.apache.org/common/docs/r1.0.1/ single_node_setup.html.

〔3〕Borthakur D.HDFS architectureguide[EB/OL].(2011-04-12[2012-05-10]http://hadoop.apache.org/hdfs/docs/ current/hdfs_design.Html.

〔4〕BORTHAKUR D,GRAY J,SARMA J S,et al.A-pache hadoopgoes realtime at facebook[C]//Proc of International Conference on Management of Data New York:ACM Press,2011:1071-1080.

〔5〕李建江.MapReduce并行編程模型研究綜述[J].電子學報,2011(11):2636-2641.

TP309

A

1673-260 X(2013)10-0020-02

安徽省科技創新基金資助(20120752Z);蚌埠醫學院科研基金資助(BY1024)

猜你喜歡
程序環境模型
一半模型
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
孕期遠離容易致畸的環境
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
環境
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
主站蜘蛛池模板: 国产精品国产三级国产专业不| 色妞www精品视频一级下载| 无码丝袜人妻| 制服丝袜 91视频| 欧美成人手机在线观看网址| 国产精品综合色区在线观看| 美女一区二区在线观看| 国产成人高清在线精品| 人妻21p大胆| 亚洲a级在线观看| 欧美色图久久| 久久香蕉国产线| 亚洲热线99精品视频| 亚洲黄色高清| 亚洲精品天堂在线观看| 中文国产成人久久精品小说| 欧洲成人免费视频| 美女亚洲一区| 在线观看欧美精品二区| 日韩最新中文字幕| 欲色天天综合网| 毛片网站免费在线观看| 日韩精品免费一线在线观看| 亚洲娇小与黑人巨大交| 国产玖玖玖精品视频| 青青青视频91在线 | 美女无遮挡被啪啪到高潮免费| 伊人婷婷色香五月综合缴缴情| 国产成人三级| 日本在线亚洲| 黄网站欧美内射| 亚洲国产中文欧美在线人成大黄瓜| 色噜噜久久| 国产成人久久777777| 人妻无码中文字幕一区二区三区| 成人噜噜噜视频在线观看| 1024你懂的国产精品| 91亚洲精品国产自在现线| 亚洲精品无码AⅤ片青青在线观看| 久久99精品久久久久纯品| 天堂成人av| 国产毛片不卡| 鲁鲁鲁爽爽爽在线视频观看 | 国产亚洲欧美在线人成aaaa| 一级一级一片免费| 4虎影视国产在线观看精品| 波多野结衣无码中文字幕在线观看一区二区| 亚卅精品无码久久毛片乌克兰| 亚洲人成网站观看在线观看| 国产专区综合另类日韩一区| 国产在线自揄拍揄视频网站| 色综合国产| 91啦中文字幕| 精品无码专区亚洲| 久久国产热| 欧美一区二区丝袜高跟鞋| 国产菊爆视频在线观看| 无码内射中文字幕岛国片| 亚洲中文字幕日产无码2021| A级毛片无码久久精品免费| 亚洲一区网站| 国产成人亚洲综合a∨婷婷| 中国一级毛片免费观看| 欧美日韩第三页| 久久国产亚洲欧美日韩精品| 久久久久久久久18禁秘| 国产成人成人一区二区| 久久综合九色综合97网| 久久www视频| 久久婷婷人人澡人人爱91| 日本福利视频网站| 国产一二视频| 国产精品自在在线午夜区app| 天天综合色网| 亚洲制服丝袜第一页| 网友自拍视频精品区| 久久国产V一级毛多内射| 国产精品永久久久久| 999国产精品永久免费视频精品久久 | 免费观看国产小粉嫩喷水 | 亚洲人成在线精品| 免费观看亚洲人成网站|