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

阿里云EMR Remote Shuffle Service在小米的實踐

開發 開發工具
阿里云EMR自2020年推出Remote Shuffle Service(RSS)以來,幫助了諸多客戶解決Spark作業的性能、穩定性問題,并使得存算分離架構得以實施,與此同時RSS也在跟合作方小米的共建下不斷演進。本文將介紹RSS的最新架構,在小米的實踐,以及開源。

阿里云EMR自2020年推出Remote Shuffle Service(RSS)以來,幫助了諸多客戶解決Spark作業的性能、穩定性問題,并使得存算分離架構得以實施,與此同時RSS也在跟合作方小米的共建下不斷演進。本文將介紹RSS的最新架構,在小米的實踐,以及開源。

一 問題回顧

Shuffle是大數據計算中最為重要的算子。首先,覆蓋率高,超過50%的作業都包含至少一個Shuffle[2]。其次,資源消耗大,阿里內部平臺Shuffle的CPU占比超過20%,LinkedIn內部Shuffle Read導致的資源浪費高達15%[1],單Shuffle數據量超100T[2]。第三,不穩定,硬件資源的穩定性CPU>內存>磁盤≈網絡,而Shuffle的資源消耗是倒序。OutOfMemory和Fetch Failure可能是Spark作業最常見的兩種錯誤,前者可以通過調參解決,而后者需要系統性重構Shuffle。

傳統Shuffle如下圖所示,Mapper把Shuffle數據按PartitionId排序寫盤后交給External Shuffle Service(ESS)管理,Reducer從每個Mapper Output中讀取屬于自己的Block。

傳統Shuffle存在以下問題。

  • 本地盤依賴限制了存算分離。存算分離是近年來興起的新型架構,它解耦了計算和存儲,可以更靈活地做機型設計:計算節點強CPU弱磁盤,存儲節點強磁盤強網絡弱CPU。計算節點無狀態,可根據負載彈性伸縮。存儲端,隨著對象存儲(OSS, S3)+數據湖格式(Delta, Iceberg, Hudi)+本地/近地緩存等方案的成熟,可當作容量無限的存儲服務。用戶通過計算彈性+存儲按量付費獲得成本節約。然而,Shuffle對本地盤的依賴限制了存算分離。
  • 寫放大。當Mapper Output數據量超過內存時觸發外排,從而引入額外磁盤IO。
  • 大量隨機讀。Mapper Output屬于某個Reducer的數據量很小,如Output 128M,Reducer并發2000,則每個Reducer只讀64K,從而導致大量小粒度隨機讀。對于HDD,隨機讀性能極差;對于SSD,會快速消耗SSD壽命。
  • 高網絡連接數,導致線程池消耗過多CPU,帶來性能和穩定性問題。
  • Shuffle數據單副本,大規模集群場景壞盤/壞節點很普遍,Shuffle數據丟失引發的Stage重算帶來性能和穩定性問題。

二 RSS發展歷程

針對Shuffle的問題,工業界嘗試了各種方法,近兩年逐漸收斂到Push Shuffle的方案。

1 Sailfish

Sailfish[3](2012)最早提出Push Shuffle + Partition數據聚合的方法,對大作業有20%-5倍的性能提升。Sailfish魔改了分布式文件系統KFS[4],不支持多副本。

2 Dataflow

Goolge BigQuery和Cloud Dataflow[5](2018)實現了Shuffle跟計算的解耦,采用多層存儲(內存+磁盤),除此之外沒有披露更多技術細節。

3 Riffle

Facebook Riffle[2](2018)采用了在Mapper端Merge的方法,物理節點上部署的Riffle服務負責把此節點上的Shuffle數據按照PartitionId做Merge,從而一定程度把小粒度的隨機讀合并成較大粒度。

4 Cosco

Facebook Cosco[6][7](2019)采用了Sailfish的方法并做了重設計,保留了Push Shuffle + Parititon數據聚合的核心方法,但使用了獨立服務。服務端采用Master-Worker架構,使用內存兩副本,用DFS做持久化。Cosco基本上定義了RSS的標準架構,但受到DFS的拖累,性能上并沒有顯著提升。

