《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Hadoop的測(cè)試數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于Hadoop的測(cè)試數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第7期
劉有耀,李 彬
西安郵電大學(xué) 專用集成電路設(shè)計(jì)中心,陜西 西安710061
摘要: 提出一種基于Hadoop軟件框架進(jìn)行海量測(cè)試數(shù)據(jù)處理的解決方案。在深入研究Hadoop分布式系統(tǒng)構(gòu)架、HDFS分布式文件系統(tǒng)以及MapReduce分布式編程模型的基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了二進(jìn)制測(cè)試數(shù)據(jù)文件到HDFS的傳輸機(jī)制以及基于MapReduce的測(cè)試數(shù)據(jù)分布式格式轉(zhuǎn)換系統(tǒng)。最后搭建實(shí)驗(yàn)環(huán)境,驗(yàn)證了整個(gè)系統(tǒng)的正確性并對(duì)分布式格式轉(zhuǎn)換系統(tǒng)進(jìn)行性能評(píng)估。與本地單機(jī)相比,系統(tǒng)在處理海量數(shù)據(jù)時(shí)具有更高的效率及更好的可拓展性。
中圖分類號(hào): TP311
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.039
中文引用格式: 劉有耀,李彬. 基于Hadoop的測(cè)試數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,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 引言

    在半導(dǎo)體業(yè)日漸成熟的今天,半導(dǎo)體測(cè)試已逐漸成為整條產(chǎn)業(yè)鏈中必不可少的重要環(huán)節(jié)。與此同時(shí),計(jì)算機(jī)科學(xué)與技術(shù)的不斷發(fā)展同樣為半導(dǎo)體測(cè)試提供了全方位的支持。集成電路規(guī)模的不斷增大,使得所要測(cè)試的項(xiàng)目隨之增多,同時(shí),測(cè)試數(shù)據(jù)量也在不斷增加。如何對(duì)海量的測(cè)試數(shù)據(jù)進(jìn)行有效的存儲(chǔ)以及處理成為集成電路測(cè)試數(shù)據(jù)研究領(lǐng)域里的熱門問題。

    本文首先介紹了現(xiàn)階段主流的大數(shù)據(jù)解決方案Hadoop的相關(guān)技術(shù),詳細(xì)研究Hadoop相關(guān)組件的功能和架構(gòu)。在此基礎(chǔ)上,設(shè)計(jì)并且實(shí)現(xiàn)了基于Hadoop的測(cè)試數(shù)據(jù)分布式處理系統(tǒng)。最后搭建實(shí)際的測(cè)試環(huán)境,對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試,驗(yàn)證了平臺(tái)的有效性和穩(wěn)定性,并對(duì)結(jié)果進(jìn)行了分析。

1 分布式系統(tǒng)相關(guān)技術(shù)研究

1.1 Hadoop

    Hadoop[1]的整體構(gòu)架如圖1所示,圖中每個(gè)最底層的長(zhǎng)方形代表一臺(tái)物理服務(wù)器,每臺(tái)物理服務(wù)器或稱物理節(jié)點(diǎn),通過網(wǎng)線連接到交換機(jī),交換機(jī)再連接到中心交換機(jī),客戶端通過互聯(lián)網(wǎng)來訪問。NameNode(名稱節(jié)點(diǎn))[2]、Secondary NameNode(輔助名稱節(jié)點(diǎn))[3]、DataNode(數(shù)據(jù)節(jié)點(diǎn))組成了Hadoop內(nèi)整個(gè)分布式文件系統(tǒng)的體系。

jsj1-t1.gif

1.2 HDFS

    HDFS[4]的分布式文件系統(tǒng)架構(gòu)如圖2所示。其中,NameNode的工作是管理文件系統(tǒng)的命名空間,它是整個(gè)系統(tǒng)的總控節(jié)點(diǎn),會(huì)記錄每個(gè)文件的數(shù)據(jù)塊在各個(gè)DataNode里的位置以及副本的信息,除此之外,它還需要記錄每個(gè)文件具體所在的集群節(jié)點(diǎn)。另外,NameNode還要協(xié)調(diào)客戶端對(duì)文件的訪問,當(dāng)有節(jié)點(diǎn)需要訪問某個(gè)文件時(shí),它會(huì)先去訪問NameNode來獲取此文件的位置信息,獲取信息后,它就可以與DataNode直接通信,來獲取數(shù)據(jù)塊[5]

