《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Hadoop的測試數據處理系統設計與實現
基于Hadoop的測試數據處理系統設計與實現
2015年電子技術應用第7期
劉有耀,李 彬
西安郵電大學 專用集成電路設計中心,陜西 西安710061
摘要: 提出一種基于Hadoop軟件框架進行海量測試數據處理的解決方案。在深入研究Hadoop分布式系統構架、HDFS分布式文件系統以及MapReduce分布式編程模型的基礎上,設計并實現了二進制測試數據文件到HDFS的傳輸機制以及基于MapReduce的測試數據分布式格式轉換系統。最后搭建實驗環境,驗證了整個系統的正確性并對分布式格式轉換系統進行性能評估。與本地單機相比,系統在處理海量數據時具有更高的效率及更好的可拓展性。
中圖分類號: TP311
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.039
中文引用格式: 劉有耀,李彬. 基于Hadoop的測試數據處理系統設計與實現[J].電子技術應用,2015,41(7):140-143.
英文引用格式: Liu Youyao,Li Bin. The design and implementation of test data processing system based on Hadoop[J].Application of Electronic Technique,2015,41(7):140-143
The design and implementation of test data processing system based on Hadoop
Liu Youyao,Li Bin
Design Center of Application-Specific Integrated Circuits, Xi′an University of Posts and Telecommunications,Xi′an 710061,China
Abstract: This paper proposes a Hadoop-based software framework for massive testing data processing scheme. Based on the related technology of Hadoop distributed system architecture, Hadoop distributed file system and MapReduce programming model, it designed and implemented the binary test data files to HDFS transport mechanism and the test data format conversion system based on MapReduce. Finally, it set up the experimental environment to verify the correctness of the whole system and did the distributed format conversion system performance evaluation. Compared with one node conversion in local, this system has higher efficiency and better expansibility in dealing with a huge amounts of data.
Key words : semiconductor testing data;distributed storage;Hadoop;MapReduce

  

0 引言

    在半導體業日漸成熟的今天,半導體測試已逐漸成為整條產業鏈中必不可少的重要環節。與此同時,計算機科學與技術的不斷發展同樣為半導體測試提供了全方位的支持。集成電路規模的不斷增大,使得所要測試的項目隨之增多,同時,測試數據量也在不斷增加。如何對海量的測試數據進行有效的存儲以及處理成為集成電路測試數據研究領域里的熱門問題。

    本文首先介紹了現階段主流的大數據解決方案Hadoop的相關技術,詳細研究Hadoop相關組件的功能和架構。在此基礎上,設計并且實現了基于Hadoop的測試數據分布式處理系統。最后搭建實際的測試環境,對整個系統進行測試,驗證了平臺的有效性和穩定性,并對結果進行了分析。

1 分布式系統相關技術研究

1.1 Hadoop

    Hadoop[1]的整體構架如圖1所示,圖中每個最底層的長方形代表一臺物理服務器,每臺物理服務器或稱物理節點,通過網線連接到交換機,交換機再連接到中心交換機,客戶端通過互聯網來訪問。NameNode(名稱節點)[2]、Secondary NameNode(輔助名稱節點)[3]、DataNode(數據節點)組成了Hadoop內整個分布式文件系統的體系。

jsj1-t1.gif

1.2 HDFS

    HDFS[4]的分布式文件系統架構如圖2所示。其中,NameNode的工作是管理文件系統的命名空間,它是整個系統的總控節點,會記錄每個文件的數據塊在各個DataNode里的位置以及副本的信息,除此之外,它還需要記錄每個文件具體所在的集群節點。另外,NameNode還要協調客戶端對文件的訪問,當有節點需要訪問某個文件時,它會先去訪問NameNode來獲取此文件的位置信息,獲取信息后,它就可以與DataNode直接通信,來獲取數據塊[5]

jsj1-t2.gif

    在HDFS中,另外一種節點的角色是DataNode,主要是用來管理所在的物理節點。DataNode的讀寫方式一般是文件一次性寫入,不能修改,可以刪除,并且可以多次讀取。由于其有此特性,就不需要考慮一致性。在DataNode中,文件是由數據塊組成,從Linux的角度來看,每個數據塊就是一個Block文件,一般缺省的數據塊最大可以達到64 MB。在調度時,Hadoop系統會盡量讓數據塊散布在集群里的各個節點中,來實現冗余的效果。