5 Zeus

Uber Zeus[8][9](2020)同樣采用了去中心化的服務架構,但沒有類似etcd的角色維護Worker狀態,因此難以做狀態管理。Zeus通過Client雙推的方式做多副本,采用本地存儲。

6 RPMP

Intel RPMP[10](2020)依靠RDMA和PMEM的新硬件來加速Shuffle,并沒有做數據聚合。

7 Magnet

LinkedIn Magnet[1](2021)融合了本地Shuffle+Push Shuffle,其設計哲學是"盡力而為",Mapper的Output寫完本地后,Push線程會把數據推給遠端的ESS做聚合,且不保證所有數據都會聚合。受益于本地Shuffle,Magnet在容錯和AE的支持上的表現更好(直接Fallback到傳統Shuffle)。Magnet的局限包括依賴本地盤,不支持存算分離;數據合并依賴ESS,對NodeManager造成額外壓力;Shuffle Write同時寫本地和遠端,性能達不到最優。Magnet方案已經被Apache Spark接納,成為默認的開源方案。

8 FireStorm

FireStorm[11](2021)混合了Cosco和Zeus的設計,服務端采用Master-Worker架構,通過Client多寫實現多副本。FireStorm使用了本地盤+對象存儲的多層存儲,采用較大的PushBlock(默認3M)。FireStorm在存儲端保留了PushBlock的元信息,并記錄在索引文件中。FireStorm的Client緩存數據的內存由Spark MemoryManager進行管理,并通過細顆粒度的內存分配(默認3K)來盡量避免內存浪費。

從上述描述可知,當前的方案基本收斂到Push Shuffle,但在一些關鍵設計上的選擇各家不盡相同,主要體現在:

  • 集成到Spark內部還是獨立服務。
  • RSS服務側架構,選項包括:Master-Worker,含輕量級狀態管理的去中心化,完全去中心化。
  • Shuffle數據的存儲,選項包括:內存,本地盤,DFS,對象存儲。
  • 多副本的實現,選項包括:Client多推,服務端做Replication。

阿里云RSS[12][13]由2020年推出,核心設計參考了Sailfish和Cosco,并且在架構和實現層面做了改良,下文將詳細介紹。

三 阿里云RSS核心架構

針對上一節的關鍵設計,阿里云RSS的選擇如下:

  • 獨立服務。考慮到將RSS集成到Spark內部無法滿足存算分離架構,阿里云RSS將作為獨立服務提供Shuffle服務。
  • Master-Worker架構。通過Master節點做服務狀態管理非常必要,基于etcd的狀態狀態管理能力受限。
  • 多種存儲方式。目前支持本地盤/DFS等存儲方式,主打本地盤,將來會往分層存儲方向發展。
  • 服務端做Replication。Client多推會額外消耗計算節點的網絡和計算資源,在獨立部署或者服務化的場景下對計算集群不友好。

下圖展示了阿里云RSS的關鍵架構,包含Client(RSS Client, Meta Service),Master(Resource Manager)和Worker三個角色。Shuffle的過程如下:

  • Mapper在首次PushData時請求Master分配Worker資源,Worker記錄自己所需要服務的Partition列表。
  • Mapper把Shuffle數據緩存到內存,超過閾值時觸發Push。
  • 隸屬同個Partition的數據被Push到同一個Worker做合并,主Worker內存接收到數據后立即向從Worker發起Replication,數據達成內存兩副本后即向Client發送ACK,Flusher后臺線程負責刷盤。
  • Mapper Stage運行結束,MetaService向Worker發起CommitFiles命令,把殘留在內存的數據全部刷盤并返回文件列表。
  • Reducer從對應的文件列表中讀取Shuffle數據。

阿里云RSS的核心架構和容錯方面的介紹詳見[13],本文接下來介紹阿里云RSS近一年的架構演進以及不同于其他系統的特色。

1 狀態下沉