jsj1-t2.gif

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

1.3 MapReduce

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

jsj1-t3.gif

2 測(cè)試數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)

    本文所研究的測(cè)試數(shù)據(jù)是基于泰瑞達(dá)公司的J750自動(dòng)測(cè)試機(jī),通過對(duì)集成電路測(cè)試得到標(biāo)準(zhǔn)測(cè)試數(shù)據(jù)格式文件(Standard Test Data Format,STDF)[8]。STDF是一種由泰瑞達(dá)公司開發(fā)的通過自動(dòng)測(cè)試機(jī)來收集測(cè)試數(shù)據(jù)的文件格式,它具有簡(jiǎn)單、靈活、便捷的特點(diǎn),為了最小化地占用存儲(chǔ)空間,它被設(shè)計(jì)為二進(jìn)制文件格式,由于很容易被快速且穩(wěn)定地進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,因此逐漸被很多自動(dòng)測(cè)試機(jī)供應(yīng)商所接受。

    隨著芯片制造工廠的不斷涌現(xiàn)及自動(dòng)測(cè)試機(jī)數(shù)量的不斷增加,產(chǎn)生的測(cè)試數(shù)據(jù)量將是海量的。因此,對(duì)測(cè)試數(shù)據(jù)處理時(shí)產(chǎn)生的時(shí)間損耗及運(yùn)算資源的需求量會(huì)不斷增大。

    本文基于MapReduce設(shè)計(jì)并實(shí)現(xiàn)一個(gè)測(cè)試數(shù)據(jù)分布式處理系統(tǒng),該系統(tǒng)通過對(duì)可擴(kuò)展運(yùn)算資源的集中使用,達(dá)到高處理性能。此系統(tǒng)實(shí)現(xiàn)了測(cè)試數(shù)據(jù)的分布式存儲(chǔ),同時(shí)使用了基于MapReduce的程序?qū)崿F(xiàn)了分布式的格式轉(zhuǎn)換功能,將STDF格式文件轉(zhuǎn)換為CSV格式文件,系統(tǒng)顯著提高了格式轉(zhuǎn)換的性能。

    系統(tǒng)總體架構(gòu)圖如圖4所示。系統(tǒng)主要由測(cè)試數(shù)據(jù)的分布式存儲(chǔ)與分布式格式轉(zhuǎn)換兩個(gè)部分組成。系統(tǒng)使用HDFS作為分布式并行處理的存儲(chǔ)平臺(tái),從FTP收集到的海量測(cè)試數(shù)據(jù)會(huì)被自動(dòng)分布到HDFS的數(shù)據(jù)節(jié)點(diǎn)中,然后,系統(tǒng)會(huì)利用Hadoop MapReduce對(duì)數(shù)據(jù)進(jìn)行分布式并行處理。

jsj1-t4.gif

    系統(tǒng)執(zhí)行的具體步驟如下:

    (1)數(shù)據(jù)采集。ATE收集的測(cè)試數(shù)據(jù)存儲(chǔ)在本地硬盤上,系統(tǒng)將會(huì)采集FTP上的所有STDF文件,并通過DFSClient程序?qū)⑽募蟼鞯紿DFS中,實(shí)現(xiàn)測(cè)試數(shù)據(jù)的分布式存儲(chǔ)。

    (2)數(shù)據(jù)處理。系統(tǒng)將HDFS中的數(shù)據(jù)傳遞給Map-Reduce框架,實(shí)現(xiàn)數(shù)據(jù)的分布式處理。這是本系統(tǒng)的主要工作。

    (3)數(shù)據(jù)返回。格式轉(zhuǎn)換完成后,數(shù)據(jù)將自動(dòng)上傳到HDFS中。

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

3 測(cè)試數(shù)據(jù)處理系統(tǒng)實(shí)現(xiàn)

