精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MapReduce 經(jīng)典設(shè)計,給了我們哪些架構(gòu)啟示?

開發(fā) 架構(gòu)
MapReduce 不是一個產(chǎn)品,而是一種解決問題的思路,它有多個工程實現(xiàn),Google在論文中也給出了它自己的工程架構(gòu)實現(xiàn)。

第一部分:MapReduce究竟解決什么問題。

很多時候,定義清楚問題比解決問題更難。

1. 什么是MapReduce?

它不是一個產(chǎn)品,而是一種解決問題的思路,它有多個工程實現(xiàn),Google在論文中也給出了它自己的工程架構(gòu)實現(xiàn)。

2. MapReduce這個編程模型解決什么問題?

能夠用分治法解決的問題,例如:

  • 網(wǎng)頁抓取;
  • 日志處理;
  • 索引倒排;
  • 查詢請求匯總;

畫外音:現(xiàn)實中有許多基于分治的應用需求。

3. 為什么是Google,發(fā)明了這個模型?

Google網(wǎng)頁抓取,分析,倒排的多個應用場景,當時的技術(shù)體系,解決不了Google大數(shù)據(jù)量高并發(fā)量的需求,Google被迫進行技術(shù)創(chuàng)新,思考出了這個模型。

畫外音:誰痛誰想辦法。

4. 為什么MapReduce對“能夠用分治法解決的問題”特別有效?

分治法,是將一個大規(guī)模的問題,分解成多個小規(guī)模的問題(分),多個小規(guī)模問題解決,再統(tǒng)籌小問題的解(合),就能夠解決大規(guī)模的問題。

5. Google MapReduce為什么能夠成功?

Google為了方便用戶使用系統(tǒng),提供給了用戶很少的接口,去解決復雜的問題。

  • Map函數(shù)接口:處理一個基于key/value(后簡稱kv)的成對(pair)數(shù)據(jù)集合,同時也輸出基于kv的數(shù)據(jù)集合;
  • Reduce函數(shù)接口:用來合并Map輸出的kv數(shù)據(jù)集合;

畫外音:MapReduce系統(tǒng)架構(gòu),能在大規(guī)模普通PC集群上實現(xiàn)并行處理,和GFS等典型的互聯(lián)網(wǎng)架構(gòu)類似。

用戶僅僅關(guān)注少量接口,不用關(guān)心并行、容錯、數(shù)據(jù)分布、負載均衡等細節(jié),又能夠解決很多實際的問題,還有這等好事!

6. 能不能舉一個例子,說明下MapReduce的Map函數(shù)與Reduce函數(shù)是如何解決實際問題的?

舉例:假設(shè)要統(tǒng)計大量文檔中單詞出現(xiàn)的個數(shù)。

(1) Map

  • 輸入KV:pair(文檔名稱,文檔內(nèi)容)
  • 輸出KV:pair(單詞,1)

畫外音:一個單詞出現(xiàn)一次,就輸出一個1。

(2) Reduce

  • 輸入KV:pair(單詞,1)
  • 輸入KV:pair(單詞,總計數(shù))