RSS采用Master-Worker架構,最初的設計中Master統一負責集群狀態管理和Shuffle生命周期管理。集群狀態包括Worker的健康度和負載;生命周期包括每個Shuffle由哪些Worker服務,每個Worker所服務的Partition列表,Shuffle所處的狀態(Shuffle Write,CommitFile,Shuffle Read),是否有數據丟失等。維護Shuffle生命周期需要較大數據量和復雜數據結構,給Master HA的實現造成阻力。同時大量生命周期管理的服務調用使Master易成為性能瓶頸,限制RSS的擴展性。

為了緩解Master壓力,我們把生命周期狀態管理下沉到Driver,由Application管理自己的Shuffle,Master只需維護RSS集群本身的狀態。這個優化大大降低Master的負載,并使得Master HA得以順利實現。

2 Adaptive Pusher

在最初的設計中,阿里云RSS跟其他系統一樣采用Hash-Based Pusher,即Client會為每個Partition維護一個(或多個[11])內存Buffer,當Buffer超過閾值時觸發推送。這種設計在并發度適中的情況下沒有問題,而在超大并發度的情況下會導致OOM。例如Reducer的并發5W,在小Buffer[13]的系統中(64K)極端內存消耗為64K*5W=3G,在大Buffer[11]的系統中(3M)極端內存消耗為3M*5W=146G,這是不可接受的。針對這個問題,我們開發了Sort-Based Pusher,緩存數據時不區分Partition,當總的數據超過閾值(i.e. 64M)時對當前數據按照PartitionId排序,然后把數據Batch后推送,從而解決內存消耗過大的問題。

Sort-Based Pusher會額外引入一次排序,性能上比Hash-Based Pusher略差。我們在ShuffleWriter初始化階段根據Reducer的并發度自動選擇合適的Pusher。

3 磁盤容錯

出于性能的考慮,阿里云RSS推薦本地盤存儲,因此處理壞/慢盤是保證服務可靠性的前提。Worker節點的DeviceMonitor線程定時對磁盤進行檢查,檢查項包括IOHang,使用量,讀寫異常等。此外Worker在所有磁盤操作處(創建文件,刷盤)都會捕捉異常并上報。IOHang、讀寫異常被認為是Critical Error,磁盤將被隔離并終止該磁盤上的存儲服務。慢盤、使用量超警戒線等異常僅將磁盤隔離,不再接受新的Partition存儲請求,但已有的Partition服務保持正常。在磁盤被隔離后,Worker的容量和負載將發生變化,這些信息將通過心跳發送給Master。

4 滾動升級

RSS作為常駐服務,有永不停服的要求,而系統本身總在向前演進,因此滾動升級是必選的功能。盡管通過Sub-Cluster部署方式可以繞過,即部署多個子集群,對子集群做灰度,灰度的集群暫停服務,但這種方式依賴調度系統感知正在灰度的集群并動態修改作業配置。我們認為RSS應該把滾動升級閉環掉,核心設計如下圖所示。Client向Master節點的Leader角色(Master實現了HA,見上文)發起滾動升級請求并把更新包上傳給Leader,Leader通過Raft協議修改狀態為滾動升級,并啟動第一階段的升級:升級Master節點。Leader首先升級所有的Follower,然后替換本地包并重啟。在Leader節點改變的情況下,升級過程不會中斷或異常。Master節點升級結束后進入第二階段:Worker節點升級。RSS采用滑動窗口做升級,窗口內的Worker盡量優雅下線,即拒絕新的Partition請求,并等待本地Shuffle結束。為了避免等待時間過長,會設置超時時間。此外,窗口內的Worker選擇會盡量避免同時包含主從兩副本以降低數據丟失的概率。

5 混亂測試框架

對于服務來說,僅依靠UT、集成測試、e2e測試等無法保證服務可靠性,因為這些測試無法覆蓋線上復雜環境,如壞盤、CPU過載、網絡過載、機器掛掉等。RSS要求在出現這些復雜情況時保持服務穩定,為了模擬線上環境,我們開發了仿真(混亂)測試框架,在測試環境中模擬線上可能出現的異常,同時保證滿足RSS運行的最小運行環境,即至少3個Master節點和2個Worker節點可用,并且每個Worker節點至少有一塊盤。我們持續對RSS做此類壓力測試。