3.1 測(cè)試數(shù)據(jù)在HDFS上的存儲(chǔ)實(shí)現(xiàn)

    測(cè)試數(shù)據(jù)文件將已“測(cè)試時(shí)間_LotID_WaferID”的格式進(jìn)行命名,DFS Client把測(cè)試數(shù)據(jù)上傳到HDFS中。

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

jsj1-t5.gif

3.2 測(cè)試數(shù)據(jù)格式轉(zhuǎn)換實(shí)現(xiàn)

    應(yīng)用程序在JobConf中通過url(hdfs://)指定需要被緩存的文件,即“StdfToCsv.exe”文件。此時(shí)該文件已經(jīng)被存放在HDFS上。MapReduce會(huì)在任務(wù)開始之前,將該文件分發(fā)到Slave節(jié)點(diǎn)上,而且僅會(huì)為沒有該文件的Slave節(jié)點(diǎn)緩存文件,這樣可以節(jié)約網(wǎng)絡(luò)帶寬,提高系統(tǒng)的運(yùn)行效率。測(cè)試數(shù)據(jù)格式轉(zhuǎn)換實(shí)現(xiàn)過程如下:

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

    (2)InputFormat將Key-Value對(duì)傳遞給mapper。mapper將會(huì)使用格式轉(zhuǎn)換軟件以完全分布式方式將STDF文件轉(zhuǎn)換為CSV文件,在mapper完成測(cè)試數(shù)據(jù)的格式轉(zhuǎn)換后,將結(jié)果傳遞給OutputFormat作為Key(文件名)和Value(文件內(nèi)容)。

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

    本文設(shè)計(jì)了一個(gè)StdfInputFormat類來讀取STDF文件,另外還設(shè)計(jì)了StdfRecordReader類從StdfInputFormat讀出數(shù)據(jù)并且傳遞給mapper函數(shù)。

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

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

    mapper有setup()、map()、cleanup()和run()四個(gè)方法,其中setup()一般是用來進(jìn)行一些map()前的準(zhǔn)備工作,map()則一般承擔(dān)主要的處理工作,cleanup()則負(fù)責(zé)收尾工作,如關(guān)閉文件或者執(zhí)行map()后的Key-Value分發(fā)等。在本系統(tǒng)中,setup()方法用來執(zhí)行DistributedCache,將第三方軟件分發(fā)到各個(gè)節(jié)點(diǎn)后,執(zhí)行軟件,對(duì)STDF文件進(jìn)行轉(zhuǎn)換。執(zhí)行命令如下:

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

    “xxx”就是待轉(zhuǎn)換文件的名字,也就是Key值,因此,只需要將執(zhí)行命令放入map()函數(shù)即可。程序啟動(dòng)后,數(shù)據(jù)會(huì)以Key-Value對(duì)的形式傳輸?shù)健癝tdfToCsv.exe”軟件中進(jìn)行格式轉(zhuǎn)換。對(duì)于FileOutputFormat而言,與FileInputFormat情況一樣,本文同樣設(shè)計(jì)了StdfOutputFormat和StdfRecordWriter類來接收Key-Value對(duì)作為mapper的結(jié)果,結(jié)果將被輸出到HDFS中,最終實(shí)現(xiàn)海量測(cè)試數(shù)據(jù)的分布式格式轉(zhuǎn)換。

4 系統(tǒng)的測(cè)試與分析

    首先對(duì)測(cè)試數(shù)據(jù)格式轉(zhuǎn)換系統(tǒng)的正確性進(jìn)行驗(yàn)證,將20個(gè)STDF文件上傳到Hadoop集群中進(jìn)行格式轉(zhuǎn)換,將得到的CSV格式文件從HDFS中下載到本地,與在本地進(jìn)行格式轉(zhuǎn)換得到的CSV格式文件進(jìn)行對(duì)比,結(jié)果表明兩種方法得到的CSV格式文件完全一致。

    其次,為了驗(yàn)證格式轉(zhuǎn)換系統(tǒng)的性能,使用6組不同規(guī)模的數(shù)據(jù)集,如表1所示,每個(gè)原始STDF文件為100 MB左右。