1.3 MapReduce

    MapReduce的主要思想是“分而治之”[6-7]。這個思想在MapReduce模型中被反映得淋漓盡致,其中,mapper用來做“分”的工作,把一個很龐大的工作任務,在數據上分配到每個節點上,然后在程序計算上進行分割,mapper一般會跟它處理的數據被存放在同一個節點中,而不需要網絡再傳輸數據,這樣可以減少很多在網絡中I/O的時間;reducer的任務是對map進程中的處理結果進行集中。MapReduce工作原理如圖3所示。

jsj1-t3.gif

2 測試數據處理系統設計

    本文所研究的測試數據是基于泰瑞達公司的J750自動測試機,通過對集成電路測試得到標準測試數據格式文件(Standard Test Data Format,STDF)[8]。STDF是一種由泰瑞達公司開發的通過自動測試機來收集測試數據的文件格式,它具有簡單、靈活、便捷的特點,為了最小化地占用存儲空間,它被設計為二進制文件格式,由于很容易被快速且穩定地進行數據格式轉換,因此逐漸被很多自動測試機供應商所接受。

    隨著芯片制造工廠的不斷涌現及自動測試機數量的不斷增加,產生的測試數據量將是海量的。因此,對測試數據處理時產生的時間損耗及運算資源的需求量會不斷增大。

    本文基于MapReduce設計并實現一個測試數據分布式處理系統,該系統通過對可擴展運算資源的集中使用,達到高處理性能。此系統實現了測試數據的分布式存儲,同時使用了基于MapReduce的程序實現了分布式的格式轉換功能,將STDF格式文件轉換為CSV格式文件,系統顯著提高了格式轉換的性能。

    系統總體架構圖如圖4所示。系統主要由測試數據的分布式存儲與分布式格式轉換兩個部分組成。系統使用HDFS作為分布式并行處理的存儲平臺,從FTP收集到的海量測試數據會被自動分布到HDFS的數據節點中,然后,系統會利用Hadoop MapReduce對數據進行分布式并行處理。

jsj1-t4.gif

    系統執行的具體步驟如下:

    (1)數據采集。ATE收集的測試數據存儲在本地硬盤上,系統將會采集FTP上的所有STDF文件,并通過DFSClient程序將文件上傳到HDFS中,實現測試數據的分布式存儲。

    (2)數據處理。系統將HDFS中的數據傳遞給Map-Reduce框架,實現數據的分布式處理。這是本系統的主要工作。

    (3)數據返回。格式轉換完成后,數據將自動上傳到HDFS中。

    步驟(2)中的數據格式轉換為本系統的主要工作部分。首先,通過程序將測試數據文件的目錄路徑作為MapReduce程序的輸入,傳遞給MapReduce框架,也就是將HDFS中的測試數據分發到集群中的各個節點;然后,系統將會利用Hadoop提供給MapReduce框架的文件緩存工具DistributedCache,在運行任務之前,該軟件將會自動被分發到每臺機器上的某個目錄中,這樣就無需預先在各個節點上放置格式轉換軟件,減少了工作量的同時提高了工作效率;最后,在map()函數中調用第三方軟件“StdfToCsv.exe”進行格式轉換。由于考慮到數據實際并不需要在reduce階段進行合并處理過程,因此,系統僅實現map階段,這樣不僅能夠避免在reduce階段對數據進行合并,而且提升了系統的工作效率。

3 測試數據處理系統實現

3.1 測試數據在HDFS上的存儲實現

    測試數據文件將已“測試時間_LotID_WaferID”的格式進行命名,DFS Client把測試數據上傳到HDFS中。

    圖5為DFS Client將STDF文件上傳到HDFS的流程圖。首先,打開本地文件的輸入流與HDFS的輸出流;然后,將STDF文件全部上傳的HDFS中,直到所有數據上傳完畢;最后,關閉輸入、輸出流。為了實現測試數據實時上傳到HDFS中,需要采用定時刷新檢測機制,將測試數據定時上傳到HDFS中。

jsj1-t5.gif