仿真測試框架架構如下圖所示,首先定義測試Plan來描述事件類型、事件觸發的順序及持續時間,事件類型包括節點異常,磁盤異常,IO異常,CPU過載等。客戶端將Plan提交給Scheduler,Scheduler根據Plan的描述給每個節點的Runner發送具體的Operation,Runner負責具體執行并匯報當前節點的狀態。在觸發Operation之前,Scheduler會推演該事件發生產生的后果,若導致無法滿足RSS的最小可運行環境,將拒絕此事件。

我們認為仿真測試框架的思路是通用設計,可以推廣到更多的服務測試中。

6 多引擎支持

Shuffle是通用操作,不跟引擎綁定,因此我們嘗試了多引擎支持。當前我們支持了Hive+RSS,同時也在探索跟流計算引擎(Flink),MPP引擎(Presto)結合的可能性。盡管Hive和Spark都是批計算引擎,但Shuffle的行為并不一致,最大的差異是Hive在Mapper端做排序,Reducer只做Merge,而Spark在Reducer端做排序。由于RSS暫未支持計算,因此需要改造Tez支持Reducer排序。此外,Spark有干凈的Shuffle插件接口,RSS只需在外圍擴展,而Tez沒有類似抽象,在這方面也有一定侵入性。

當前大多數引擎都沒有Shuffle插件化的抽象,需要一定程度的引擎修改。此外,流計算和MPP都是上游即時Push給下游的模式,而RSS是上游Push,下游Pull的模式,這兩者如何結合也是需要探索的。

7 測試

我們對比了阿里云RSS、Magent及開源系統X。由于大家的系統還在向前演進,因此測試結果僅代表當前。

測試環境

Header * 1: ecs.g6e.4xlarge, 16 * 2.5GHz/3.2GHz, 64GiB, 10Gbps

Worker * 3: ecs.g6e.8xlarge, 32 * 2.5GHz/3.2GHz, 128GiB, 10Gbps

阿里云RSS vs. Magnet

5T Terasort的性能測試如下圖所示,如上文描述,Magent的Shuffle Write有額外開銷,差于RSS和傳統做法。Magent的Shuffle Read有提升,但差于RSS。在這個Benchmark下,RSS明顯優于另外兩個,Magent的e2e時間略好于傳統Shuffle。

阿里云RSS vs. 開源系統X

RSS跟開源系統X在TPCDS-3T的性能對比如下,總時間RSS快了20%。

穩定性

在穩定性方面,我們測試了Reducer大規模并發的場景,Magnet可以跑通但時間比RSS慢了數倍,System X在Shuffle Write階段報錯。

四 阿里云RSS在小米的實踐

1 現狀及痛點

小米的離線集群以Yarn+HDFS為主,NodeManager和DataNode混合部署。Spark是主要的離線引擎,支撐著核心計算任務。Spark作業當前最大的痛點集中在Shuffle導致的穩定性差,性能差和對存算分離架構的限制。在進行資源保證和作業調優后,作業失敗原因主要歸結為Fetch Failure,如下圖所示。由于大部分集群使用的是HDD,傳統Shuffle的高隨機讀和高網絡連接導致性能很差,低穩定性帶來的Stage重算會進一步加劇性能回退。此外,小米一直在嘗試利用存算分離架構的計算彈性降低成本,但Shuffle對本地盤的依賴造成了阻礙。

2 RSS在小米的落地

小米一直在關注Shuffle優化相關技術,21年1月份跟阿里云EMR團隊就RSS項目建立了共創關系,3月份第一個生產集群上線,開始接入作業,6月份第一個HA集群上線,規模達100+節點,9月份第一個300+節點上線,集群默認開啟RSS,后續規劃會進一步擴展RSS的灰度規模。

在落地的過程,小米主導了磁盤容錯的開發,大大提高了RSS的服務穩定性,技術細節如上文所述。此外,在前期RSS還未完全穩定階段,小米在多個環節對RSS的作業進行了容錯。在調度端,若開啟RSS的Spark作業因Shuffle報錯,則Yarn的下次重試會回退到ESS。在ShuffleWriter初始化階段,小米主導了自適應Fallback機制,根據當前RSS集群的負載和作業的特征(如Reducer并發是否過大)自動選擇RSS或ESS,從而提升穩定性。