jsj1-b1.gif

    測(cè)試在不同集群規(guī)模下格式轉(zhuǎn)換所用時(shí)間,包括集群中有2節(jié)點(diǎn)、3節(jié)點(diǎn)和4節(jié)點(diǎn)的情況,以及單臺(tái)機(jī)器在本地的格式轉(zhuǎn)換所用時(shí)間,如表2所示,時(shí)間曲線如圖6所示。

jsj1-b2.gif

jsj1-t6.gif

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

5 結(jié)束語(yǔ)

    隨著集成電路測(cè)試領(lǐng)域的飛速發(fā)展,每天都會(huì)產(chǎn)生數(shù)以萬計(jì)的芯片測(cè)試數(shù)據(jù),在未來對(duì)測(cè)試數(shù)據(jù)進(jìn)行存儲(chǔ)與處理方面將會(huì)面臨很多困難。本文以此為背景,圍繞HDFS分布式文件系統(tǒng)與MapReduce分布式編程框架展開討論,重點(diǎn)研究了基于Hadoop的測(cè)試數(shù)據(jù)存儲(chǔ)與格式轉(zhuǎn)換系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。

    隨著云計(jì)算與云存儲(chǔ)技術(shù)的不斷發(fā)展,測(cè)試數(shù)據(jù)在基于云平臺(tái)上的相關(guān)技術(shù)與研究也會(huì)越來越深入,同時(shí)為越來越多的用戶提供便利。

參考文獻(xiàn)