以下是一段偽代碼:Map(list<pair($doc_name, $doc_content)>){

Map(list<pair($doc_name, $doc_content)>){
    foreach(pair in list)
        foreach($word in $doc_content)
            echo pair($word, 1); // 輸出list<k,v>
}

畫外音:如果有多個Map進程,輸入可以是一個pair,不是一個list。

Reduce(list<pair($word, $count)>){// 大量(單詞,1)
    map<string,int> result;
    foreach(pair in list)
        result[$word] += $count;
    foreach($keyin result)
        echo pair($key, result[$key]); // 輸出list<k,v>
}

畫外音:即使有多個Reduce進程,輸入也是list<pair>,因為它的輸入是Map的輸出。

最早在單機的體系下計算,輸入數(shù)據(jù)量巨大的時候,處理很慢。如何能夠在短時間內(nèi)完成處理,很容易想到的思路是,將這些計算分布在成百上千的主機上,但此時,會遇到各種復雜的問題,例如:

  • 并行計算
  • 數(shù)據(jù)分發(fā)
  • 錯誤處理
  • 集群通訊

這些綜合到一起,就成為了一個困難的問題,這也是Google MapReduce工程架構(gòu)要解決的問題。

第二部分:MapReduce的核心優(yōu)化思路。

為了解決上述場景遇到的各種復雜問題,MapReduce的核心優(yōu)化思路是:

  • 并行;
  • 先分再合;

下圖簡述了MR計算“詞頻統(tǒng)計”的過程。

從左到右四個部分,分別是:

  • 輸入文件;
  • 分:M個并行的map計算實例;
  • 合:R個并行的reduce計算實例;
  • 輸出結(jié)果;

先看最后一步,reduce輸出最終結(jié)果。

可以看到,R個reduce實例并發(fā)進行處理,直接輸出最后的計數(shù)結(jié)果。

  • 實例1輸出:(a, 256)(able, 128)(emacs, 1)
  • 實例2輸出:(f*ck, 32768) (coding, 65535)
  • 實例3輸出:(vim,65535)(x, 16)(zero, 258)

畫外音:這就是總結(jié)果,可以看到vim比emacs受歡迎很多。

需要理解的是,由于這是業(yè)務(wù)計算的最終結(jié)果,一個單詞的計數(shù)不會出現(xiàn)在兩個實例里。即:如果(a, 256)出現(xiàn)在了實例1的輸出里,就一定不會出現(xiàn)在其他實例的輸出里。

畫外音:否則的話,還需要合并,就不是最終結(jié)果了。

再看中間步驟,map到reduce的過程。

可以看到,M個map實例的輸出,會作為R個reduce實例的輸入。

1. 潛在問題一:

每個map都有可能輸出(a, 1),而最終結(jié)果(a, 256)必須由一個reduce輸出,那如何保證每個map輸出的同一個key,落到同一個reduce上去呢?

這就是“分區(qū)函數(shù)”的作用。

(1) 什么是分區(qū)函數(shù)?

分區(qū)函數(shù),是使用MapReduce的用戶需要實現(xiàn)的,決定map輸出的每一個key應當落到哪個reduce上的函數(shù)。

畫外音:如果用戶沒有實現(xiàn),會使用默認分區(qū)函數(shù)。

以詞頻統(tǒng)計的應用為例,分區(qū)函數(shù)可能是:

  • 以[a-g]開頭的key落到第一個reduce實例;
  • 以[h-n]開頭的key落到第二個reduce實例;
  • 以[o-z]開頭的key落到第三個reduce實例;

畫外音:有點像數(shù)據(jù)庫水平切分的“范圍法”。

(2) 分區(qū)函數(shù)實現(xiàn)要點是什么?

為了保證每一個reduce實例都能夠差不多時間結(jié)束工作任務(wù),分區(qū)函數(shù)的實現(xiàn)要點是:盡量負載均衡。

畫外音:即數(shù)據(jù)均勻分攤。

上述詞頻統(tǒng)計的分區(qū)函數(shù),就不是負載均衡的,有些reduce實例處理的單詞多,有些reduce處理的單詞少,這樣就可能出現(xiàn),所有reduce實例都處理結(jié)束,最后等待一個長尾reduce的情況。

對于詞頻統(tǒng)計,負載更為均衡的分區(qū)函數(shù)為:

hash(key) % 3

畫外音:有點像數(shù)據(jù)庫水平切分的“哈希法”。

2. 潛在問題二:

每個map都有可能輸出多個(a, 1),這樣無形中增大了網(wǎng)絡(luò)帶寬資源,以及reduce的計算資源,有沒有辦法進行優(yōu)化呢?

這就是“合并函數(shù)”的作用。

(1) 什么是合并函數(shù)?

有時,map產(chǎn)生的中間key的重復數(shù)據(jù)比重很大,可以提供給用戶一個自定義函數(shù),在一個map實例完成工作后,本地就做一次合并,這樣網(wǎng)絡(luò)傳輸與reduce計算資源都能節(jié)省很多。

合并函數(shù)在每個map任務(wù)結(jié)束前都會執(zhí)行一次,一般來說,合并函數(shù)與reduce函數(shù)是一樣的,區(qū)別是:

  • 合并函數(shù)執(zhí)行map實例本地數(shù)據(jù)合并;
  • reduce函數(shù)執(zhí)行最終的合并,會收集多個map實例的數(shù)據(jù);

對于詞頻統(tǒng)計應用,合并函數(shù)可以將:

一個map實例的多個(a, 1)合并成一個(a, $count)輸出。

最后看第一個個步驟,輸入文件到map的過程。

3. 潛在問題三:如何確定文件到map的輸入呢?

隨意即可,只要負載均衡,均勻切分輸入文件大小就行,不用管分到哪個map實例。

畫外音:無論分到那個map都能正確處理。

結(jié)論,Google MapReduce實施了一系列的優(yōu)化:

  • 分區(qū)函數(shù):保證不同map輸出的相同key,落到同一個reduce里;
  • 合并函數(shù):在map結(jié)束時,對相同key的多個輸出做本地合并,節(jié)省總體資源;
  • 輸入文件到map如何切分:隨意,切分均勻就行;

第三部分:MapReduce的工程架構(gòu)實踐。

1. 上述優(yōu)化后的執(zhí)行流程,Google MapReduce通過怎樣的工程架構(gòu)實現(xiàn)的呢?

先看下總體架構(gòu)圖,有個直觀的印象。

2. 用戶使用GoogleMR系統(tǒng),必須輸入的是什么?

(1) 輸入數(shù)據(jù),必選

畫外音:否則系統(tǒng)處理啥。

(2) map函數(shù),必選

(3) reduce函數(shù),必選

畫外音:分治法,分與合的業(yè)務(wù)邏輯。

(4) 分區(qū)函數(shù),必選

畫外音:保證同一個key,在合并階段,必須落到同一個reduce上,系統(tǒng)提供默認hash(key)法。

(5) 合并函數(shù),可選

畫外音:看用戶是否需要在map結(jié)束階段進行優(yōu)化。

3. 用戶提供各個輸入后,GoogleMR的執(zhí)行流程是什么?

畫外音:不妨假設(shè),用戶設(shè)置了M個map節(jié)點,R個reduce節(jié)點;例如:M=500,R=200。

(1) 在集群中創(chuàng)建大量可執(zhí)行實例副本(fork);

(2) 這些副本中有一個master,其他均為worker,任務(wù)的分配由master完成, M個map實例和R個reduce實例由worker完成;

(3) 將輸入數(shù)據(jù)分成M份,然后被分配到map任務(wù)的worker,從其中一份讀取輸入數(shù)據(jù),執(zhí)行用戶的map函數(shù)處理,并在本地內(nèi)存生成臨時數(shù)據(jù);

(4) 本地內(nèi)存臨時數(shù)據(jù),通過分區(qū)函數(shù),被分成R份,周期性的寫到本地磁盤,由master調(diào)度,傳給被分配到reduce任務(wù)的worker;

(5) 負責reduce任務(wù)的worker,從遠程讀取多個map輸出的數(shù)據(jù),執(zhí)行用戶的reduce函數(shù)處理,處理結(jié)果寫入輸出文件;

畫外音:可能對key要進行外部排序。

(6) 所有map和reduce的worker都結(jié)束工作后,master喚醒用戶程序,MapReduce調(diào)用返回,結(jié)果被輸出到了R個文件中。

4. GoogleMR系統(tǒng)里的master和worker是啥?

(1) master:單點master會存儲一些元數(shù)據(jù),監(jiān)控所有map與reduce的狀態(tài),記錄哪個數(shù)據(jù)要給哪個map,哪個數(shù)據(jù)要給哪個reduce,掌控全局視野,做中控;

畫外音:是不是和GFS的master非常像?

(2) worker:多個worker進行業(yè)務(wù)邏輯處理,具體一個worker是用來執(zhí)行map還是reduce,是由master調(diào)度的;

畫外音:是不是和工作線程池非常像?這里的worker是分布在多臺機器上的而已。

5. master的高可用是如何保證的?

一個簡單的方法是,將元數(shù)據(jù)固化到磁盤上,用一個shadow-master來做高可用。

畫外音:GFS不就是這么干的么?

然而現(xiàn)實情況是:沒有將元數(shù)據(jù)固化到磁盤上,元數(shù)據(jù)被存放在master的內(nèi)存里用以提高工作效率,當master掛掉后,通知用戶“任務(wù)執(zhí)行失敗”,讓其選擇重新執(zhí)行。

畫外音:

  • (單點master,掌控全局視野,能讓系統(tǒng)的復雜性降低非常多;
  • master掛掉的概率很小;
  • 不做高可用,能讓系統(tǒng)的復雜性降低非常多;

6. worker的高可用是如何保證的?

master會周期性的ping每個worker,如果超時未返回,master會把對應的worker置為無效,把這個worker的工作任務(wù)重新執(zhí)行:

  • 如果重新執(zhí)行的是reduce任務(wù),不需要有額外的通知;
  • 如果重新執(zhí)行的是map任務(wù),需要通知執(zhí)行reduce的worker節(jié)點,輸入數(shù)據(jù)換了一個worker;

7. 隨時都可能有map或者reduce掛掉,任務(wù)完成前重新被執(zhí)行,會不會影響MR的最終結(jié)果?

在用戶輸入不變的情況下,MR的輸出一定是不變的,這就要求MR系統(tǒng)必須具備冪等性:

  • 對相同的輸入,不管哪個負責map的worker執(zhí)行的結(jié)果,一定是不變的,產(chǎn)出的R個本地輸出文件內(nèi)容也一定是不變的;
  • 對于M個map,每個map輸出的R個本地文件,只要這些輸入不變,對應接收這些數(shù)據(jù)的reduce的worker執(zhí)行結(jié)果,一定是不變的,輸出文件內(nèi)容也一定是不變的;

8. 長尾效應怎么解決?

一個MR執(zhí)行時間的最大短板,往往是“長尾worker”。

導致“長尾worker”的原因有很多:

(1) 用戶的分區(qū)函數(shù)設(shè)計得不合理,導致某些reduce負載不均,要處理大量的數(shù)據(jù);

畫外音:

最壞的情況,所有數(shù)據(jù)最終都落到一個reduce上,分布式并行處理,轉(zhuǎn)變?yōu)榱藛螜C串行處理;

所以,分區(qū)函數(shù)的負載均衡性,是用戶需要考慮的。

(2) 因為系統(tǒng)的原因,worker所在的機器磁盤壞了,CPU有問題,也可能導致任務(wù)執(zhí)行很慢;

GoogleMR有一個“備用worker”的機制,當某些worker的執(zhí)行時間超出預期時,會啟動另一個worker執(zhí)行相同的任務(wù),以嘗試解決長尾效應。

總結(jié)

Google MapReduce架構(gòu),體現(xiàn)了很多經(jīng)典架構(gòu)實踐:

  • 單點master簡化系統(tǒng)復雜度;
  • 單點master不高可用,簡化系統(tǒng)復雜度;
  • master對worker的監(jiān)控以及重啟,保證worker高可用;
  • 冪等性,保證結(jié)果的正確性;
  • 多個worker執(zhí)行同一個任務(wù)優(yōu)化長尾問題;

參考:《GFS 經(jīng)典設(shè)計,給了我們哪些架構(gòu)啟示?

知其然,知其所以然。

思路比結(jié)論更重要。

責任編輯:趙寧寧 來源: 架構(gòu)師之路
相關(guān)推薦

2025-08-07 08:00:00

工程架構(gòu)GFS

2010-01-15 19:44:25

C++技巧

2015-08-28 09:50:47

2020-03-03 08:40:16

細腰架構(gòu)進化

2015-10-26 11:39:54

互聯(lián)網(wǎng)架構(gòu)設(shè)計分布式

2020-06-10 07:40:36

CPU內(nèi)核態(tài)多線程

2025-03-03 04:20:00

高可用架構(gòu)冗余法則

2018-03-26 10:56:04

2017-11-28 16:37:19

黑五

2017-03-14 10:54:19

AWS S3云存儲故障

2019-04-24 09:43:46

代碼開發(fā)工具

2013-01-09 16:15:31

2011-12-05 22:58:33

蘋果

2015-10-09 17:54:35

德國電信/運營商

2022-09-06 09:51:36

芯片特斯拉

2015-06-18 09:59:49

2017-03-03 17:09:09

2024-04-24 11:05:03

MapReduce編程大數(shù)據(jù)

2024-07-12 08:28:09

聊天系統(tǒng)架構(gòu)

2016-12-07 09:38:53

SparkMapReduce
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲成av人影院在线观看| 精品一区二区免费在线观看| 精品日韩av一区二区| 免费看啪啪网站| 国产深喉视频一区二区| 欧美久久一区| 日韩h在线观看| 成人免费毛片播放| 亚洲免费视频一区二区三区| 久久国产精品99精品国产| www.日韩不卡电影av| 精品无码av一区二区三区不卡| 日皮视频在线观看| 99精品桃花视频在线观看| 97福利一区二区| 精品无码一区二区三区| 国产精品99久久久久久董美香 | 综合欧美一区二区三区| 国产66精品久久久久999小说| 在线观看亚洲欧美| 欧美一级精品| 精品国产网站在线观看| 成年人在线看片| 在线观看a级片| 91蜜桃网址入口| 国产专区精品视频| 亚洲视频免费播放| 99欧美视频| 亚洲成人免费在线视频| 亚洲欧美激情网| 国语对白在线刺激| 国产嫩草影院久久久久| 国产精品免费一区二区三区四区 | 亚洲精品视频在线| 久久精品日产第一区二区三区乱码| 久久久久精彩视频| 亚洲小说欧美另类婷婷| 中文精品99久久国产香蕉| 高清中文字幕mv的电影| 亚洲精品三区| 欧美性猛交xxxx乱大交极品| 韩国黄色一级大片| 免费理论片在线观看播放老| 懂色中文一区二区在线播放| 国产精品久久久久久久久久ktv| 久草视频免费播放| 欧美激情成人| 国产亚洲在线播放| 亚洲国产第一区| 中文字幕一区日韩精品| 欧美日韩一区二区电影| 北条麻妃av高潮尖叫在线观看| av资源中文在线天堂| 亚洲男人的天堂av| 一本一道久久a久久精品综合| 日韩二区三区| 99久久国产免费看| 国产视频精品网| www.av导航| 国内成+人亚洲+欧美+综合在线| 国产精品入口日韩视频大尺度| 99久久精品国产亚洲| 国产精品啊啊啊| 久久精品最新地址| 老司机成人免费视频| 亚洲伦理在线观看| 久久久国产精品一区二区中文| 色综合久久悠悠| 老司机福利在线观看| 国产一区二区三区四区五区传媒| 亚洲第一视频网站| 男人添女人荫蒂国产| 97久久中文字幕| 欧美日韩在线直播| 一区二区三区 日韩| 91在线成人| 在线视频中文字幕一区二区| 国产偷人视频免费| 高清av不卡| 色噜噜久久综合| 农民人伦一区二区三区| av毛片午夜不卡高**水| 精品久久久久久久久久久久| 欧美久久久久久久久久久久久久| 特级毛片在线| 亚洲综合在线视频| 伊人久久大香线蕉成人综合网| 日本福利片在线| 久久久高清一区二区三区| 日韩欧美视频一区二区三区四区 | 亚洲国产精久久久久久久| 91九色蝌蚪porny| 狠狠久久伊人| 亚洲网在线观看| 情侣偷拍对白清晰饥渴难耐| 国内一区二区三区| 4388成人网| 日韩一级片中文字幕| 蜜臀99久久精品久久久久久软件| 91精品视频专区| 懂色av蜜臀av粉嫩av分享吧| 99re这里只有精品6| 午夜免费电影一区在线观看| 黄色网址在线免费| 天天综合天天做天天综合| 日韩一级片播放| 亚洲高清影院| 欧美精品一区二区三区高清aⅴ | www.欧美日韩国产在线| 欧美一区二区福利| a天堂中文在线官网在线| 亚洲一区二区三区美女| 久久精品午夜福利| 少妇精品视频在线观看| 欧美r级电影在线观看| 97超碰在线资源| 婷婷中文字幕一区| 97视频在线观看成人| 欧美一级做a爰片免费视频| 国产乱码字幕精品高清av| 看欧美日韩国产| 黄色免费网站在线| 精品久久香蕉国产线看观看亚洲 | 欧美性色19p| 可以看污的网站| 久久精品66| 色偷偷av一区二区三区| 日韩 欧美 亚洲| 久久国产精品色婷婷| 国产亚洲精品自在久久| 日韩美女网站| 色婷婷综合久久久中文一区二区| 在线免费黄色小视频| blacked蜜桃精品一区| 欧美激情videos| 中文字幕一级片| 91免费观看国产| 国产美女作爱全过程免费视频| 香蕉久久免费电影| 亚洲国产一区自拍| 色婷婷在线视频观看| 老司机精品久久| 国产精品青青草| av香蕉成人| 欧美日韩国产一区| 久操视频免费看| 激情av一区| 亚洲tv在线观看| 触手亚洲一区二区三区| 欧美性精品220| 星空大象在线观看免费播放| 牛牛国产精品| 91久久精品美女高潮| av大片在线播放| 一本一道综合狠狠老| 国产精品无码专区| 国产精品sm| 91久久精品国产91久久性色tv | 国产69精品久久99不卡| 正在播放91九色| 婷婷综合六月| 亚洲性av在线| 成人黄色三级视频| 久久香蕉国产线看观看99| 青青青在线视频播放| 日韩一区二区三区精品视频第3页| 最近2019年日本中文免费字幕| 亚洲图片在线视频| 久久亚洲影视婷婷| 男女午夜激情视频| 久久99蜜桃| 国产精品旅馆在线| 91在线视频| 欧美无砖专区一中文字| www成人啪啪18软件| 久久99久久99小草精品免视看| 视频一区二区三| 国产69精品久久久久9999人| 最近2019免费中文字幕视频三| 美女黄页在线观看| 亚洲欧洲成人av每日更新| 亚洲午夜激情影院| 国产精品久久久久久久久久10秀| 成人激情在线观看| 亚洲丝袜精品| 欧美精品一区二区久久婷婷| 日韩免费黄色片| xfplay精品久久| 国产淫片av片久久久久久| 精品国产1区| 国产日韩欧美自拍| 亚洲奶水xxxx哺乳期| 日韩欧美国产系列| 久久国产精品系列| 中文字幕 久热精品 视频在线 | 91激情在线| 91精选在线观看| 久久久久久久久久久久久久免费看| 国产成人午夜片在线观看高清观看| 999一区二区三区| 日韩精品欧美大片| 国产精品va在线| 国产福利在线播放麻豆| 欧美精品一区二区三区在线 | 亚洲色大成网站www| 日韩欧美在线字幕| 日本黄色录像视频| 北条麻妃国产九九精品视频| 日韩精品一区二区三区色欲av| 日韩av有码| 国产精品.com| 精品123区| 久久久久中文字幕2018| 不卡在线视频| 欧美精品一区在线观看| 中文在线a天堂| 亚洲网友自拍偷拍| 最新中文字幕av| 成人黄色国产精品网站大全在线免费观看| 男人亚洲天堂网| 欧美成人69| 色乱码一区二区三在线看| 视频一区在线| 国产精品久久久久久av| 欧美寡妇性猛交xxx免费| 国产一区二区三区在线看| 亚洲精品中文字幕成人片| 欧美在线免费视屏| 国产亚洲精品成人| 亚洲国产成人在线| 国产精品久久无码| 国产久卡久卡久卡久卡视频精品| 国产精品亚洲αv天堂无码| 亚洲字幕久久| 神马影院一区二区三区| 免费观看成人www动漫视频| 成人av在线亚洲| 制服诱惑亚洲| 2024亚洲男人天堂| 色女人在线视频| 久久好看免费视频| 国内在线免费高清视频| 亚洲第一网中文字幕| 亚洲在线免费观看视频| 色诱视频网站一区| 国产大片中文字幕| 亚洲色图在线看| 女人十八毛片嫩草av| 久久一二三国产| 亚洲欧美日韩偷拍| 国产91在线观看| 日韩不卡的av| 久久99精品国产麻豆婷婷| 日本老熟妇毛茸茸| 先锋亚洲精品| 青青青免费在线| 韩日精品在线| 黑人巨大国产9丨视频| 日韩欧美综合| 日本黑人久久| 成人精品亚洲| 日韩影片在线播放| 日韩av免费大片| 夜夜爽www精品| 久久要要av| 亚洲一区3d动漫同人无遮挡| 日韩成人三级| 一本色道久久综合亚洲精品婷婷| 欧美人与牛zoz0性行为| 蜜桃av久久久亚洲精品| 香蕉国产成人午夜av影院| 久久精品欧美| 视频一区中文字幕精品| 都市激情久久久久久久久久久| jazzjazz国产精品久久| 亚洲专区国产精品| www.成人| 亚洲伊人久久综合| 国模大尺度视频一区二区| 91精品久久久久久久久中文字幕 | 伊人亚洲福利一区二区三区| 国产对白叫床清晰在线播放| 一本色道久久综合狠狠躁篇怎么玩| 91在线播放网站| 乱亲女秽乱长久久久| 欧美videossex| 久久久久久久色| 天堂а√在线最新版中文在线| 国产999精品| 亚洲高清影院| 国产伦精品一区二区三区照片91| 欧美大胆a级| 色噜噜狠狠色综合网| 这里只有精品在线| 久久国产精品视频在线观看| 亚洲综合精品| xxww在线观看| 国产激情视频一区二区三区欧美 | 91丝袜高跟美女视频| 手机毛片在线观看| 亚洲欧美一区二区在线观看| 欧美成人精品一区二区免费看片 | 亚洲护士老师的毛茸茸最新章节| 九九热视频在线观看| 精品精品国产国产自在线| 77thz桃花论族在线观看| 国产精品高潮粉嫩av| 国产精品久久久久久av公交车| 国产欧美综合精品一区二区| 日韩久久视频| 欧美精品久久久久久久自慰| 首页欧美精品中文字幕| 日本成人在线免费观看| 91视频精品在这里| 三级在线观看免费大全| 色综合久久66| 成 人片 黄 色 大 片| 亚洲欧洲在线看| 亚洲按摩av| 国产999精品视频| aaa国产精品视频| 日韩视频在线播放| 亚洲网站啪啪| 欧美精品久久久久久久久25p| 成人免费观看视频| 国产精品成人在线视频| 午夜精品久久久久久久久久久| 中文字幕在线观看视频一区| 日韩精品免费电影| 羞羞的视频在线观看| 国产精品直播网红| 免费看av成人| 成人免费在线网| 激情另类小说区图片区视频区| v8888av| 亚洲国产精品久久久久婷婷884 | 国产成人97精品免费看片| 99精品在免费线中文字幕网站一区 | 欧美三级午夜理伦| 欧美一级搡bbbb搡bbbb| 成人免费黄色网页| 欧美中文字幕在线| 国产成人在线中文字幕| av在线免费观看国产| 国产酒店精品激情| 亚洲色偷偷综合亚洲av伊人| 欧美在线看片a免费观看| 亚洲aaa在线观看| 久久久免费观看| 2020国产精品极品色在线观看| 偷拍盗摄高潮叫床对白清晰| 日本欧美一区二区| 国产精品无码网站| 亚洲福利视频一区| www.污视频| 不卡中文字幕av| 国产视频网站一区二区三区| 亚洲砖区区免费| 日韩成人精品在线| 久久精品—区二区三区舞蹈| 色婷婷综合久久久久中文 | 国产在线日韩欧美| 亚洲欧美精品久久| 911精品国产一区二区在线| 9色在线观看| 国产精品最新在线观看| 日韩欧美一区二区三区免费看| 九九热免费精品视频| 国产午夜精品福利| 日批视频免费观看| 亚洲人成在线观| 黄色成人在线观看网站| 一区二区精品在线| 精品一区二区三区香蕉蜜桃 | 国产乱码精品一区二区三区亚洲人| 宅男av一区二区三区| 国产乱码精品1区2区3区| 青青草手机在线观看| 亚洲电影免费观看高清完整版在线| yellow字幕网在线| 欧洲在线视频一区| 麻豆国产精品一区二区三区 | 亚洲国产小视频在线观看| 欧美日韩在线观看首页| 欧美日韩在线一二三| 日韩和欧美一区二区| 91制片厂在线| 日韩欧美在线综合网| 9lporm自拍视频区在线| 久久99国产精品| 日本欧美大码aⅴ在线播放| 免费看黄色aaaaaa 片| 亚洲一区二区精品久久av| 国产精品18在线| 欧美一区二区视频观看视频| 亚洲少妇视频| 日本xxx免费| 久久精品欧美日韩| www.激情五月| 国产精品久久视频|