3 效果

接入RSS后,Spark作業的穩定性、性能都取得了顯著提升。之前因Fetch Failure失敗的作業幾乎不再失敗,性能平均有20%的提升。下圖展示了接入RSS前后作業穩定性的對比。

ESS:

RSS:

下圖展示了接入RSS前后作業運行時間的對比。

ESS:

RSS:

在存算分離方面,小米海外某集群接入RSS后,成功上線了1600+ Core的彈性集群,且作業運行穩定。

在阿里云EMR團隊及小米Spark團隊的共同努力下,RSS帶來的穩定性和性能提升得到了充分的驗證。后續小米將會持續擴大RSS集群規模以及作業規模,并且在彈性資源伸縮場景下發揮更大的作用。

五 開源

重要的事說三遍:“阿里云RSS開源啦!” X 3

git地址: https://github.com/alibaba/RemoteShuffleService

開源代碼包含核心功能及容錯,滿足生產要求。

計劃中的重要Feature:

  • AE
  • Spark多版本支持
  • Better 流控
  • Better 監控
  • Better HA
  • 多引擎支持

歡迎各路開發者共建!

六 Reference

[1]Min Shen, Ye Zhou, Chandni Singh. Magnet: Push-based Shuffle Service for Large-scale Data Processing. VLDB 2020.

[2]Haoyu Zhang, Brian Cho, Ergin Seyfe, Avery Ching, Michael J. Freedman. Riffle: Optimized Shuffle Service for Large-Scale Data Analytics. EuroSys 2018.

[3]Sriram Rao, Raghu Ramakrishnan, Adam Silberstein. Sailfish: A Framework For Large Scale Data Processing. SoCC 2012.

[4]KFS. http://code.google.com/p/kosmosfs/

[5]Google Dataflow Shuffle. https://cloud.google.com/blog/products/data-analytics/how-distributed-shuffle-improves-scalability-and-performance-cloud-dataflow-pipelines

[6]Cosco: An Efficient Facebook-Scale Shuffle Service. https://databricks.com/session/cosco-an-efficient-facebook-scale-shuffle-service

[7]Flash for Apache Spark Shuffle with Cosco. https://databricks.com/session_na20/flash-for-apache-spark-shuffle-with-cosco

[8]Uber Zeus. https://databricks.com/session_na20/zeus-ubers-highly-scalable-and-distributed-shuffle-as-a-service

[9]Uber Zeus. https://github.com/uber/RemoteShuffleService

[10]Intel RPMP. https://databricks.com/session_na20/accelerating-apache-spark-shuffle-for-data-analytics-on-the-cloud-with-remote-persistent-memory-pools

[11]Tencent FireStorm. https://github.com/Tencent/Firestorm

[12]Aliyun RSS在趣頭條的實踐. https://developer.aliyun.com/article/779686

 

[13]Aliyun RSS架構. https://developer.aliyun.com/article/772329

 

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-08-02 09:40:57

Dapr阿里云Service Mes

2012-11-19 10:35:18

阿里云云計算

2021-06-08 09:45:46

大數據云原生EMR Spark o

2021-04-12 10:07:06

云計算邊緣云阿里云

2022-08-25 18:48:29

字節跳動CSS開源

2023-08-07 08:40:24

2013-01-10 12:29:59

阿里云年度盤點云計算實踐元年

2023-10-08 07:33:24

Presto數據分析

2017-05-22 08:05:46

HBase阿里搜索實踐

2022-09-16 08:23:22

Flink數據湖優化

2023-11-20 07:27:00

云原生Spark

2022-12-23 16:52:22

Lakehouse數據湖

2020-04-29 14:43:32

VMware

2021-03-12 18:18:17

云計算阿里云

2018-10-09 15:59:42

數據庫SQL SeverAlwaysOn

2022-09-08 10:08:31

阿里云可觀測云原生

2010-08-26 10:43:34

馬云阿里

2023-05-29 08:04:08

2023-08-31 22:40:01

2023-07-31 07:49:03

點贊
收藏

51CTO技術棧公眾號

