• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于MapReduce模式的多表聯(lián)查算法

    2015-07-22 22:29:06高澤李常寶楊淙鈞劉忠麟艾中良
    現(xiàn)代電子技術(shù) 2015年14期

    高澤+李常寶+楊淙鈞+劉忠麟+艾中良

    摘 要: 多表關(guān)聯(lián)查詢是進行數(shù)據(jù)挖掘與分析的有效技術(shù)手段。隨著大數(shù)據(jù)時代的到來,當(dāng)前的數(shù)據(jù)分析技術(shù)在進行海量數(shù)據(jù)多表聯(lián)查操作時存在明顯的性能瓶頸,為此提出一種基于MapReduce計算模型的多表聯(lián)查算法UGS用以提升多表關(guān)聯(lián)查詢效率。實驗表明,在海量數(shù)據(jù)背景下,該算法的查詢效率明顯優(yōu)于大數(shù)據(jù)領(lǐng)域的SparkSQL,Hive及關(guān)系型數(shù)據(jù)庫的MySQL。

    關(guān)鍵詞: MapReduce; 多表聯(lián)查; 關(guān)聯(lián)空間剪枝; Spark

    中圖分類號: TN911?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2015)14?0081?04

    在當(dāng)今的生產(chǎn)生活中,圍繞著每個人每件事都會產(chǎn)生大量的數(shù)據(jù),而這些數(shù)據(jù)往往是分布在不同的數(shù)據(jù)文件中,想對這些數(shù)據(jù)進行處理分析就必然要用到多表聯(lián)合查詢,聯(lián)合查詢在實際的生產(chǎn)生活中非常有必要。當(dāng)前的多表聯(lián)合查詢主要通過兩種方式實現(xiàn):一種是基于傳統(tǒng)數(shù)據(jù)庫的表JOIN方式,這種方式存在數(shù)據(jù)規(guī)模瓶頸問題,無法支撐大規(guī)模數(shù)據(jù)關(guān)聯(lián);另一種是基于大數(shù)據(jù)技術(shù)的多源數(shù)據(jù)融合[1]方式,雖然能夠解決關(guān)聯(lián)查詢在數(shù)據(jù)規(guī)模方面的瓶頸問題,但在運行效率方面存在較大的優(yōu)化空間,目前難以滿足交互式查詢需求。因此,針對當(dāng)前多表關(guān)聯(lián)查詢領(lǐng)域存在的問題,本文提出了一種基于MapReduce計算模型[2]的新型多表聯(lián)查方法;實驗表明,在解決多表關(guān)聯(lián)數(shù)據(jù)規(guī)模瓶頸的基礎(chǔ)上,較當(dāng)前大數(shù)據(jù)領(lǐng)域的多表關(guān)聯(lián)模式能夠顯著提升運行效率。

    1 相關(guān)工作介紹

    當(dāng)前多表關(guān)聯(lián)查詢主要借助2種方式實現(xiàn):關(guān)系型數(shù)據(jù)庫方式和分布式并行計算方式。下面通過一個關(guān)聯(lián)查詢實例對2種實現(xiàn)方式進行復(fù)雜性分析。假設(shè)2張待聯(lián)查的表table1和table2,其中table1的數(shù)據(jù)量為C1條,table2的數(shù)據(jù)量為C2條。要求輸出table1.Key =table2.Key的條件下2張表的所有行,即:“SELECT * FROM table1 INNER JOIN table2 ON table1.Key=table2.Key”。

    1.1 關(guān)系型數(shù)據(jù)庫的實現(xiàn)

    傳統(tǒng)關(guān)系型數(shù)據(jù)庫的多表關(guān)聯(lián)查詢采用基于關(guān)聯(lián)條件的集合相乘思路實現(xiàn)[3],針對table1的每行數(shù)據(jù),在table2中對其關(guān)鍵字(Key)進行查找,如果找到滿足條件的數(shù)據(jù),那么把它們組合成一條新數(shù)據(jù)存儲到結(jié)果數(shù)據(jù)集中。此時數(shù)據(jù)庫需要處理的條數(shù)為C1C2,也就是說時間復(fù)雜度為O(C1C2)。在此模式下,兩表規(guī)模均為10萬條數(shù)據(jù)時其響應(yīng)時間已經(jīng)達到5 min以上,兩表規(guī)模達到百萬條時,運行2 h仍未得到結(jié)果。

    1.2 分布式處理引擎的實現(xiàn)

    分布式并行計算實現(xiàn)方式主要基于大數(shù)據(jù)技術(shù)體系中的MapReduce模式展開,目前方法主要有Hive[4],Spark[5]兩種方式。

    1.2.1 MapReduce編程模型概述

    MapReduce編程模型以(Key,Value)元組為基本單位展開數(shù)據(jù)處理,整個處理過程分為Map、Reduce兩個階段:Map階段處理輸入數(shù)據(jù)并將處理結(jié)果基于Key值通過哈希計算映射到Reduce處理節(jié)點;Reduce階段處理本地數(shù)據(jù)并輸出結(jié)果。由于相同Key值的哈希計算結(jié)果是確定的,因此,每個Reduce處理節(jié)點上完整保存了該key值的所有數(shù)據(jù),編程人員在只需在每個Reduce節(jié)點處理本地數(shù)據(jù)即可完成對全局?jǐn)?shù)據(jù)的處理。

    1.2.2 分布式處理引擎執(zhí)行多表聯(lián)查

    Hive提供SQL查詢接口,通過對用戶輸入的查詢?nèi)蝿?wù)進行語法樹解析,將SQL查詢轉(zhuǎn)化成Hadoop的MapReduce任務(wù)集,基于MapReduce展開數(shù)據(jù)處理[6],由于MapReduce存在中間數(shù)據(jù)磁盤讀寫瓶頸,從而在很大程度上限制了Hive的執(zhí)行效率。Spark分析引擎針對Hadoop的MapReduce中間數(shù)據(jù)磁盤讀寫瓶頸基于內(nèi)存計算展開優(yōu)化,使得同樣功能的任務(wù)在大部分情況下比Hadoop執(zhí)行效率更優(yōu),Spark在執(zhí)行多表關(guān)聯(lián)查詢時采用優(yōu)化的笛卡爾積關(guān)聯(lián)算法,雖然性能較傳統(tǒng)的笛卡爾積有所優(yōu)化,但是復(fù)雜度依舊為笛卡爾積的O(C1C2),并且空間復(fù)雜度為O(C1C2)。Hive在進行數(shù)據(jù)關(guān)聯(lián)查詢時,單作業(yè)單機數(shù)據(jù)規(guī)模超過2 000 000×10 000 000時,執(zhí)行時間在1 min以上,存在較大的優(yōu)化空間;Spark對Hive的執(zhí)行過程進行了基于內(nèi)存的執(zhí)行效率優(yōu)化,但關(guān)聯(lián)計算過程存在內(nèi)存占用不可控的問題,當(dāng)單作業(yè)單機數(shù)據(jù)規(guī)模超過20 000 000[×]100 000 000時,會因內(nèi)存溢出導(dǎo)致關(guān)聯(lián)查詢無法完成,數(shù)據(jù)規(guī)模相對較小時也存在一定的運行效率優(yōu)化空間。

    因此需要設(shè)計一種空間膨脹相對可控,并且時間復(fù)雜度更低的算法來提高海量數(shù)據(jù)多表關(guān)聯(lián)效率,從而提升海量分析能力。

    2 算法的設(shè)計與實現(xiàn)

    2.1 算法思路

    本算法主要借助MapReduce計算模型展開,在Map階段,對各表記錄添加來源標(biāo)記,并將各表數(shù)據(jù)采用相同的散列算法進行映射分發(fā),使各表相同的Key值被集中到相同的處理節(jié)點上;在Reduce階段,基于各表標(biāo)記進行關(guān)聯(lián)結(jié)果篩選,本地化獲取關(guān)聯(lián)查詢結(jié)果集。算法介紹如下:

    算法名:UGS(Union Group and Segmentation)算法。

    輸入?yún)?shù):參與關(guān)聯(lián)查詢的表路徑及關(guān)聯(lián)條件集,關(guān)聯(lián)查詢結(jié)果輸出路徑。

    輸出數(shù)據(jù):關(guān)聯(lián)查詢結(jié)果。

    執(zhí)行步驟:在上述實例中,算法在集群上的執(zhí)行過程如下:

    (1) 在Map階段通過數(shù)據(jù)格式變換,將參與關(guān)聯(lián)查詢的各表數(shù)據(jù)統(tǒng)一為相同格式。將聯(lián)合查詢條件中的Key單獨抽取出來,其他數(shù)據(jù)存放在OtherRecord中,并添加標(biāo)記以記錄來源的TableID,Map階段輸出為 (Key,TableID,OtherRecord)。

    (2) 在Reduce階段,輸入Map階段的輸出結(jié)果,對Key值相同的記錄進行關(guān)聯(lián)篩選,如果某個Key存在于所有表中,那么是1條或多條(可能存在1個Key在某一table下存在多行)有效的結(jié)果。并將結(jié)果按表格式處理后輸出。

    算法首先需要遍歷數(shù)據(jù),對每條數(shù)據(jù)通過Key計算出Reduce標(biāo)識,Reduce端完成數(shù)據(jù)收集后,在每個Reduce內(nèi)通過排序?qū)ey相同的記錄整合在一起然后進行檢索條件的完備性判斷。在這種計算模式下,假設(shè)有N張表參與聯(lián)查,第i張表的數(shù)據(jù)量為[Ci],共有M個Map和R個Reduce參與并發(fā)計算。令[Sum= 1NCi],那么算法的期望時間復(fù)雜度為[O(SumM+SumR×log2SumR)],空間復(fù)雜度為O(Sum)。如在兩表聯(lián)查下,時間復(fù)雜度為[OC1+C2M+C1+C2R×log2C1+C2R],空間復(fù)雜度為O(C1+C2)。在最壞情況下,即多張表內(nèi)的Key列所有數(shù)據(jù)只有一個相同的值X,那么此方法的結(jié)果會退化為笛卡爾積結(jié)果,時間復(fù)雜度會退化到[O(1NCi)]。但是,在實際條件下很難有這種情況發(fā)生,并且如果關(guān)鍵字完全相同,那么結(jié)果數(shù)據(jù)集的數(shù)據(jù)量為[1NCi]條,此次聯(lián)查不論在任何方法下復(fù)雜度都不會小于[O(1NCi)]。可以看到,由于復(fù)雜度數(shù)量級不同,在表規(guī)模較大,并且關(guān)鍵字離散的條件下,本算法的執(zhí)行時間相較于笛卡爾積優(yōu)化算法會大幅縮短,并且很好地解決了空間膨脹問題。

    2.2 基于Spark的算法實現(xiàn)

    本文基于大數(shù)據(jù)分析引擎Spark展開算法實現(xiàn),首先介紹Spark相關(guān)的幾個概念和操作:

    SparkContext:Spark程序的入口,可以在聲明時定義各種系統(tǒng)參數(shù),如集群主節(jié)點位置,單個任務(wù)使用的最大內(nèi)存量,需要核心數(shù)等等。

    RDD(Resilient Distributed Datasets):彈性分布式數(shù)據(jù)集,它是Spark系統(tǒng)提供的一種分布式內(nèi)存抽象,可以支持基于工作集的應(yīng)用,同時具有數(shù)據(jù)流模型自動容錯,位置感知調(diào)度和可伸縮性的特點。它允許用戶在執(zhí)行任務(wù)時顯示的將工作集緩存在內(nèi)存中,后續(xù)的操作能夠重用工作集,極大地提升了執(zhí)行速度。

    TextFile:讀取本地或者分布式文件系統(tǒng)的數(shù)據(jù)并生成RDD。使用方法為RDD=sparkContext.textFile(FilePath)。其中FilePath為字符串類型,可以為本地文件路徑或者hdfs路徑。

    union:將相同格式的兩個RDD合并為一個,使用方式為RDD.union(OtherRDD)。

    GroupByKey:是將數(shù)據(jù)按Key排序,并將相同Key的所有其他數(shù)據(jù)合并為一個List。使用方式為RDD.GroupByKey()。

    算法實現(xiàn)如下:

    輸入:結(jié)果輸出路徑OutputPath,多張表詳細信,每張表以(表路徑,關(guān)鍵字列的列號)二元組形式描述。

    輸出:以文件形式返回分布式文件系統(tǒng)。

    實現(xiàn)步驟:

    (1) 讀取數(shù)據(jù)并將每張表的數(shù)據(jù)處理為統(tǒng)一格式。使用Spark調(diào)用hdfs數(shù)據(jù)的系統(tǒng)接口TextFile從分布式文件系統(tǒng)中讀取數(shù)據(jù),對于每張表所對應(yīng)的文件,生成文件的惟一標(biāo)識(TableID)并添加到文件的每行數(shù)據(jù)之內(nèi),再通過Map操作處理為固定格式的數(shù)據(jù),即RDD(String, (String, String)),存儲的數(shù)據(jù)為(Key, (TableID, OtherRecord))。

    (2) 將多張表的數(shù)據(jù)合并到一起。由于經(jīng)過步驟(1)處理后數(shù)據(jù)格式相同,可以使用RDD的union操作來進行合并,這樣合并后的數(shù)據(jù)可以使用Spark本身提供的方法GroupByKey來對數(shù)據(jù)進行處理。

    (3) 使用GroupByKey將關(guān)鍵字相同的數(shù)據(jù)合并為一條記錄。即將Key相同的數(shù)據(jù)行中的(TableID,Record)放在一個List下。

    (4) 檢索數(shù)據(jù),剔除不滿足條件的數(shù)據(jù)。對步驟(3)執(zhí)行過GroupByKey操作的數(shù)據(jù),對每一行數(shù)據(jù)根據(jù)用戶需求的連接方式進行數(shù)據(jù)的整理刪除,如INNER JOIN就是對每一個Key判斷該Key對應(yīng)的數(shù)據(jù)是否包含所有表的內(nèi)容,如果是則是滿足條件的結(jié)果,如果缺少某張表的數(shù)據(jù),那么便不滿足要求,對其進行刪除操作。而LEFT JOIN和RIGHT JOIN等則只要存在指定表的數(shù)據(jù)就會被保留下來。

    (5) 將符合條件的數(shù)據(jù)拆分還原。由于某些表中,相同的Key可能存在多條數(shù)據(jù)與之對應(yīng),需要將這種數(shù)據(jù)還原、補全成多條。如在在學(xué)校學(xué)生的數(shù)據(jù)庫中,同一姓名“A”可能對應(yīng)著多個學(xué)生,這樣在與其他表進行以姓名為關(guān)鍵字的聯(lián)查時,“A”的結(jié)果數(shù)據(jù)應(yīng)該為多行,而由于GroupByKey操作會將這些數(shù)據(jù)化為1行,所以需要進行拆分,將之還原為多行“A”。而在實現(xiàn)上,對每行數(shù)據(jù)生成若干的ArrayBuffer,然后將這些ArrayBuffer進行全乘就可以獲得拆分后的結(jié)果。

    (6) 將最終數(shù)據(jù)存入文件系統(tǒng)中。

    3 對比實驗

    實驗環(huán)境:

    集群硬件:5臺實驗機組成的集群環(huán)境,其中主節(jié)點擁有4核心16 GB內(nèi)存,4臺從節(jié)點擁有4核心4 GB內(nèi)存,每個核心擁有3.4 GHz的主頻。

    軟件部署:操作系統(tǒng)為Ubuntu 12.04;MySQL為MySQL Ver14.14 Distrib 5.5.29;Hadoop集群為Hadoop?2.2.0;Spark集群為Spark?1.1.0;Hive為0.12;Scala為2.10.4。

    實驗方案:本算法需要與現(xiàn)有的關(guān)系型數(shù)據(jù)庫、傳統(tǒng)分布式文件系統(tǒng)處理方案進行橫向?qū)Ρ龋陉P(guān)系型數(shù)據(jù)庫可接受的數(shù)據(jù)范圍內(nèi),做出數(shù)據(jù)量從小到大的對比實驗;并在數(shù)據(jù)規(guī)模較大的前提下,與SPARKJOIN[7]和Hive進行對比實驗。

    與關(guān)系型數(shù)據(jù)庫對比實驗:設(shè)計5組不同的數(shù)據(jù)規(guī)模的數(shù)據(jù),每組數(shù)據(jù)由2張表構(gòu)成。其中關(guān)系型數(shù)據(jù)庫使用INNER JOIN命令進行查找。由于聯(lián)查需要生成2個表條數(shù)相乘的中間數(shù)據(jù)集,所以在規(guī)模分別為10萬條與100萬條數(shù)據(jù)的兩表進行聯(lián)查時,會生成[1011]規(guī)模的數(shù)據(jù),并在1 h內(nèi)無法返回結(jié)果。故5組聯(lián)查數(shù)據(jù)數(shù)據(jù)量分別為(1 000[×]1 000),(1 000[×]10 000),(10 000[×]10 000),(10 000×100 000),(100 000×100 000)。

    與傳統(tǒng)分布式文件系統(tǒng)處理方案的比較:由于數(shù)據(jù)分發(fā)、I/O等條件的限制,分布式文件系統(tǒng)處理數(shù)據(jù)有一定的數(shù)據(jù)傳遞時間,所以在小規(guī)模數(shù)據(jù)處理方面,數(shù)據(jù)分析時間占比較少,所以需要在一定規(guī)模的數(shù)據(jù)下進行橫向?qū)Ρ?。因此設(shè)計5組數(shù)據(jù)進行對比實驗。聯(lián)查數(shù)據(jù)規(guī)模分別為(104[×]104),(105[×]105), (106[×]106),(106[×]107),(107[×]107)。2張表的格式如表1所示,其中待聯(lián)查列均是ID列。

    表1 表結(jié)構(gòu)

    3.1 UGS算法與常用關(guān)系型數(shù)據(jù)庫比較

    UGS算法與MySQL比較如圖1所示。表2為UGS算法與MySQL執(zhí)行時間對比。

    可以看到,由于磁盤I/O、網(wǎng)絡(luò)I/O、任務(wù)劃分、數(shù)據(jù)分發(fā)收集需要占用一定時間,故在數(shù)據(jù)量較少的情況下,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫仍有著較大的優(yōu)勢,但是在數(shù)據(jù)量增大時,中間數(shù)據(jù)集每增大10倍,關(guān)系型數(shù)據(jù)庫所需處理時間都會增大約10倍,在對一張100 000條記錄的表與1 000 000條記錄的表進行聯(lián)查時,MySQL運行了1 h仍未返回結(jié)果。而本文的UGS算法在數(shù)據(jù)量較小時,雖然也需要進行幾秒的查詢,但是增長穩(wěn)定,在2張100 000條與100 000條的表進行聯(lián)查時,效率比MySQL提升了將近100倍,在數(shù)據(jù)量繼續(xù)增長的條件下,將會有著更大地提升。

    圖1 UGS算法與MySQL比較

    表2 UGS算法與MySQL執(zhí)行時間對比

    3.2 UGS算法與其他大數(shù)據(jù)平臺實現(xiàn)的比較

    UGS算法與Hive,SPARKJOIN比較如圖2所示。而對于傳統(tǒng)的大數(shù)據(jù)方案,SPARKJOIN相對于Hive優(yōu)化了任務(wù)分發(fā)收集等步驟,所以效率相差穩(wěn)定為10~20 s之間,而UGS算法相對SPARKJOIN和Hive來講,由于算法復(fù)雜度的優(yōu)化,所以隨著數(shù)據(jù)規(guī)模增大,處理效率相較于Hive和SPARKJOIN有著較大地提升。

    3.3 UGS算法在多表聯(lián)查下與當(dāng)前大數(shù)據(jù)實現(xiàn)方案的比較

    對于多表聯(lián)查而言,由于UGS算法本身的復(fù)雜度為[O(SumM+SumR×log2SumR)],導(dǎo)致添加一張表所需的時間開銷較少;而當(dāng)前的大數(shù)據(jù)實現(xiàn)方案中,復(fù)雜度為[O(1NCiR)],每添加一張表復(fù)雜度都會提升一個數(shù)量級。所以在多表聯(lián)查下,UGS算法相較于當(dāng)前大數(shù)據(jù)實現(xiàn)方案優(yōu)勢更加明顯。

    圖2 UGS算法與Hive,SPARKJOIN比較

    表3 UGS算法與SPARKJOIN處理時間

    對于3張數(shù)據(jù)規(guī)模均為1 000萬條的表,以相同的Key列進行聯(lián)查,SparkJoin使用了182.170 s得出結(jié)果,Hive使用了207.281 s獲取結(jié)果,而UGS算法僅僅需要56.494 s就可以得出結(jié)果,可以看到由于增加表之后增加了任務(wù)的并發(fā)程度,并且更好的數(shù)據(jù)本地化降低了系統(tǒng)I/O開銷,導(dǎo)致了處理時間相對于2張表聯(lián)查增加了僅10 s。實驗表明,在多表聯(lián)查(表數(shù)大于等于3)的條件下,UGS算法相對于當(dāng)前的大數(shù)據(jù)解決方案效率提升更高。

    4 結(jié) 語

    本文提出了一種基于MapReduce的多表聯(lián)查算法用于實現(xiàn)海量多源數(shù)據(jù)的快速關(guān)聯(lián)查詢。實驗表明,在數(shù)據(jù)量為10萬條與100萬條的兩表聯(lián)查中,UGS算法相較于傳統(tǒng)關(guān)系型數(shù)據(jù)庫有著7~8倍的提升,在每張表數(shù)據(jù)量均為100萬條的兩表聯(lián)查中,相較于關(guān)系型數(shù)據(jù)庫有著100倍的性能提升,隨著數(shù)據(jù)量提升UGS算法的優(yōu)勢有著更明顯的體現(xiàn)。

    在基于大數(shù)據(jù)技術(shù)的實現(xiàn)方案比較中,當(dāng)參與關(guān)聯(lián)的單表數(shù)據(jù)規(guī)模達到1 000萬級時,UGS相對于SPARKJOIN性能提升了約1倍,相對于Hive提升了1倍有余,并且隨著數(shù)據(jù)規(guī)模增大、待聯(lián)查表數(shù)量增多性能提升將更為明顯。

    參考資料

    [1] WHITE T. Hadoop: the definitive guide [M]. 3rd ed. BeiJing: OReilly Media, 2013.

    [2] DEAN J, GHEMAWAT S. MapReduce: simplified data processing on large clusters [J]. Communications of the ACM: 50th Anniversary Issue, 2008, 51(1): 107?113.

    [3] VARDI M. The complexity of relational query languages [C]// Proceedings of the fourteenth annual ACM symposium on Theory of computing. USA: ACM, 1982: 137?146.

    [4] THUSOO A, SARMA J S, JAIN N, et al. Hive: a warehousing solution over a map?reduce framework [J]. Proceedings of the VLDB Endowment, 2009, 2(2): 1626?1629.

    [5] ZAHARIA M, CHOWDHURY M, DAS T, et al. Resilient distributed datasets: A fault?tolerant abstraction for in?memory cluster computing [C]// Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation. [S.l.]: USENIX Association, 2012: 2?12.

    [6] YANG H, DASDAN A, HSIAO R L, et al. Map?reduce?merge: simplified relational data processing on large clusters [C]// Proceedings of the ACM SIGMOD International Conference on Management of Data. New York: ACM, 2007: 1029?1040.

    [7] LUO Yi, WANG Wei, LIN Xuemin. Spark: A keyword search engine on relational databases [C]// Proceedings of 2013 IEEE 29th International Conference on Data Engineering (ICDE). [S.l.]: IEEE, 2008: 1111?1118.

    [8] CYGANIAK R. A relational algebra for SPARQL, HPL?2005?170 [D]. Bristol: Digital Media Systems Laboratory, 2005.

    日韩免费高清中文字幕av| 99精品欧美一区二区三区四区| xxx96com| 国产成人精品久久二区二区91| 免费av毛片视频| 亚洲第一av免费看| 91成人精品电影| 国产深夜福利视频在线观看| 亚洲精品粉嫩美女一区| 真人一进一出gif抽搐免费| 在线播放国产精品三级| 侵犯人妻中文字幕一二三四区| 精品国产一区二区三区四区第35| 欧美成人性av电影在线观看| 在线观看日韩欧美| 亚洲中文日韩欧美视频| 大型黄色视频在线免费观看| 国产黄a三级三级三级人| 久久久久九九精品影院| 精品一区二区三区av网在线观看| 国产成人欧美| 久久久国产精品麻豆| 久9热在线精品视频| 最新美女视频免费是黄的| 一级a爱视频在线免费观看| 巨乳人妻的诱惑在线观看| 俄罗斯特黄特色一大片| 亚洲熟女毛片儿| av在线播放免费不卡| а√天堂www在线а√下载| 国产欧美日韩综合在线一区二区| 久久这里只有精品19| 久久精品亚洲av国产电影网| 国产一区二区三区综合在线观看| 高潮久久久久久久久久久不卡| 制服人妻中文乱码| 国产精品一区二区免费欧美| 黄色a级毛片大全视频| 亚洲欧美日韩高清在线视频| 最近最新中文字幕大全电影3 | 免费在线观看黄色视频的| 国内久久婷婷六月综合欲色啪| 曰老女人黄片| 啦啦啦免费观看视频1| 男女之事视频高清在线观看| √禁漫天堂资源中文www| 欧美精品啪啪一区二区三区| 一区福利在线观看| 久久久久国内视频| 亚洲情色 制服丝袜| 国产视频一区二区在线看| 午夜福利一区二区在线看| 人成视频在线观看免费观看| 国产精品一区二区在线不卡| 欧美日韩亚洲高清精品| 午夜福利在线免费观看网站| 亚洲免费av在线视频| 咕卡用的链子| 国产精品久久久av美女十八| 精品福利永久在线观看| 黑人欧美特级aaaaaa片| 999精品在线视频| 日本精品一区二区三区蜜桃| 亚洲色图 男人天堂 中文字幕| 国产日韩一区二区三区精品不卡| 在线观看免费视频日本深夜| 亚洲视频免费观看视频| 亚洲五月婷婷丁香| 中文字幕高清在线视频| 18禁观看日本| videosex国产| 中文字幕色久视频| 侵犯人妻中文字幕一二三四区| 男人舔女人下体高潮全视频| av超薄肉色丝袜交足视频| 91麻豆av在线| 国产乱人伦免费视频| 婷婷六月久久综合丁香| 波多野结衣一区麻豆| 精品一区二区三区av网在线观看| 91字幕亚洲| 亚洲精品国产精品久久久不卡| 真人一进一出gif抽搐免费| 久久午夜综合久久蜜桃| 午夜两性在线视频| 99精品欧美一区二区三区四区| 99在线视频只有这里精品首页| 91老司机精品| 日本免费一区二区三区高清不卡 | 日韩欧美一区视频在线观看| netflix在线观看网站| 国产视频一区二区在线看| 精品国产一区二区三区四区第35| 久久久久久久午夜电影 | 国产成人精品久久二区二区免费| 欧美国产精品va在线观看不卡| 一二三四在线观看免费中文在| 国产乱人伦免费视频| 午夜精品国产一区二区电影| 亚洲av成人不卡在线观看播放网| 99精品欧美一区二区三区四区| 午夜精品久久久久久毛片777| 中文字幕av电影在线播放| 成人国产一区最新在线观看| 免费观看人在逋| 99久久综合精品五月天人人| 一边摸一边做爽爽视频免费| 琪琪午夜伦伦电影理论片6080| 老司机午夜十八禁免费视频| 亚洲欧美精品综合一区二区三区| 精品乱码久久久久久99久播| 热99re8久久精品国产| 女人爽到高潮嗷嗷叫在线视频| 亚洲国产精品999在线| 国产成人精品无人区| 国产高清videossex| 亚洲 欧美 日韩 在线 免费| 亚洲人成77777在线视频| 夜夜夜夜夜久久久久| 日韩国内少妇激情av| 欧美黑人精品巨大| 麻豆国产av国片精品| 91精品国产国语对白视频| 女人高潮潮喷娇喘18禁视频| 大型av网站在线播放| 国产人伦9x9x在线观看| 日韩欧美国产一区二区入口| 老鸭窝网址在线观看| 国产人伦9x9x在线观看| 日本五十路高清| 亚洲av第一区精品v没综合| 欧洲精品卡2卡3卡4卡5卡区| 一进一出抽搐gif免费好疼 | 欧美在线一区亚洲| 欧美 亚洲 国产 日韩一| 美女大奶头视频| 久久人妻福利社区极品人妻图片| 高清在线国产一区| 女人被躁到高潮嗷嗷叫费观| 亚洲国产精品一区二区三区在线| 淫妇啪啪啪对白视频| 天天躁夜夜躁狠狠躁躁| 69av精品久久久久久| 国产av一区在线观看免费| 久久精品91蜜桃| 亚洲精品国产精品久久久不卡| 国产97色在线日韩免费| 97人妻天天添夜夜摸| 美女高潮喷水抽搐中文字幕| 国产精品亚洲av一区麻豆| 国产精品久久久久成人av| 黄色女人牲交| 久9热在线精品视频| 美国免费a级毛片| 亚洲国产精品999在线| 久久精品91无色码中文字幕| 精品卡一卡二卡四卡免费| av欧美777| 中文欧美无线码| 看免费av毛片| 中文亚洲av片在线观看爽| 午夜免费鲁丝| 久久精品国产综合久久久| 亚洲精品国产区一区二| 国产一区在线观看成人免费| 久久久水蜜桃国产精品网| 亚洲av第一区精品v没综合| 久99久视频精品免费| 色尼玛亚洲综合影院| 男男h啪啪无遮挡| 欧美乱色亚洲激情| 亚洲全国av大片| 宅男免费午夜| 淫秽高清视频在线观看| a在线观看视频网站| 成年女人毛片免费观看观看9| 人人妻人人添人人爽欧美一区卜| 日韩精品中文字幕看吧| 久久久久亚洲av毛片大全| 国产成人精品无人区| 黄片播放在线免费| 国产不卡一卡二| 亚洲色图 男人天堂 中文字幕| 91九色精品人成在线观看| 国产高清激情床上av| 一级作爱视频免费观看| 欧美日韩精品网址| 极品教师在线免费播放| 成人影院久久| 天天躁狠狠躁夜夜躁狠狠躁| 免费在线观看黄色视频的| 757午夜福利合集在线观看| 91精品三级在线观看| e午夜精品久久久久久久| 亚洲一区中文字幕在线| 91成年电影在线观看| 欧美日韩亚洲国产一区二区在线观看| 黑人巨大精品欧美一区二区蜜桃| 国产精品久久视频播放| 日日摸夜夜添夜夜添小说| 一a级毛片在线观看| 69精品国产乱码久久久| 亚洲精品一卡2卡三卡4卡5卡| 亚洲熟妇熟女久久| 黑人猛操日本美女一级片| 男人舔女人的私密视频| 又大又爽又粗| 欧美国产精品va在线观看不卡| 国产精品二区激情视频| 日本三级黄在线观看| 纯流量卡能插随身wifi吗| 99在线人妻在线中文字幕| 成人黄色视频免费在线看| xxxhd国产人妻xxx| 精品福利观看| 久久国产精品男人的天堂亚洲| 一边摸一边抽搐一进一小说| 亚洲专区字幕在线| 天堂√8在线中文| 十八禁网站免费在线| 国产欧美日韩一区二区精品| 国产免费男女视频| 久久香蕉国产精品| 国产精品 欧美亚洲| 韩国精品一区二区三区| 久久九九热精品免费| 一本大道久久a久久精品| 一进一出好大好爽视频| 久久久久国产一级毛片高清牌| 久久久久久免费高清国产稀缺| 深夜精品福利| 免费在线观看亚洲国产| 久久久久国产精品人妻aⅴ院| 国产一卡二卡三卡精品| 一边摸一边抽搐一进一小说| 黄色怎么调成土黄色| 黑人巨大精品欧美一区二区蜜桃| 性色av乱码一区二区三区2| 高清在线国产一区| 纯流量卡能插随身wifi吗| 日本a在线网址| 两个人看的免费小视频| 亚洲全国av大片| 国产精品久久久人人做人人爽| 亚洲五月天丁香| 国产成人啪精品午夜网站| 一区二区三区激情视频| 免费在线观看完整版高清| 国产精品偷伦视频观看了| 国产高清国产精品国产三级| 亚洲专区国产一区二区| 无遮挡黄片免费观看| 18禁国产床啪视频网站| 免费观看人在逋| 自拍欧美九色日韩亚洲蝌蚪91| av免费在线观看网站| 女性生殖器流出的白浆| 脱女人内裤的视频| 他把我摸到了高潮在线观看| 女人被狂操c到高潮| 国产精品一区二区精品视频观看| 欧美一区二区精品小视频在线| 女性被躁到高潮视频| 国产高清激情床上av| 成人黄色视频免费在线看| 亚洲国产欧美网| 悠悠久久av| 精品久久久久久久毛片微露脸| 两人在一起打扑克的视频| 国产乱人伦免费视频| 亚洲熟妇中文字幕五十中出 | 老司机深夜福利视频在线观看| 一级a爱片免费观看的视频| 亚洲国产精品一区二区三区在线| 国产麻豆69| 久久人人爽av亚洲精品天堂| 侵犯人妻中文字幕一二三四区| 91麻豆精品激情在线观看国产 | 一级毛片高清免费大全| 超碰97精品在线观看| 国产免费现黄频在线看| 91麻豆av在线| 久热爱精品视频在线9| 亚洲成av片中文字幕在线观看| 夜夜夜夜夜久久久久| 国产精品免费视频内射| 99精品欧美一区二区三区四区| av片东京热男人的天堂| 曰老女人黄片| 天堂动漫精品| 精品国产一区二区久久| 中文字幕精品免费在线观看视频| 国产男靠女视频免费网站| 久久精品国产亚洲av高清一级| 国产av一区在线观看免费| 黑人巨大精品欧美一区二区蜜桃| 满18在线观看网站| 中文字幕最新亚洲高清| 黄色 视频免费看| 国产精品av久久久久免费| 丰满人妻熟妇乱又伦精品不卡| 亚洲精品在线美女| 欧美激情极品国产一区二区三区| aaaaa片日本免费| 九色亚洲精品在线播放| 长腿黑丝高跟| 亚洲情色 制服丝袜| 日本 av在线| 久久草成人影院| 亚洲伊人色综图| 别揉我奶头~嗯~啊~动态视频| 黑人巨大精品欧美一区二区mp4| 性色av乱码一区二区三区2| 亚洲午夜理论影院| 成人亚洲精品一区在线观看| 丝袜美足系列| videosex国产| 亚洲国产欧美网| 成年人免费黄色播放视频| 天堂影院成人在线观看| 久久精品国产清高在天天线| 在线播放国产精品三级| 欧美午夜高清在线| 正在播放国产对白刺激| 亚洲成人国产一区在线观看| 两个人看的免费小视频| 欧美黑人欧美精品刺激| 91老司机精品| 久久精品影院6| 搡老乐熟女国产| 婷婷六月久久综合丁香| 亚洲avbb在线观看| 日韩欧美一区视频在线观看| 国产精品永久免费网站| 国产精品国产av在线观看| 精品午夜福利视频在线观看一区| 国产xxxxx性猛交| 国产单亲对白刺激| 亚洲国产毛片av蜜桃av| 色综合欧美亚洲国产小说| 无遮挡黄片免费观看| 日韩一卡2卡3卡4卡2021年| 老熟妇仑乱视频hdxx| 两性夫妻黄色片| 一区二区三区激情视频| 亚洲色图 男人天堂 中文字幕| 夜夜看夜夜爽夜夜摸 | 国产成人免费无遮挡视频| 亚洲视频免费观看视频| 久久人人爽av亚洲精品天堂| 免费高清视频大片| 窝窝影院91人妻| 长腿黑丝高跟| 一级毛片精品| 成人免费观看视频高清| 91在线观看av| 亚洲狠狠婷婷综合久久图片| 香蕉久久夜色| 久久99一区二区三区| 欧美 亚洲 国产 日韩一| 欧美日韩乱码在线| 热99国产精品久久久久久7| 久久人妻福利社区极品人妻图片| 不卡av一区二区三区| 女生性感内裤真人,穿戴方法视频| 精品久久久久久久久久免费视频 | 欧美成人免费av一区二区三区| 在线视频色国产色| 老司机午夜福利在线观看视频| 美女大奶头视频| 欧美一级毛片孕妇| 久久亚洲精品不卡| 制服人妻中文乱码| 深夜精品福利| 免费一级毛片在线播放高清视频 | 午夜老司机福利片| av中文乱码字幕在线| 日本wwww免费看| 99久久人妻综合| 97超级碰碰碰精品色视频在线观看| 嫩草影视91久久| aaaaa片日本免费| 欧美日本亚洲视频在线播放| 久久草成人影院| 99re在线观看精品视频| 国内久久婷婷六月综合欲色啪| 午夜福利一区二区在线看| 亚洲欧洲精品一区二区精品久久久| 两个人免费观看高清视频| 国产片内射在线| 国产精品久久久人人做人人爽| 伦理电影免费视频| 十八禁网站免费在线| 日日夜夜操网爽| 欧美日韩中文字幕国产精品一区二区三区 | 露出奶头的视频| 亚洲av成人一区二区三| 欧美日韩亚洲综合一区二区三区_| 精品国产国语对白av| 黄色视频,在线免费观看| 国产亚洲精品一区二区www| 丝袜美腿诱惑在线| 亚洲午夜精品一区,二区,三区| 欧美在线一区亚洲| 中文亚洲av片在线观看爽| 成年人黄色毛片网站| 每晚都被弄得嗷嗷叫到高潮| 日韩一卡2卡3卡4卡2021年| 亚洲成人免费av在线播放| 女人被狂操c到高潮| 巨乳人妻的诱惑在线观看| 亚洲男人的天堂狠狠| 精品人妻在线不人妻| 国产片内射在线| 人人妻人人爽人人添夜夜欢视频| 日日夜夜操网爽| 亚洲人成77777在线视频| 亚洲专区字幕在线| a级毛片在线看网站| 黄网站色视频无遮挡免费观看| 青草久久国产| 成人国产一区最新在线观看| 亚洲成国产人片在线观看| 男人舔女人下体高潮全视频| 国产精品一区二区在线不卡| 国产黄a三级三级三级人| 在线国产一区二区在线| 亚洲av第一区精品v没综合| 97人妻天天添夜夜摸| 一区二区三区精品91| 国产高清视频在线播放一区| 亚洲成a人片在线一区二区| 啦啦啦免费观看视频1| svipshipincom国产片| 久久中文看片网| 一级毛片女人18水好多| 日韩视频一区二区在线观看| 日韩精品中文字幕看吧| 青草久久国产| 99久久人妻综合| 中出人妻视频一区二区| 女警被强在线播放| 亚洲精品在线观看二区| 成熟少妇高潮喷水视频| 亚洲av美国av| 看黄色毛片网站| 久久亚洲真实| 亚洲精品在线美女| 极品人妻少妇av视频| 亚洲第一av免费看| 久久影院123| 亚洲精品粉嫩美女一区| av电影中文网址| 日日干狠狠操夜夜爽| 国产精品1区2区在线观看.| 香蕉国产在线看| 亚洲全国av大片| 中文字幕色久视频| 亚洲第一青青草原| 亚洲av片天天在线观看| 高清黄色对白视频在线免费看| 女同久久另类99精品国产91| 午夜精品久久久久久毛片777| 日本五十路高清| 欧美另类亚洲清纯唯美| www.999成人在线观看| 亚洲午夜理论影院| 电影成人av| 欧美亚洲日本最大视频资源| 99久久精品国产亚洲精品| 在线观看一区二区三区| 久久久久久久久免费视频了| 亚洲性夜色夜夜综合| 国产精品国产高清国产av| 99riav亚洲国产免费| 三上悠亚av全集在线观看| 少妇的丰满在线观看| 国产av一区二区精品久久| 黄片播放在线免费| 久久中文字幕一级| 一边摸一边做爽爽视频免费| x7x7x7水蜜桃| 婷婷六月久久综合丁香| 看片在线看免费视频| 天堂中文最新版在线下载| 精品少妇一区二区三区视频日本电影| 18禁黄网站禁片午夜丰满| 巨乳人妻的诱惑在线观看| 久久热在线av| 俄罗斯特黄特色一大片| 亚洲五月色婷婷综合| 99热国产这里只有精品6| 波多野结衣av一区二区av| 成人影院久久| 嫩草影院精品99| a级毛片黄视频| 后天国语完整版免费观看| 村上凉子中文字幕在线| 制服人妻中文乱码| 大陆偷拍与自拍| 一级a爱视频在线免费观看| 亚洲人成电影免费在线| 国产一区在线观看成人免费| 人妻丰满熟妇av一区二区三区| 日韩欧美免费精品| 黑人巨大精品欧美一区二区mp4| 国产国语露脸激情在线看| 亚洲国产精品999在线| 久久热在线av| 日韩欧美免费精品| 激情视频va一区二区三区| 免费不卡黄色视频| 久久精品国产亚洲av香蕉五月| 亚洲 欧美一区二区三区| 日本免费a在线| 国产视频一区二区在线看| 久久这里只有精品19| 久热这里只有精品99| 国产1区2区3区精品| 交换朋友夫妻互换小说| 日本免费一区二区三区高清不卡 | 777久久人妻少妇嫩草av网站| 午夜精品久久久久久毛片777| 日本欧美视频一区| 欧美最黄视频在线播放免费 | 欧美日韩国产mv在线观看视频| 色精品久久人妻99蜜桃| 久久欧美精品欧美久久欧美| 久久久久精品国产欧美久久久| 午夜福利免费观看在线| 亚洲五月色婷婷综合| 免费在线观看亚洲国产| 久久精品国产清高在天天线| 91九色精品人成在线观看| 久久久久九九精品影院| 久久人人精品亚洲av| 最近最新中文字幕大全电影3 | 久久国产精品男人的天堂亚洲| 夜夜躁狠狠躁天天躁| 18禁美女被吸乳视频| 身体一侧抽搐| 欧美日韩亚洲国产一区二区在线观看| 欧美激情极品国产一区二区三区| 老熟妇乱子伦视频在线观看| 国产精品美女特级片免费视频播放器 | 1024香蕉在线观看| 午夜福利影视在线免费观看| 香蕉国产在线看| 久久国产精品男人的天堂亚洲| 久久青草综合色| cao死你这个sao货| 亚洲专区中文字幕在线| www.精华液| 五月开心婷婷网| 久热爱精品视频在线9| 色婷婷av一区二区三区视频| 99热只有精品国产| 日韩国内少妇激情av| 69精品国产乱码久久久| 欧美黑人精品巨大| 精品国产国语对白av| 男人的好看免费观看在线视频 | 国产精品永久免费网站| 亚洲性夜色夜夜综合| 亚洲精品在线美女| 成熟少妇高潮喷水视频| 久久久国产精品麻豆| 黑人巨大精品欧美一区二区mp4| 国产亚洲欧美98| 亚洲熟妇中文字幕五十中出 | 欧美人与性动交α欧美精品济南到| av在线播放免费不卡| 亚洲中文日韩欧美视频| 午夜免费激情av| 免费少妇av软件| 国产精品电影一区二区三区| 免费搜索国产男女视频| 午夜免费成人在线视频| 人人澡人人妻人| 日本a在线网址| 天天躁夜夜躁狠狠躁躁| 国产高清国产精品国产三级| 久久人妻熟女aⅴ| 丝袜在线中文字幕| 成熟少妇高潮喷水视频| 成人亚洲精品一区在线观看| 夜夜看夜夜爽夜夜摸 | 精品人妻1区二区| 精品久久久久久久久久免费视频 | 香蕉久久夜色| 国产熟女午夜一区二区三区| 男女做爰动态图高潮gif福利片 | 一边摸一边做爽爽视频免费| 成年女人毛片免费观看观看9| 亚洲精品国产精品久久久不卡| 变态另类成人亚洲欧美熟女 | 免费日韩欧美在线观看| 人人妻人人澡人人看| 在线免费观看的www视频| 国产精品乱码一区二三区的特点 | 午夜91福利影院| 久久九九热精品免费| 日本 av在线| 香蕉久久夜色| 中文字幕人妻熟女乱码| 免费av毛片视频| 免费日韩欧美在线观看| 精品无人区乱码1区二区| 亚洲第一青青草原| 一边摸一边抽搐一进一出视频| 日本撒尿小便嘘嘘汇集6| 亚洲av成人av| 侵犯人妻中文字幕一二三四区| 中文字幕色久视频| 欧美日韩中文字幕国产精品一区二区三区 |