[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節(jié)點(diǎn)模型的研究[D].廣州:華南理工大學(xué),2011.

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

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

[5] 郝向濤.基于Hadoop的分布式文件系統(tǒng)技術(shù)分析及應(yīng)用[D].武漢:武漢理工大學(xué),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] 袁薇.標(biāo)準(zhǔn)測(cè)試數(shù)據(jù)格式(STDF)文件的研究[J].電子元器件應(yīng)用,2009(4):70-73.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩视频三区| 99在线视频精品| 欧美成人免费全部| 最新日韩在线视频| 亚洲欧美日韩一区二区三区在线观看| …久久精品99久久香蕉国产| 国产精品毛片va一区二区三区| 欧美91精品| 久久婷婷av| 亚洲精品国产精品国自产观看浪潮 | 亚洲视频欧美视频| 亚洲高清视频在线| 一本大道久久a久久综合婷婷| 亚洲一区二区3| 午夜精品久久久久久久| 精品成人免费| 国产精品毛片va一区二区三区 | 这里只有精品视频| 亚洲激情视频网| 久久福利精品| 亚洲美女黄网| 亚洲黄一区二区| 欧美网站在线观看| 亚洲国产另类久久久精品极度| 日韩午夜激情| 亚洲承认在线| 国产日韩精品一区| 国产精品影音先锋| 国产精品亚洲成人| 国产精品久久久久影院色老大| 欧美日韩国产片| 欧美日韩在线不卡一区| 欧美成人激情视频| 欧美刺激性大交免费视频| 欧美 日韩 国产在线| 久久午夜精品一区二区| 久久免费精品视频| 久久久午夜电影| 久久亚洲精品一区| 亚洲免费久久| 久久疯狂做爰流白浆xx| 亚洲丰满少妇videoshd| 亚洲黄色在线观看| 亚洲免费高清视频| 一区二区三区鲁丝不卡| 99国产精品久久久| 这里只有精品丝袜| 亚洲国产二区| 久久久久久9999| 欧美一区深夜视频| 亚洲一区在线免费观看| 9久草视频在线视频精品| 亚洲国产高清一区| 在线日韩欧美视频| 国产精品家教| 国产私拍一区| 国一区二区在线观看| 国产日韩亚洲| 国产色综合久久| 国内精品**久久毛片app| 国产精品中文字幕欧美| 免费看亚洲片| 欧美日韩成人| 久久久亚洲高清| 欧美国产日韩一区二区三区| 欧美日韩亚洲一区| 国产精品v欧美精品v日韩 | 国产精品尤物| 欧美精品乱码久久久久久按摩| 亚洲精品中文字幕在线| 午夜在线a亚洲v天堂网2018| 欧美专区一区二区三区| 韩国福利一区| 午夜日韩av| 亚洲日本aⅴ片在线观看香蕉| 欧美国产成人在线| 欧美在线视频免费观看| 亚洲高清色综合| 亚洲一区二区av电影| 亚洲精品字幕| 亚洲午夜日本在线观看| 亚洲男女毛片无遮挡| 久久电影一区| 麻豆精品在线视频| 免费成人网www| 亚洲资源av| 亚洲第一页自拍| 亚洲欧美区自拍先锋| 久久尤物视频| 久久精品国产清自在天天线| 亚洲一区二区三区高清不卡| 一本色道婷婷久久欧美| 国产精品免费在线| 久久久久高清| 午夜精品久久久久久久男人的天堂| 另类天堂av| 久久精品国产第一区二区三区最新章节 | 亚洲尤物在线视频观看| 亚洲视频播放| 国产欧美精品| 欧美在线1区| 欧美午夜不卡在线观看免费| 亚洲日本成人在线观看| 欧美在线高清| 亚洲综合国产激情另类一区| 亚洲国产精品久久精品怡红院| 亚洲人人精品| 午夜精品剧场| 亚洲免费电影在线| 小黄鸭精品密入口导航| 一区二区三区视频免费在线观看| 久久精品人人做人人爽| 欧美日韩综合一区| 欧美黄色aa电影| 欧美成人情趣视频| 亚洲欧美亚洲| 亚洲日本欧美日韩高观看| 性欧美1819性猛交| 欧美国产日韩免费| 午夜激情综合网| 亚洲欧洲在线看| 99亚洲一区二区| 一区二区三区精品视频| 亚洲欧美在线免费| 一区二区三区鲁丝不卡| 久久综合久久久| 国产女主播一区| 日韩亚洲国产欧美| 亚洲国产另类 国产精品国产免费| 亚洲欧美日韩精品久久久久| 欧美裸体一区二区三区| 国产日韩在线一区二区三区| 在线视频你懂得一区| 亚洲美女免费精品视频在线观看| 亚洲精品中文字| 亚洲激情偷拍| 久久综合久久综合这里只有精品 | 欧美一区影院| 国产精品大片免费观看| 国产综合色产在线精品| 午夜精品视频在线观看| 亚洲在线不卡| 99re热这里只有精品视频 | 性18欧美另类| 在线视频一区二区| 欧美无乱码久久久免费午夜一区| 国产欧美三级| 久久一区二区三区四区| 久久精品视频免费观看| 先锋影音国产精品| 亚洲在线免费视频| 一本色道久久综合狠狠躁的推荐| 一区二区三区蜜桃网| 亚洲国产成人高清精品| 久久黄色小说| 国产三区二区一区久久| 性欧美xxxx视频在线观看| 久久国产夜色精品鲁鲁99| 亚洲欧洲久久| 国产日本欧美一区二区三区在线| 国产欧美一区二区三区视频| 国产一区二区高清视频| 国产亚洲激情在线| 国内精品久久久久影院优| 国产美女精品视频| 国产日韩欧美a| 国内精品视频在线播放| 日韩视频专区| 久久精品夜夜夜夜久久| 夜夜嗨av一区二区三区网页| 欧美在线观看网站| 亚洲午夜日本在线观看| 久久精品一区二区三区不卡牛牛 | 性做久久久久久免费观看欧美| 亚洲一级网站| 久久在线免费观看视频| 久久亚洲欧洲| 亚洲影院免费观看| 欧美激情精品久久久久久久变态| 久久精品一区二区三区中文字幕 | 亚洲欧美中文日韩在线| 久久成人精品视频| 国产情人综合久久777777| 久久av资源网| 欧美高清视频在线播放| 一区二区三区国产精品| 久久电影一区| 亚洲欧洲日韩在线| 亚洲欧美激情在线视频| 亚洲少妇在线| 欧美日韩亚洲一区二区| 亚洲精品1区| 亚洲国产一区二区视频| 亚洲乱码久久| 久久久久国产精品一区三寸| 国产亚洲一区在线| 久久av一区二区| 久久婷婷国产综合国色天香| 国产亚洲欧美一区在线观看| 亚洲欧美日韩国产综合|