午夜av免费在线观看| 调教驯服丰满美艳麻麻在线视频| 伊人222成人综合网| 国产乱子伦一区二区三区国色天香| 久久视频这里只有精品| 香蕉久久久久久av成人| 自拍偷拍欧美视频| 国产精品久久久久婷婷| 国产aⅴ精品一区二区三区黄| av大片在线免费观看| 欧美gay男男猛男无套| 日韩一区二区三区视频| av黄色在线网站| 嫩草在线视频| 91美女片黄在线| 91美女片黄在线观| 精品国产乱子伦| 欧美 日韩 国产一区二区在线视频 | 日韩中文字幕有码| 日韩一区二区三区高清在线观看| 黑丝美女久久久| 中国女人做爰视频| 超碰免费97在线观看| 国产成人综合自拍| 国产美女久久久| 国产小视频在线免费观看| 香蕉国产精品| 国产一区二区三区视频在线观看| 91成人在线观看喷潮蘑菇| 日本精品在线一区| 精品久久久久久久中文字幕| 久久久无码中文字幕久...| 国产女主播在线直播| www.成人在线| 亚洲精品欧美日韩专区| 中文在线免费观看| 亚洲一区二区成人| 久久久免费电影| 美国黄色片视频| 成人在线电影在线观看视频| 日韩电影免费在线观看中文字幕| 国产在线视频三区| 四虎地址8848精品| 欧美日韩在线一区二区| 国产日韩一区二区在线观看| caoporn-草棚在线视频最| 亚洲黄一区二区三区| 这里只有精品66| 99视频在线观看地址| 久久久综合九色合综国产精品| 粉嫩av四季av绯色av第一区| 99精品免费观看| 狠狠色丁香婷婷综合| 国产欧美 在线欧美| 影音先锋国产在线| 奇米精品一区二区三区在线观看一| 欧美亚洲国产日本| 天天操天天干视频| 亚洲激情不卡| 69**夜色精品国产69乱| 午夜影院在线看| 亚洲毛片在线| 538国产精品一区二区免费视频| www日韩精品| 男人的天堂亚洲在线| 国产mv久久久| 国产亚洲久一区二区| 日韩精品欧美精品| 国产精品扒开腿做| 中文字幕在线网站| 狠狠色2019综合网| 99久久综合狠狠综合久久止| www.日日夜夜| av成人免费在线观看| 精品国产综合区久久久久久| 你懂的好爽在线观看| 国产欧美久久久精品影院| 亚洲高清在线播放| av免费在线免费| 亚洲午夜久久久久久久久久久 | 粉嫩精品久久99综合一区| 欧美手机视频| 欧美成人国产va精品日本一级| 久久久精品99| 美女网站久久| 国产区亚洲区欧美区| av男人天堂网| 91尤物视频在线观看| 日韩高清av| 免费黄网站在线| 亚洲一二三四区不卡| 国产亚洲天堂网| 99久久999| 欧美精品一区二| 91视频免费观看网站| 9999国产精品| 国语自产精品视频在免费| 男人天堂2024| 国产成人日日夜夜| 茄子视频成人在线观看| 中文字幕有码在线视频| 欧美性xxxxxxxxx| 国产精品久久久久久久av福利| 都市激情亚洲| 日韩亚洲一区二区| 日本一本高清视频| 精品亚洲成a人| 久久av二区| 超碰超碰在线| 在线影院国内精品| 婷婷五月精品中文字幕| 久久免费精品视频在这里| 欧美精品激情视频| 亚洲天堂视频网| 91视频在线看| 男人日女人的bb| 全球最大av网站久久| 精品国产一区二区三区av性色| 91精品国自产在线| 亚洲欧洲午夜| 91亚洲精品丁香在线观看| 精品推荐蜜桃传媒| 午夜精品一区二区三区免费视频 | 国产小视频国产精品| 91久久免费观看| 色欲无码人妻久久精品| 精品香蕉视频| 91精品国产高清久久久久久| 国产剧情精品在线| 日本一区二区免费在线观看视频| 亚洲精品蜜桃久久久久久| 久久99国产精品二区高清软件| 日韩成人在线电影网| 岛国毛片在线观看| 久久av资源网| 日韩中文字幕av在线| 欧美办公室脚交xxxx| 精品精品欲导航| 欧美激情图片小说| 精品一区二区久久久| 水蜜桃一区二区三区| 欧美电影免费观看| 亚洲精品视频中文字幕| 奇米影视第四色777| 成人综合婷婷国产精品久久免费| 精品视频在线看| 美女又黄又免费的视频| 国产精品久久久久久久久久10秀| 国产精品极品尤物在线观看| 精品一区国产| 日干夜干天天干| 国产精品亚洲综合一区在线观看| 日韩影院一区| 91天天综合| 最好看的2019年中文视频| 欧美一区二区三区网站| 91麻豆swag| 黄色片一级视频| 亚洲人成网77777色在线播放| 668精品在线视频| 黄色在线视频观看网站| 日本道免费精品一区二区三区| 欧美做受高潮6| 天堂一区二区在线| 亚洲狠狠婷婷综合久久久| 日韩一级特黄| 久久九九有精品国产23| 精品人妻一区二区三区换脸明星| 亚洲精品视频免费看| 亚洲中文字幕无码一区| 亚洲一区二区三区免费在线观看| 蜜桃999成人看片在线观看| 婷婷激情一区| 日日噜噜噜夜夜爽亚洲精品| 99久久久国产精品无码免费| 亚洲综合区在线| 中国极品少妇videossexhd| 亚洲欧美成人综合| 亚洲午夜精品福利| 永久免费精品视频| 日韩美女在线观看一区| 香港伦理在线| 精品久久久久久久久久久院品网| 韩国av中文字幕| 中文字幕 久热精品 视频在线| 91网址在线观看精品| 亚洲成人原创| 亚洲人成网站在线播放2019| 日韩欧美激情电影| 日韩美女免费观看| 在线中文字幕电影| 亚洲欧美国产另类| 国产美女www爽爽爽视频| 亚洲 欧美综合在线网络| 变态另类ts人妖一区二区| 高清在线成人网| av在线无限看| 激情婷婷久久| 亚洲午夜久久久影院伊人| av日韩在线播放| 国产精品视频自在线| 91九色在线看| 日韩一中文字幕| 日韩二区三区| 欧美电影免费观看完整版| 中文字幕在线天堂| 亚洲一区二区中文在线| 日本黄色小视频在线观看| 成人激情免费电影网址| 99re精彩视频| 久久国产高清| 日韩网站在线免费观看| 色中色综合网| 欧美日韩一区在线观看视频| 伊人久久大香线蕉av超碰| 国产精品视频99| 人狥杂交一区欧美二区| 欧美久久精品一级黑人c片| 巨骚激情综合| 亚洲经典中文字幕| 国产成人毛毛毛片| 欧美色涩在线第一页| 在线观看免费av片| 亚洲第一成年网| 免费一级肉体全黄毛片| 亚洲视频你懂的| 特级西西人体高清大胆| 国产视频在线观看一区二区三区| 国产成人av无码精品| 国产aⅴ综合色| 青青草精品在线| 国产最新精品精品你懂的| 五月婷婷六月丁香激情| 日韩国产欧美在线播放| 国产成人无码av在线播放dvd| 亚洲人成高清| 国产二区视频在线| 亚洲激情另类| 午夜免费福利小电影| 在线不卡欧美| 黄色成人在线免费观看| 中文字幕免费一区二区| 国产成人生活片| 欧美区国产区| 国产精品视频二| 亚洲小说区图片区| 日韩av高清在线看片| 亚洲经典三级| 黄色免费观看视频网站| 亚洲综合99| 国产成人精品视频ⅴa片软件竹菊| 欧美亚洲三级| 午夜激情福利在线| 久久成人18免费观看| 欧美视频亚洲图片| 国产91精品露脸国语对白| www.桃色.com| 国产传媒久久文化传媒| 少妇激情一区二区三区| 日本最新不卡在线| 在线视频日韩一区| 激情国产一区二区| 夜夜爽久久精品91| 成人一区二区三区中文字幕| 亚洲一二三四五| hitomi一区二区三区精品| 超碰97人人干| 久久久国产精品不卡| 国产一二三四五区| 国产精品成人一区二区艾草 | 午夜激情福利网| 一区二区三区在线播| 欧美日韩一级大片| 亚洲综合清纯丝袜自拍| 91精品国产高清一区二区三密臀| 欧美视频免费在线| 国产大片中文字幕| 亚洲激情六月丁香| 日本高清www免费视频| 色哟哟一区二区| 91中文字幕在线视频| 欧美区视频在线观看| www.成人免费视频| 亚洲深夜福利网站| 黄色网页在线免费观看| 欧美老肥婆性猛交视频| 婷婷午夜社区一区| 成人免费自拍视频| 视频小说一区二区| 色综合久久88色综合天天提莫| 日韩在线视屏| 日韩精品―中文字幕| 日本美女视频一区二区| 中文字幕乱妇无码av在线| 久久综合九色综合欧美亚洲| 中文字幕第24页| 一区二区三区成人在线视频| 无码免费一区二区三区| 欧美久久高跟鞋激| 色香蕉在线视频| xxav国产精品美女主播| 91探花在线观看| 国产美女扒开尿口久久久| **爰片久久毛片| 天天爽天天狠久久久| aⅴ色国产欧美| 五月天婷婷在线观看视频| 99r国产精品| 麻豆亚洲av成人无码久久精品| 精品久久中文字幕久久av| 一级黄色片视频| 亚洲天堂av高清| wwww亚洲| 日本久久精品视频| 成人免费在线电影网| 亚欧精品在线| 久久国产欧美| 中文字幕第九页| 中文字幕一区二区三区在线不卡| 一级黄色大片视频| 日韩午夜av电影| www.中文字幕久久久| 欧美最近摘花xxxx摘花| 精品一区二区三区在线观看视频| 日本欧洲国产一区二区| 激情视频一区| 男男受被啪到高潮自述| 国产精品久久久久9999吃药| 国产精品男女视频| 欧美成人精品3d动漫h| 黄网址在线观看| 国产不卡av在线免费观看| 免费观看亚洲天堂| 自拍亚洲欧美老师丝袜| 久久午夜视频| 高潮毛片无遮挡| 精品久久久久久久久久久| 亚洲国产999| 欧美激情精品久久久久久变态| 亚洲国产aⅴ精品一区二区三区| 性欧美.com| 日本不卡视频在线观看| 网站免费在线观看| 欧美日韩国产中文字幕| 丰满人妻一区二区三区四区53| 久久精品99久久久香蕉| 亚洲欧美久久精品| 亚洲欧美电影在线观看| 久久福利影视| 五级黄高潮片90分钟视频| 亚洲第一狼人社区| 五月婷婷在线观看视频| 国内久久久精品| 色妞ww精品视频7777| 免费高清一区二区三区| 国产99久久久精品| 免费在线观看黄网站| 亚洲国产另类 国产精品国产免费| 黄色国产网站在线播放| 91av免费看| 女生裸体视频一区二区三区| 在线免费黄色网| 亚洲免费观看视频| www.97av| 2020久久国产精品| 神马久久av| 成人av一级片| 国产精品美女久久久久久久久| 中文字幕av无码一区二区三区| 蜜臀久久99精品久久久久久宅男| av在线成人| 日本黄色a视频| 成人一级片网址| 日本天堂在线视频| 国产一区二区三区在线视频| 黄色日韩网站| 九九热只有这里有精品| 91在线精品秘密一区二区| 欧产日产国产69| www国产精品视频| 综合久久成人| 国产精品一区二区羞羞答答| 成人欧美一区二区三区视频网页| 国产偷拍一区二区| 欧美又大粗又爽又黄大片视频| 亚洲欧美日本伦理| 99re6在线观看| 亚洲国产精品尤物yw在线观看| 亚洲第一视频在线播放| 国产精品678| 一本一本久久a久久综合精品| 天堂久久久久久| 欧美唯美清纯偷拍| www欧美xxxx| 少妇免费毛片久久久久久久久| 激情综合色综合久久综合| 中日韩黄色大片| 精品国产欧美成人夜夜嗨| 天堂在线精品| 中国黄色片一级|