精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

伊人久久久久久久久久久久 | 欧美激情一区二区三区p站| 成人在线网址| 成人免费观看视频| 欧美自拍大量在线观看| 免费黄色片网站| 韩国一区二区三区视频| 激情久久av一区av二区av三区| 欧美一区二区视频在线| 国产精品玖玖玖| 99视频一区| 日韩亚洲成人av在线| 欧美日韩一区二区三区四区五区六区| 综合毛片免费视频| 亚洲视频 欧洲视频| 久久99欧美| 国产aⅴ爽av久久久久成人| 亚洲专区在线| 欧美国产在线电影| 久久久精品成人| 卡一精品卡二卡三网站乱码| 欧美日韩视频在线第一区| 国产av熟女一区二区三区| 久久免费看视频| 成人午夜在线视频| 成人精品一区二区三区| 福利网址在线观看| 欧美成人一品| 日韩在线视频免费观看高清中文| 国产 中文 字幕 日韩 在线| 欧美经典影片视频网站| 欧日韩精品视频| 欧美三级一级片| √天堂8资源中文在线| 亚洲欧美自拍偷拍| 亚洲国产另类久久久精品极度| 无码精品视频一区二区三区| 国产成人午夜电影网| 国产欧美最新羞羞视频在线观看| www.色国产| 亚洲一区二区三区高清不卡| 久久久欧美一区二区| 2018天天弄| 亚洲精品2区| 久久久成人精品| 女教师淫辱の教室蜜臀av软件| 免费成人高清在线视频theav| 亚洲成人激情在线观看| 性生生活大片免费看视频| av免费在线一区| 色天使色偷偷av一区二区| 久久久999视频| 美女扒开腿让男人桶爽久久软| 亚洲午夜在线视频| av无码久久久久久不卡网站| 1024在线播放| 亚洲综合色噜噜狠狠| 欧美 日韩 国产精品| 97caopron在线视频| 亚洲色图丝袜美腿| 久久久久久久久久伊人| 2024最新电影免费在线观看 | 秋霞在线一区二区| dy888亚洲精品一区二区三区| 亚洲欧美一区二区视频| 91免费网站视频| 一二三四区在线观看| 亚洲最大色网站| 久久黄色片视频| 一区二区乱码| 欧美日韩一区不卡| 超碰在线超碰在线| 99a精品视频在线观看| 亚洲国产精品中文| 全黄一级裸体片| 水蜜桃久久夜色精品一区| 久久色免费在线视频| 麻豆av一区二区| 香蕉人妻av久久久久天天| 久久日韩粉嫩一区二区三区| 欧美日韩亚洲免费| 91av资源在线| 亚洲一区在线看| 黑森林福利视频导航| 香蕉视频亚洲一级| 欧美猛男gaygay网站| 男人操女人下面视频| 欧美有码在线| 色伦专区97中文字幕| 久久网中文字幕| 久久久久99| 51成人做爰www免费看网站| 亚洲成a人片在线| 国产无人区一区二区三区| 中文字幕欧美日韩一区二区三区 | 国产精品福利网站| 国产麻豆免费观看| 91香蕉视频mp4| 影音先锋欧美资源| sm久久捆绑调教精品一区| 欧美亚洲动漫精品| 亚洲av熟女高潮一区二区| 精品freesex老太交| 久久影视电视剧免费网站清宫辞电视| 日韩精品国产一区二区| 久久av资源站| 欧美日韩免费观看一区| 性欧美videos高清hd4k| 91福利小视频| 国产极品一区二区| 亚洲91视频| 国产精品99一区| 黄色av免费观看| 中文字幕一区免费在线观看| 久久久久资源| 黄色免费在线看| 色噜噜夜夜夜综合网| 国产精品熟妇一区二区三区四区 | 免费又黄又爽又猛大片午夜| 国产激情视频一区二区三区欧美| 色播亚洲视频在线观看| 亚洲区欧洲区| 欧美日韩精品欧美日韩精品| 国产国语性生话播放| 欧美日韩hd| 91精品免费视频| 国产高清免费在线播放| 天天影视网天天综合色在线播放| 国产精品久久久久久9999| 欧美精品一区二区久久| 欧美亚洲国产另类| 手机看片国产1024| 成人免费观看视频| 美女黄色片网站| 福利视频在线导航| 97人妻人人澡人人爽人人精品| 国产激情av在线| 欧美另类z0zx974| 精品视频一二区| 夜夜亚洲天天久久| 日韩精品你懂的| 性欧美xxxx免费岛国不卡电影| 蜜臀久久99精品久久久久久宅男 | 色噜噜狠狠色综合中国| 制服丝袜在线第一页| 欧美大片专区| 亚洲xxx自由成熟| 91久久精品在线| av免费在线不卡| 中文字幕一区二区三区视频| 可以免费在线看黄的网站| 亚洲午夜久久| 青青草原一区二区| 全色精品综合影院| 一本久道久久综合中文字幕| 少妇饥渴放荡91麻豆| 亚洲国产专区校园欧美| 国严精品久久久久久亚洲影视| fc2ppv国产精品久久| 日韩午夜激情电影| 久久av高潮av无码av喷吹| 国产一区二区看久久| 亚洲天堂第一区| 成人福利免费在线观看| 国模视频一区二区三区| 香蕉视频网站在线| 精品国产乱码久久久久久天美| 538国产视频| 媚黑女一区二区| 色播亚洲婷婷| 日韩区欧美区| 国模吧一区二区三区| 日本一区二区三区在线观看视频| 色综合久久久久久久久| wwwww黄色| 国产精品亚洲午夜一区二区三区 | 欧美精品九九99久久| 国产又粗又硬又长又爽| 国产精品18久久久久久久久久久久 | 国产精品免费一区二区三区都可以| seseavlu视频在线| 91精品婷婷国产综合久久| 欧美成人免费观看视频| 99久久精品99国产精品| 青青青在线视频免费观看| 日韩国产专区| 高清国产一区| 欧美艳星kaydenkross| 日日摸夜夜添一区| 亚洲精品国产av| 亚洲网色网站| 中国china体内裑精亚洲片| 国产精品日韩无码| 精品孕妇一区二区三区| 色欧美片视频在线观看| 香蕉成人在线视频| 成人app下载| 亚洲最大综合网| 精品成人在线| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲精品一区二区三区在线| 国产成人精品久久| 色帝国亚洲欧美在线| 亚洲欧美日本另类| 亚洲风情第一页| 欧美性做爰猛烈叫床潮| 日韩激情一区二区三区| 国产日韩欧美精品电影三级在线| ass极品水嫩小美女ass| 久久一区激情| 国产精品久久久久久久乖乖| 日韩专区精品| 欧美一区二区三区四区在线观看地址| 麻豆国产一区| 国产精品视频yy9099| 精品捆绑调教一区二区三区| 久久精品国产99国产精品澳门| 天天综合天天色| 日韩视频免费观看高清完整版在线观看| 欧美一区二区三区不卡视频| 亚洲高清免费观看| 国产黄在线免费观看| 久久久久久亚洲综合影院红桃| 一区二区三区四区影院| 麻豆精品在线视频| 激情综合网婷婷| 1024日韩| 国产美女作爱全过程免费视频| 亚洲免费成人av在线| 97视频资源在线观看| 九九热这里有精品| 日韩免费在线视频| 香蕉伊大人中文在线观看| 欧美第一页在线| 超碰在线网址| xvideos成人免费中文版| melody高清在线观看| 亚洲欧洲日产国码av系列天堂| 亚洲产国偷v产偷v自拍涩爱| 日韩一区二区三区精品视频| 一区二区三区亚洲视频| 欧美日韩在线精品一区二区三区激情| 男人日女人网站| 日韩欧美999| 日韩av大片在线观看| 午夜av一区二区三区| 精品视频在线观看免费| 亚洲一级在线观看| 国产一级片播放| 亚洲一二三四久久| 久久久久久久久久久久久久免费看| 亚洲欧美日韩精品久久久久| 91精品国产闺蜜国产在线闺蜜| 中文字幕在线观看不卡视频| 俄罗斯毛片基地| 国产精品久久免费看| 色哟哟一一国产精品| 综合中文字幕亚洲| 日韩欧美综合视频| 亚洲精品久久久久久国产精华液| 加勒比av在线播放| 亚洲成人av资源| 精品国产一区二区三区四| 日本韩国欧美在线| 在线播放一级片| 日韩一区二区免费视频| 丁香六月天婷婷| 精品小视频在线| av一本在线| 超碰97人人做人人爱少妇| 午夜小视频在线观看| 性色av一区二区咪爱| 一本大道色婷婷在线| 国产精品夜色7777狼人| 欧洲大片精品免费永久看nba| 97久久天天综合色天天综合色hd | 久久国产精品久久精品国产| 蜜臀av免费一区二区三区| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品福利在线观看播放| 狠狠干视频网站| 国产模特精品视频久久久久| 亚洲天堂网一区| 丰满亚洲少妇av| 午夜在线观看一区| 亚洲欧美另类小说视频| 亚洲黄色小说图片| 欧美日韩午夜影院| 天堂网2014av| 中文字幕精品一区二区精品| 黑人玩欧美人三根一起进| 日韩av色综合| 久久伦理中文字幕| 欧美日韩一区二区视频在线观看 | 美女午夜精品| 亚洲在线不卡| 亚洲高清资源| 久久久精品麻豆| 成人免费看黄yyy456| 天堂网中文在线观看| 亚洲国产综合91精品麻豆| www.av88| 亚洲精品国产精品乱码不99按摩| 婷婷成人激情| 欧美专区在线播放| 亚洲经典视频| 一区二区精品在线| 午夜一区不卡| 91亚洲一线产区二线产区| 国产日韩成人精品| 日本污视频在线观看| 欧美久久免费观看| 青青草视频在线观看| 欧美精品18videosex性欧美| jizzjizz少妇亚洲水多| 好吊色欧美一区二区三区| 日本乱码一区二区三区不卡| 捆绑紧缚一区二区三区视频| 一本色道久久综合亚洲精品婷婷 | 最近2019中文字幕mv免费看| av2020不卡| 亚洲精品免费网站| 精品欧美久久| 国产精品50p| 成人精品视频一区二区三区 | 亚洲一区二区偷拍| 国产精品va视频| 欧美一区二区三区在线播放| 在线不卡亚洲| 成人免费播放视频| 亚洲欧洲制服丝袜| 亚洲天堂手机版| 一级做a爰片久久毛片美女图片| 九色porny丨国产首页在线| 91久色国产| 欧美国内亚洲| 九一精品久久久| 国产精品麻豆视频| 欧美一级做a爰片免费视频| 久久综合色天天久久综合图片| 4388成人网| 超碰一区二区| 久久综合久久久| 国产一区二区三区久久| www.17c.com喷水少妇| 一区二区久久久| 精品欧美一区二区精品少妇| 久久人人爽人人爽爽久久| 国产精品国产三级在线观看| 制服国产精品| 精品在线播放午夜| 日本精品在线免费观看| 欧美日韩成人综合天天影院| 日本三级在线视频| 亚洲aⅴ男人的天堂在线观看| 久久久久久免费视频| 国产不卡的av| 亚洲国产精品久久久久秋霞影院| 成人午夜精品福利免费| 国产69精品久久久久9| 欧美一区二区三区久久| 成人亚洲视频在线观看| 欧美国产日本视频| 91高潮大合集爽到抽搐| 蜜月aⅴ免费一区二区三区| 日韩三级不卡| 欧美a v在线播放| 国产亚洲精品福利| 亚洲天堂avav| 欧美激情精品久久久久久| 欧美jizz19性欧美| 97公开免费视频| 亚洲欧美在线视频观看| 黄色一级大片在线免费看国产一| 2019中文字幕在线免费观看| 欧美日韩高清| 国产xxxxhd| 欧美日韩一区二区三区| 岛国在线视频| 亚洲一区二区三区视频| 亚洲国产高清视频| 手机av在线不卡| 国产欧美日韩综合精品一区二区| 波多野结衣视频观看| 免费不卡欧美自拍视频| 欧美亚洲色图校园春色| 艹b视频在线观看| 一区二区三区精品久久久| 日本精品专区| 3d蒂法精品啪啪一区二区免费| 国产精品丝袜xxxxxxx| 韩国一级黄色录像| 亚洲国产日韩欧美在线图片| 欧美黄页在线免费观看| 国产精品成人久久电影| 欧美国产综合色视频| 丰满人妻av一区二区三区| 国产成人综合久久| 欧美日本亚洲韩国国产| jizz中文字幕|