3.2 測試數據格式轉換實現

    應用程序在JobConf中通過url(hdfs://)指定需要被緩存的文件,即“StdfToCsv.exe”文件。此時該文件已經被存放在HDFS上。MapReduce會在任務開始之前,將該文件分發到Slave節點上,而且僅會為沒有該文件的Slave節點緩存文件,這樣可以節約網絡帶寬,提高系統的運行效率。測試數據格式轉換實現過程如下:

    (1)數據格式轉換模塊使用InputFormat類中的Record-Reader方法從HDFS中讀取STDF文件。在該系統中,InputFormat主要承擔兩項工作,第一是預先向MapReduce框架提供map任務的數量信息,從而使MapReduce框架預先安排所有的map任務;第二是讀取從原始測試數據集傳遞到map類中map()函數的記錄,這個函數通過RecordReader來執行,RecordReader是由FileInputFormat提供,用來讀取原始文件,并將它傳遞給map()。

    (2)InputFormat將Key-Value對傳遞給mapper。mapper將會使用格式轉換軟件以完全分布式方式將STDF文件轉換為CSV文件,在mapper完成測試數據的格式轉換后,將結果傳遞給OutputFormat作為Key(文件名)和Value(文件內容)。

    (3)mapper將Key-Value對傳遞給OutputFormat。也就是說,OutputFormat會將Key-Value對重新生成一個HDFS中的文件。

    本文設計了一個StdfInputFormat類來讀取STDF文件,另外還設計了StdfRecordReader類從StdfInputFormat讀出數據并且傳遞給mapper函數。

    MapReduce的輸入是存儲在HDFS中的STDF文件,一個STDF文件作為一個單獨的map輸入,也就是說,每個STDF文件為一個單獨的邏輯分割,不需要再進行分割,即保證了每個STDF文件的獨立性與完整性。要實現此設計,只需重寫FileInputFormat子類中的isSplitable()方法,將返回值設為False,就可以達到將每個STDF文件作為一個邏輯分割的目的。

    當數據從HDFS被傳遞到mapper函數時,由數據文件名和數據內容作為Key-Value對。在整個MapReduce程序中,通過繼承mapper這個類來實現map,本文重寫map()方法,使得map()每次接收一個Key-Value對,然后系統就對這個Key-Value對進行處理,再分發出處理后的數據。

    mapper有setup()、map()、cleanup()和run()四個方法,其中setup()一般是用來進行一些map()前的準備工作,map()則一般承擔主要的處理工作,cleanup()則負責收尾工作,如關閉文件或者執行map()后的Key-Value分發等。在本系統中,setup()方法用來執行DistributedCache,將第三方軟件分發到各個節點后,執行軟件,對STDF文件進行轉換。執行命令如下:

    StdfToCsv.exe-stdf xxx.stdf-csv-o xxx

    “xxx”就是待轉換文件的名字,也就是Key值,因此,只需要將執行命令放入map()函數即可。程序啟動后,數據會以Key-Value對的形式傳輸到“StdfToCsv.exe”軟件中進行格式轉換。對于FileOutputFormat而言,與FileInputFormat情況一樣,本文同樣設計了StdfOutputFormat和StdfRecordWriter類來接收Key-Value對作為mapper的結果,結果將被輸出到HDFS中,最終實現海量測試數據的分布式格式轉換。

4 系統的測試與分析

    首先對測試數據格式轉換系統的正確性進行驗證,將20個STDF文件上傳到Hadoop集群中進行格式轉換,將得到的CSV格式文件從HDFS中下載到本地,與在本地進行格式轉換得到的CSV格式文件進行對比,結果表明兩種方法得到的CSV格式文件完全一致。

    其次,為了驗證格式轉換系統的性能,使用6組不同規模的數據集,如表1所示,每個原始STDF文件為100 MB左右。

jsj1-b1.gif

    測試在不同集群規模下格式轉換所用時間,包括集群中有2節點、3節點和4節點的情況,以及單臺機器在本地的格式轉換所用時間,如表2所示,時間曲線如圖6所示。

jsj1-b2.gif

jsj1-t6.gif

    表2及圖6顯示了各組數據集在格式轉換系統中的測試結果。從表及圖中可以看出,基于Hadoop的分布式格式轉換系統對于大量測試數據的格式轉換展現了非常出色的性能。當數據集大小為1 GB,同時采用4個節點進行格式轉換時,效率比本地單機轉換提高了大約70%左右;而當數據集的大小增加到30 GB,仍然采用4個節點進行格式轉換時,效率比單機轉換更是提高了75%之多。通過對比可以看出,在處理相同數據集時,隨著集群內節點數目的增長,時間會不斷減少,因此,在Hadoop集群上,采用MapReduce編程框架對數據進行處理,在系統系能上會得到極大的提升。

5 結束語

    隨著集成電路測試領域的飛速發展,每天都會產生數以萬計的芯片測試數據,在未來對測試數據進行存儲與處理方面將會面臨很多困難。本文以此為背景,圍繞HDFS分布式文件系統與MapReduce分布式編程框架展開討論,重點研究了基于Hadoop的測試數據存儲與格式轉換系統的設計與實現。

    隨著云計算與云存儲技術的不斷發展,測試數據在基于云平臺上的相關技術與研究也會越來越深入,同時為越來越多的用戶提供便利。

參考文獻

[1] GHEMAWAT S,GOBIOFF H,LEUNG S.The google file system[C].Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles,2003.

[2] 李寬.基于HDFS的分布式Namenode節點模型的研究[D].廣州:華南理工大學,2011.

[3] 鮑彤,陳維鋒,盧磊.基于Hadoop的分布式集群平臺構建方法研究[J].信息通信,2013(8):21-22.

[4] BORTHAKUR D.Hadoop distributed file system[EB/OL].(2007)[2015].http://www.hadoop.org.cn/resource.

[5] 郝向濤.基于Hadoop的分布式文件系統技術分析及應用[D].武漢:武漢理工大學,2013.

[6] BHANDARKAR M.MapReduce programming with apache Hadoop[C].Parallel & Distributed Processing(IPDPS),2010 IEEE International Symposium on.Parallel & Distributed Processing(IPDPS),2010:19-23.

[7] DEAN J,GHEMAWAT S.MapReduce:Simplified data processing on large clusters[C].OSDI′04,2004:137-149.

[8] 袁薇.標準測試數據格式(STDF)文件的研究[J].電子元器件應用,2009(4):70-73.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品一区二区你懂的| 国内偷自视频区视频综合| 久久不射网站| 亚洲欧美国产精品va在线观看| 日韩一级成人av| 亚洲精品你懂的| 亚洲国产精品999| 久久成人人人人精品欧| 午夜免费在线观看精品视频| 亚洲一区二区三区777| 一区二区免费在线播放| 日韩图片一区| 99国产精品| 中文欧美字幕免费| 亚洲天堂免费在线观看视频| 国产精品99久久久久久人| 亚洲视频精品| 亚洲自拍三区| 性高湖久久久久久久久| 欧美中文字幕在线视频| 亚洲高清视频在线观看| 亚洲国产另类久久精品| 亚洲欧洲一区二区在线播放| 亚洲精一区二区三区| 99视频在线精品国自产拍免费观看| 亚洲精品美女免费| 一区二区三欧美| 亚洲视频图片小说| 亚洲欧美卡通另类91av | 久久精品视频在线观看| 久久久999| 欧美成人影音| 欧美日韩三级一区二区| 国产精品免费一区二区三区在线观看 | 欧美乱妇高清无乱码| 欧美日韩国产系列| 国产精品久久久久永久免费观看| 国产欧美一区二区三区久久| 国内精品美女av在线播放| 亚洲第一视频网站| 一区二区三区久久精品| 亚洲欧美视频在线观看| 亚洲高清在线观看一区| 一区二区国产在线观看| 香蕉久久夜色精品| 久久一区二区三区av| 欧美精品国产精品日韩精品| 欧美午夜精品久久久久免费视| 国产欧美日韩视频一区二区三区 | 国产亚洲午夜| 91久久久亚洲精品| 亚洲一区二区三区成人在线视频精品| 欧美一区二区三区四区在线| 亚洲精品永久免费| 午夜激情一区| 欧美99久久| 国产精品久久久久久久电影 | 在线电影一区| 亚洲视频香蕉人妖| 亚洲国产视频一区二区| 亚洲一区二区欧美日韩| 久久人人爽人人爽爽久久| 欧美日韩成人| 国产一区三区三区| 99精品国产高清一区二区 | 久久疯狂做爰流白浆xx| 99riav国产精品| 久久精品国产亚洲一区二区三区| 欧美激情精品| 国产一区二区三区在线观看免费视频| 亚洲精品美女91| 久久爱www久久做| 一区二区三区四区五区精品视频 | 亚洲理论电影网| 欧美一级黄色录像| 亚洲少妇最新在线视频| 久久综合九色综合久99| 国产精品二区三区四区| 亚洲国产欧美不卡在线观看| 亚洲一区二区三区四区五区黄| 最新国产精品拍自在线播放| 先锋亚洲精品| 欧美日产一区二区三区在线观看| 国产亚洲午夜高清国产拍精品| 99视频超级精品| 最新国产乱人伦偷精品免费网站| 欧美制服第一页| 欧美视频在线观看一区| 在线欧美福利| 久久xxxx精品视频| 欧美一区二区视频观看视频| 欧美日韩一区二区三区在线视频| 在线播放不卡| 久久aⅴ国产紧身牛仔裤| 亚洲欧美亚洲| 欧美日韩视频第一区| 亚洲国产精品电影| 亚洲第一精品夜夜躁人人躁| 午夜在线电影亚洲一区| 欧美日韩一区二| 亚洲激情第一页| 最新69国产成人精品视频免费| 久久精品一二三区| 国产欧美视频一区二区| 亚洲一二三四区| 亚洲一区视频| 欧美日韩免费观看一区=区三区| 亚洲东热激情| 亚洲人成网站777色婷婷| 麻豆国产精品一区二区三区 | 一区二区久久久久久| 一片黄亚洲嫩模| 欧美精品一区二区三区视频| 亚洲国产精品视频| 亚洲啪啪91| 欧美国产91| 91久久综合亚洲鲁鲁五月天| 亚洲激情一区二区| 免费视频一区二区三区在线观看| 韩国成人福利片在线播放| 久久精品国产在热久久| 久久先锋资源| 在线观看欧美一区| 亚洲精品久久久蜜桃| 欧美福利视频| 亚洲激情二区| 一本色道久久88综合日韩精品| 欧美理论在线播放| 日韩视频免费观看高清在线视频| 夜夜嗨av一区二区三区四区 | 99精品国产高清一区二区| 在线亚洲电影| 欧美性做爰毛片| 亚洲欧美激情精品一区二区| 久久成人综合视频| 激情综合网址| 亚洲麻豆视频| 欧美日韩在线精品一区二区三区| 一区二区三区www| 欧美一区二区成人6969| 国产一区二区精品| 亚洲高清中文字幕| 欧美激情精品久久久久久黑人 | 国产亚洲女人久久久久毛片| 欧美在线日韩在线| 免费成人高清视频| 亚洲精品中文字幕女同| 亚洲一区在线看| 国产色婷婷国产综合在线理论片a| 欧美专区亚洲专区| 欧美jizzhd精品欧美喷水| 91久久久国产精品| 亚洲欧美日韩在线播放| 国产一区二区三区黄| 亚洲精品欧美精品| 欧美视频精品在线| 亚洲欧美影院| 欧美91视频| 亚洲视频网在线直播| 久久久久久亚洲精品中文字幕| 亚洲国产高清aⅴ视频| 亚洲一区免费视频| 黄色小说综合网站| 亚洲一区二区三| 好吊色欧美一区二区三区视频| 99精品国产一区二区青青牛奶 | 亚洲午夜精品17c| 久久久亚洲高清| 亚洲精品在线一区二区| 欧美在线视频全部完| 亚洲第一区在线观看| 亚洲综合久久久久| 一区二区视频免费完整版观看| 正在播放欧美视频| 狠久久av成人天堂| 亚洲一区二区高清| 在线观看91久久久久久| 亚洲欧美日韩国产一区二区三区 | 国内精品模特av私拍在线观看| 亚洲免费观看| 国产三区精品| 亚洲深夜激情| 在线不卡中文字幕播放| 午夜欧美视频| 91久久久在线| 久久久亚洲成人| 亚洲视频在线一区观看| 美女网站久久| 午夜亚洲一区| 欧美天天在线| 亚洲人精品午夜在线观看| 国产精品色婷婷| 99天天综合性| 激情欧美丁香| 欧美一区二区三区免费观看视频 | 亚洲午夜在线观看视频在线| 欧美成人国产va精品日本一级| 亚洲永久免费视频| 欧美日韩亚洲视频一区| 亚洲国产精品va|