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

Apache Beam: 下一代的大數據處理標準

大數據
本文主要介紹Apache Beam的編程范式-Beam Model,以及通過Beam SDK如何方便靈活的編寫分布式數據處理業務邏輯,希望讀者能夠通過本文對Apache Beam有初步的了解,同時對于分布式數據處理系統如何處理亂序無限數據流的能力有初步的認識。

Apache Beam(原名Google DataFlow)是Google在2016年2月份貢獻給Apache基金會的Apache孵化項目,被認為是繼MapReduce,GFS和BigQuery等之后,Google在大數據處理領域對開源社區的又一個非常大的貢獻。Apache Beam的主要目標是統一批處理和流處理的編程范式,為***,亂序,web-scale的數據集處理提供簡單靈活,功能豐富以及表達能力十分強大的SDK。Apache Beam項目重點在于數據處理的編程范式和接口定義,并不涉及具體執行引擎的實現,Apache Beam希望基于Beam開發的數據處理程序可以執行在任意的分布式計算引擎上。本文主要介紹Apache Beam的編程范式-Beam Model,以及通過Beam SDK如何方便靈活的編寫分布式數據處理業務邏輯,希望讀者能夠通過本文對Apache Beam有初步的了解,同時對于分布式數據處理系統如何處理亂序***數據流的能力有初步的認識。

Apache Beam基本架構

隨著分布式數據處理不斷發展,新的分布式數據處理技術也不斷被提出,業界涌現出了越來越多的分布式數據處理框架,從最早的Hadoop MapReduce,到Apache Spark,Apache Storm,以及更近的Apache Flink,Apache Apex等。新的分布式處理框架可能帶來的更高的性能,更強大的功能,更低的延遲等,但用戶切換到新的分布式處理框架的代價也非常大:需要學習一個新的數據處理框架,并重寫所有的業務邏輯。解決這個問題的思路包括兩個部分,首先,需要一個編程范式,能夠統一,規范分布式數據處理的需求,例如,統一批處理和流處理的需求。其次,生成的分布式數據處理任務應該能夠在各個分布式執行引擎上執行,用戶可以自由切換分布式數據處理任務的執行引擎與執行環境。Apache Beam正是為了解決以上問題而提出的。

Apache Beam主要由Beam SDK和Beam Runner組成,Beam SDK定義了開發分布式數據處理任務業務邏輯的API接口,生成的的分布式數據處理任務Pipeline交給具體的Beam Runner執行引擎。Apache Beam目前支持的API接口是由Java語言實現的,Python版本的API正在開發之中。Apache Beam支持的底層執行引擎包括Apache Flink,Apache Spark以及Google Cloud Platform,此外Apache Storm,Apache Hadoop,Apache Gearpump等執行引擎的支持也在討論或開發當中。其基本架構如下圖所示:


圖1 Apache Beam架構圖

需要注意的是,雖然Apache Beam社區非常希望所有的Beam執行引擎都能夠支持Beam SDK定義的功能全集,但是在實際實現中可能并不一定。例如,基于MapReduce的Runner顯然很難實現和流處理相關的功能特性。目前Google DataFlow Cloud是對Beam SDK功能集支持最全面的執行引擎,在開源執行引擎中,支持最全面的則是Apache Flink。

Beam Model

Beam Model指的是Beam的編程范式,即Beam SDK背后的設計思想。在介紹Beam Model之前,先簡要介紹一下Beam Model要處理的問題域與一些基本概念。

  1. 數據。分布式數據處理要處理的數據類型一般可以分為兩類,有限的數據集和***的數據流。有限的數據集,比如一個HDFS中的文件,一個HBase表等,特點是數據提前已經存在,一般也已經持久化,不會突然消失。而***的數據流,比如kafka中流過來的系統日志流,或是從twitter API拿到的twitter流等等,這類數據的特點是,數據動態流入,無窮無盡,無法全部持久化。一般來說,批處理框架的設計目標是用來處理有限的數據集,流處理框架的設計目標是用來處理***的數據流。有限的數據集可以看做是***的數據流的一種特例,但是從數據處理邏輯的角度,這兩者并無不同之處,例如,假設微博數據包含時間戳和轉發量,用戶希望按照統計每小時的轉發量總和,此業務邏輯應該可以同時在有限數據集和***數據流上執行,并不應該因為數據源的不同而對業務邏輯的實現產生任何影響。
  2. 時間。Process Time是指數據進入分布式處理框架的時間,而Event-Time則是指數據產生的時間。這兩個時間通常是不同的,例如,對于一個處理微博數據的流計算任務,一條2016-06-01-12:00:00發表的微博經過網絡傳輸等延遲可能在2016-06-01-12:01:30才進入到流處理系統中。批處理任務通常進行全量的數據計算,較少關注數據的時間屬性,但是對于流處理任務來說,由于數據流是無情無盡的,無法進行全量的計算,通常是對某個窗口中得數據進行計算,對于大部分的流處理任務來說,按照時間進行窗口劃分,可能是最常見的需求。
  3. 亂序。對于流處理框架處理的數據流來說,其數據的到達順序可能并不嚴格按照Event-Time的時間順序。如果基于Process Time定義時間窗口,數據到達的順序就是數據的順序,因此不存在亂序問題。但是對于基于Event Time定義的時間窗口來說,可能存在時間靠前的消息在時間靠后的消息后到達的情況,這在分布式的數據源中可能非常常見。對于這種情況,如何確定遲到數據,以及對于遲到數據如何處理通常是很棘手的問題。

Beam Model處理的目標數據是***的時間亂序數據流,不考慮時間順序或是有限的數據集可看做是***亂序數據流的一個特例。Beam Model從下面四個維度歸納了用戶在進行數據處理的時候需要考慮的問題:

  1. What。如何對數據進行計算?例如,Sum,Join或是機器學習中訓練學習模型等。在Beam SDK中由Pipeline中的操作符指定。
  2. Where。數據在什么范圍中計算?例如,基于Process-Time的時間窗口,基于Event-Time的時間窗口,滑動窗口等等。在BeamSDK中由Pipeline中的窗口指定。
  3. When。何時將計算結果輸出?例如,在1小時的Event-Time時間窗口中,每隔1分鐘,將當前窗口計算結果輸出。在Beam SDK中由Pipeline中的Watermark和觸發器指定。
  4. How。遲到數據如何處理?例如,將遲到數據計算增量結果輸出,或是將遲到數據計算結果和窗口內數據計算結果合并成全量結果輸出。在Beam SDK中由Accumulation指定。

Beam Model將”WWWH“四個維度抽象出來組成了Beam SDK,用戶在基于Beam SDK構建數據處理業務邏輯時,在每一步只需要根據業務需求按照這四個維度調用具體的API即可生成分布式數據處理Pipeline,并提交到具體執行引擎上執行。“WWWH”四個維度的抽象僅僅關注業務邏輯本身,和分布式任務如何執行沒有任何關系。

Beam SDK

不同于Apache Flink或是Apache Spark,Beam SDK使用同一套API表示數據源,輸出目標以及操作符等。下面介紹4個基于Beam SDK的數據處理任務,通過這四個數據處理任務,讀者可以了解通過Beam Mode是如何統一靈活的描述批處理和流處理任務的,這4個任務用來處理手機游戲領域的統計需求,包括:

  1. 用戶分數。批處理任務,基于有限數據集統計用戶分數。
  2. 每小時團隊分數。批處理任務,基于有限數據集統計每小時,每個團隊的分數。
  3. 排行榜。流處理任務,2個統計項,每小時每個團隊的分數以及用戶實時的歷史總得分數。
  4. 游戲狀態。流處理任務,統計每小時每個團隊的分數,以及更復雜的每小時統計信息,比如每小時每個用戶在線時間等。

注:示例代碼來自Beam的源碼,具體地址參見:apache/incubator-beam。部分分析內容參考了Beam的官方文檔,詳情請參見引用鏈接。

下面基于Beam Model的“WWWH”四個維度,分析業務邏輯,并通過代碼展示如何通過Beam SDK實現“WWWH”四個維度的業務邏輯。

用戶分數

統計每個用戶的歷史總得分數是一個非常簡單的任務,在這里我們簡單的通過一個批處理任務實現,每次需要新的用戶分數數據的時候,重新執行一次這個批處理任務即可。對于用戶分數任務,“WWWH”四維度分析結果如下:

通過“WWWH”的分析,對于用戶分數這個批處理任務,通過Beam Java SDK實現的代碼如下所示:

 

  1. gameEvents  
  2. [... input ...]  
  3. [... parse ...]  
  4. .apply("ExtractUserScore", new ExtractAndSumScore("user"))  
  5. [... output ...]; 

ExtractAndSumScore實現了“What”中描述的邏輯,即按用戶分組,然后累加分數,其相關代碼如下:

 

  1. gameInfo  
  2. .apply(MapElements  
  3. .via((GameActionInfo gInfo) -> KV.of(gInfo.getKey(field), gInfo.getScore()))  
  4. .withOutputType(  
  5. TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers())))  
  6. .apply(Sum.integersPerKey()); 

通過MapElements確定Key與Value分別是用戶與分數,然后Sum定義按key分組,并累加分數。Beam支持將多個對數據的操作合并成一個操作,這樣不僅可以支持更清晰的業務邏輯實現,同時也可以在多處重用合并后的操作邏輯。

每小時團隊分數

按照小時統計每個團隊的分數,獲得***分數的團隊可能獲得獎勵,這個分析任務增加了對窗口的要求,不過我們依然可以通過一個批處理任務實現,對于這個任務的“WWWH”四個維度的分析如下:

相對于***個用戶分數任務,只是在Where部分回答了“數據在什么范圍中計算?”的問題,同時在What部分“如何計算數據?”中,分組的條件由用戶改為了團隊,這在代碼中也會相應的體現:

 

  1. gameEvents  
  2. [... input ...]  
  3. [... parse ...]  
  4. .apply("AddEventTimestamps", WithTimestamps.of((GameActionInfo i)  
  5. -> new Instant(i.getTimestamp())))  
  6. .apply("FixedWindowsTeam", Window.into 
  7. FixedWindows.of(Duration.standardMinutes(windowDuration))))  
  8. .apply("ExtractTeamScore", new ExtractAndSumScore("team"))  
  9. [... output ...]; 

“AddEventTimestamps”定義了如何從原始數據中抽取EventTime數據,“FixedWindowsTeam”則定義了1小時固定窗口,然后重用了ExtractAndSumScore類,只是將分組的列從用戶改成了團隊。對于每小時團隊分數任務,引入了關于“Where”部分窗口定義的新業務邏輯,但是從代碼中可以看到,關于“Where”部分的實現和關于“What”部分的實現是完全獨立的,用戶只需要新加兩行關于“Where”的代碼,非常簡單和清晰。

排行榜

前面兩個任務均是基于有限數據集的批處理任務,對于排行榜來說,我們同樣需要統計用戶分數以及每小時團隊分數,但是從業務角度希望得到的是實時數據。對于Apache Beam來說,一個相同處理邏輯的批處理任務和流處理任務的唯一不同就是任務的輸入和輸出,中間的業務邏輯Pipeline無需任何改變。對于當前示例的排行榜數據分析任務,我們不僅希望他們滿足和前兩個示例相同的業務邏輯,同時也可以滿足更定制化的業務需求,例如:

  1. 流處理任務相對于批處理任務,一個非常重要的特性是,流處理任務可以更加實時的返回計算結果,例如計算每小時團隊分數時,對于一小時的時間窗口,默認是在一小時的數據全部到達后,把最終的結算結果輸出,但是流處理系統應該同時支持在一小時窗口只有部分數據到達時,就將部分計算結果輸出,從而使得用戶可以得到實時的分析結果。
  2. 保證和批處理任務一致的計算結果正確性。由于亂序數據的存在,對于某一個計算窗口,如何確定所有數據是否到達(Watermark)?遲到數據如何處理?處理結果如何輸出,總量,增量,并列?流處理系統應該提供機制保證用戶可以在滿足低延遲性能的同時達到最終的計算結果正確性。

上述兩個問題正是通過回答“When”和“How”兩個問題來定義用戶的數據分析需求。“When”取決于用戶希望多常得到計算結果,在回答“When”的時候,基本上可以分為四個階段:

  1. Early。在窗口結束前,確定何時輸出中間狀態數據。
  2. On-Time。在窗口結束時,輸出窗口數據計算結果。由于亂序數據的存在,如何判斷窗口結束可能是用戶根據額外的知識預估的,且允許在用戶設定的窗口結束后出現遲到的屬于該窗口的數據。
  3. Late。在窗口結束后,有遲到的數據到達,在這個階段,何時輸出計算結果。
  4. Final。能夠容忍遲到的***限度,例如1小時。到達***的等待時間后,輸出最終的計算結果,同時不再接受之后的遲到數據,清理該窗口的狀態數據。

對于每小時團隊得分的流處理任務,本示例希望的業務邏輯為,基于Event Time的1小時時間窗口,按團隊計算分數,在一小時窗口內,每5分鐘輸出一次當前的團隊分數,對于遲到的數據,每10分鐘輸出一次當前的團隊分數,在窗口結束2小時后遲到的數據一般不可能會出現,假如出現的話,直接拋棄。“WWWH”表達如下:

在基于Beam SDK的實現中,用戶基于“WWWH” Beam Model表示的業務邏輯可以分別獨立直接的實現出來:

 

  1. gameEvents  
  2. [... input ...]  
  3. .apply("LeaderboardTeamFixedWindows", Window  
  4. .into(FixedWindows.of 
  5. Duration.standardMinutes(Durations.minutes(60)))) 
  6. .triggering(AfterWatermark.pastEndOfWindow()  
  7. .withEarlyFirings(AfterProcessingTime.pastFirstElementInPane()  
  8. .plusDelayOf(Durations.minutes(5)))  
  9. .withLateFirings(AfterProcessingTime.pastFirstElementInPane()  
  10. .plusDelayOf(Durations.minutes(10))))  
  11. .withAllowedLateness(Duration.standardMinutes(120)  
  12. .accumulatingFiredPanes())  
  13. .apply("ExtractTeamScore", new ExtractAndSumScore("team"))  
  14. [... output ...] 

LeaderboardTeamFixedWindows對應“Where”定義窗口,Trigger對應“Where”定義結果輸出條件,Accumulation對應“How”定義輸出結果內容,ExtractTeamScore對應“What”定義計算邏輯。

總結

Apache Beam的Beam Model對***亂序數據流的數據處理進行了非常優雅的抽象,“WWWH”四個維度對數據處理的描述,非常清晰與合理,Beam Model在統一了對***數據流和有限數據集的處理模式的同時,也明確了對***數據流的數據處理方式的編程范式,擴大了流處理系統可應用的業務范圍,例如,Event-Time/Session窗口的支持,亂序數據的處理支持等。Apache Flink,Apache Spark Streaming等項目的API設計均越來越多的借鑒或參考了Apache Beam Model,且作為Beam Runner的實現,與Beam SDK的兼容度也越來越高。本文主要介紹了Beam Model,以及如何基于Beam Model設計現實中的數據處理任務,希望能夠讓讀者對Apache Beam項目能夠有一個初步的了解。由于Apache Beam已經進入Apache Incubator孵化,所以讀者也可以通過官網或是郵件組了解更多Apache Beam的進展和狀態。

引用

  1. Apache Beam (incubating)
  2.  https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101
  3. The world beyond batch: Streaming 102
  4. https://cloud.google.com/dataflow/blog/dataflow-beam-and-spark-comparison
責任編輯:未麗燕 來源: 《程序員》雜志
相關推薦

2019-05-23 15:44:55

Flink大數據框架

2015-10-15 10:30:32

2013-07-27 21:28:44

2013-07-22 09:47:17

大數據IBM技術大會

2015-03-09 14:24:59

TeradataAppCenterAster

2012-11-16 11:31:39

大數據CRM

2017-03-08 10:56:03

大數據架構數據湖

2016-11-15 09:44:21

大數據批處理流處理

2013-06-27 11:21:17

2025-02-13 09:37:58

2019-05-22 09:34:24

物聯網技術標準物聯網IOT

2023-10-05 18:25:40

存儲分開存儲SSD

2018-05-17 11:31:45

大數據IOTA架構數據架構

2012-06-07 09:06:04

主流云計算產品大數據分析

2024-05-14 08:03:31

SaaS 服務云原生AI 一體架構

2020-06-02 08:05:28

智能電表蜂窩物聯網NB-IoT

2024-02-26 14:46:53

移動計算人工智能5G

2018-09-11 08:00:00

DevOpsAIOps機器學習

2025-01-03 09:24:10

模型架構論文

2020-09-16 10:28:54

邊緣計算云計算數據中心
點贊
收藏

51CTO技術棧公眾號

欧美日韩国产一区| 国产清纯白嫩初高生在线观看91 | 亚洲一区二区伦理| 亚洲人高潮女人毛茸茸| 波多野结衣国产精品| www红色一片_亚洲成a人片在线观看_| 岛国精品在线播放| 国产精品久久久久久影视| 久久久精品视频免费观看| 少妇精品久久久| 欧美一区二区精品在线| 动漫av网站免费观看| 超碰人人在线| 久久久久久夜精品精品免费| 亚洲精品日韩av| 你懂的国产在线| 欧美精品播放| 在线精品播放av| 精品黑人一区二区三区观看时间| 亚洲欧美专区| 日本久久一区二区三区| 拔插拔插海外华人免费| 黄色网址在线免费| 国产日韩av一区| 久久99久久精品国产| h狠狠躁死你h高h| 免费视频最近日韩| 欧洲亚洲在线视频| 国产网址在线观看| 图片小说视频色综合| 亚洲视频777| 免费中文字幕av| 91精品啪在线观看国产爱臀| 欧美精品一级二级| 天天干天天草天天| 成人看片在线观看| 色综合网色综合| 欧美日本视频在线观看| heyzo在线欧美播放| 亚洲免费在线观看| 欧美一区二区视频在线| 亚洲 欧美 激情 另类| 成人午夜av影视| 99精彩视频在线观看免费| 国产又粗又黄又爽视频| 日本中文字幕一区| 国产精品久久久| 懂色av蜜臀av粉嫩av喷吹| 奶水喷射视频一区| 日本乱人伦a精品| 日韩不卡在线播放| 亚洲欧美视频| 日韩av手机在线看| 欧美一区免费看| 老司机免费视频久久| 欧美在线免费看| 久久人妻免费视频| 久久资源在线| 国产精品免费一区二区三区都可以| 在线观看亚洲天堂| 久久久久国产一区二区| 日韩免费av片在线观看| 国产99久久久久久免费看| 日韩精品每日更新| 成人看片人aa| 国产成a人亚洲精v品无码| 国产精品夜夜嗨| 国产精品一码二码三码在线| 色哟哟国产精品色哟哟| 久久女同性恋中文字幕| 日本在线观看一区二区三区| 欧美jizz18性欧美| 亚洲综合色噜噜狠狠| 欧美午夜小视频| 人人视频精品| 欧美男女性生活在线直播观看 | 成人免费的视频| 精品午夜一区二区| 天天综合视频在线观看| 一区二区在线观看免费| 男人和女人啪啪网站| 日本成人伦理电影| 7777精品伊人久久久大香线蕉| 曰本三级日本三级日本三级| 欧美91在线| 国产一区二区三区在线播放免费观看| 亚洲波多野结衣| 亚洲激情欧美| 国产精品久久久久久久久久小说| av 一区二区三区| 91欧美激情一区二区三区成人| 色婷婷精品国产一区二区三区| av中文字幕在线观看| 福利视频一区二区| 91小视频在线播放| 欧美电影完整版在线观看| 中文字幕av一区二区| 国精品无码一区二区三区| 国产亚洲激情| 亚洲综合社区网| 久久米奇亚洲| 一区二区在线观看免费| wwwwxxxx日韩| 欧美人妖在线观看| 色婷婷**av毛片一区| 久久狠狠高潮亚洲精品| 精品一区免费av| 欧美国产综合视频| 欧美人体视频xxxxx| 欧美影院精品一区| 中文字幕 亚洲一区| a级片在线免费看| 欧美xxxx网站| 精品国产不卡一区二区三区| 夫妇交换中文字幕| 亚洲神马久久| 不卡视频一区二区| 老司机在线视频二区| 一本久道久久综合中文字幕 | 日日噜噜夜夜狠狠久久丁香五月| 在线观看v片| 欧美mv日韩mv| 亚洲色图100p| 丝袜亚洲另类丝袜在线| 精品卡一卡二| 182在线视频观看| 日韩欧美国产一区在线观看| 视频国产一区二区| 日本不卡视频在线观看| 久久久久久艹| 欧美在线极品| 亚洲加勒比久久88色综合| 欧美三级日本三级| 狠狠网亚洲精品| 亚洲国产精品一区二区第一页| 黄视频网站在线观看| 精品少妇一区二区三区 | 亚洲色图二区| 成人黄色午夜影院| 日本在线观看www| 欧美视频第二页| 亚洲成人黄色av| 男人的天堂成人在线| 久久99九九| xxxxx性欧美特大| 亚洲美女在线视频| 中文字幕第四页| 97aⅴ精品视频一二三区| 六月婷婷在线视频| 鲁大师精品99久久久| 国语自产精品视频在线看抢先版图片| 亚洲av无码乱码国产麻豆| 一区二区三区成人| 中文字幕天堂av| 亚洲经典自拍| 久久资源av| 日韩免费福利视频| 中文字幕日韩专区| 国产精品爽爽久久| 亚洲综合一区二区精品导航| 国产免费无码一区二区| 亚洲欧洲日本一区二区三区| 国产精品乱码| 在线天堂资源www在线污| 亚洲免费中文字幕| jizz国产在线| 亚洲欧洲av在线| 国产精久久久久| 国产模特精品视频久久久久| 日韩精彩视频| 99热这里有精品| 欧美极品少妇xxxxⅹ喷水| 无码国精品一区二区免费蜜桃| 欧美午夜片在线免费观看| 538精品视频| 国产成人精品免费| 免费在线激情视频| 成人写真视频| 操人视频欧美| 欧美7777| 久久亚洲国产成人| 天堂在线观看免费视频| 在线看国产一区| 精品欧美一区二区久久久久| 97久久精品人人做人人爽50路| 午夜免费一区二区| 欧美精品入口| 日本精品二区| 青草伊人久久| 国产精品99久久久久久www| 理论片午午伦夜理片在线播放| 欧美精品一区二区三区在线| 中文字幕 人妻熟女| 亚洲综合色噜噜狠狠| 蜜桃av乱码一区二区三区| 国产成人综合视频| 亚洲视频在线观看一区二区三区| 亚洲有吗中文字幕| 免费久久久一本精品久久区| 高清一区二区三区av| 欧美自拍大量在线观看| 91精选在线| 一本一本久久a久久精品综合小说| 国产人妖一区二区| 一本到一区二区三区| 欧美精品久久久久性色| 国产女同互慰高潮91漫画| av免费观看不卡| 九九国产精品视频| 北条麻妃在线一区| 国产精品jizz在线观看美国| 亚洲v国产v| 免费精品国产的网站免费观看| 不卡一区二区三区视频| 亚瑟国产精品| 国产成人高潮免费观看精品| 91在线超碰| 欧美成人中文字幕在线| av片在线看| 亚洲男人第一网站| 日韩中文字幕综合| 日韩欧美亚洲国产精品字幕久久久 | 狠狠躁狠狠躁视频专区| 国产精品试看| 亚洲精品蜜桃久久久久久| 亚洲女同另类| 可以免费看的黄色网址| 99精品全国免费观看视频软件| 欧美专区一二三| 日韩精品社区| 国产在线一区二区三区播放| 91午夜精品| 91av免费看| 久久久国产精品入口麻豆| 国产日韩欧美中文| 精品176极品一区| 91精品国产777在线观看| 97人人在线视频| 欧美极品美女视频网站在线观看免费| av电影免费在线观看| 欧美超级乱淫片喷水| 毛片在线不卡| 久久不射热爱视频精品| 尤物yw193can在线观看| 欧美xxxx18性欧美| 天堂亚洲精品| 欧美交受高潮1| 成人国产电影在线观看| 午夜精品视频在线| 国产美女高潮在线观看| 18久久久久久| 大胆人体一区二区| 国产成人在线亚洲欧美| 91超碰碰碰碰久久久久久综合| 国产精品久久久久av免费| 精品久久久网| 成人免费观看网址| 亚洲精品影片| 国产区欧美区日韩区| 亚洲人成伊人成综合图片| 欧美日韩高清在线一区| 成人精品影院| 91手机视频在线| 国产一区日韩欧美| 欧美深夜福利视频| 久久狠狠一本精品综合网| 欧美三级理论片| 国精品**一区二区三区在线蜜桃 | 最近国语视频在线观看免费播放| 欧美性受极品xxxx喷水| 国产精品爽爽久久久久久| 精品成人免费观看| 黄视频在线观看免费| 北条麻妃久久精品| 成人在线视频亚洲| 国内精品久久久久久久| 搜成人激情视频| 亚洲精品日韩激情在线电影| 国产精品毛片视频| 日韩欧美亚洲日产国| 亚洲成人tv| 欧美亚洲国产成人| 韩国午夜理伦三级不卡影院| 精品无码av一区二区三区| 久久亚洲精品小早川怜子| 亚洲区一区二区三| 亚洲777理论| 亚洲无码精品在线观看| 精品少妇一区二区三区免费观看| 国产在线观看网站| 久久99亚洲精品| 欧美三级精品| 成人性色av| 欧美限制电影| 六月婷婷在线视频| 狠狠色丁香久久婷婷综| 亚洲熟妇无码av| 亚洲精品国产一区二区三区四区在线| 国产精品视频免费播放| 91精品国产福利在线观看| 欧美成人免费| 欧美国产日韩一区二区| 国模私拍国内精品国内av| 精品一区久久久久久| 亚洲在线久久| 伊人影院综合在线| 91香蕉视频在线| 永久看片925tv| 欧美色图片你懂的| 特黄视频在线观看| 成人444kkkk在线观看| 91p九色成人| 欧美不卡三区| 一区福利视频| 美女日批在线观看| 国产精品乱人伦一区二区| www五月天com| 精品国产免费久久| av在线下载| 成人黄色短视频在线观看| 欧美一区电影| 国产成人无码av在线播放dvd| 成人免费毛片片v| 国产大学生自拍| 欧美日韩高清不卡| 成人在线观看黄色| 日本欧美一二三区| 秋霞影视一区二区三区| 日韩成人三级视频| 国产乱子轮精品视频| 中文字幕无码日韩专区免费 | 999在线观看| 欧美国产1区2区| 男人的天堂av网站| 亚洲视频在线观看免费| 欧美成人a交片免费看| 免费av一区二区三区| 亚洲福利电影| 中文视频在线观看| 亚洲一区二区欧美| 高潮毛片7777777毛片| 欧美高清视频在线播放| 日韩一区二区三区精品| 激情五月五月婷婷| 国产成人在线观看| 久草福利资源在线观看| 日韩欧美国产电影| 2020av在线| 久久久综合亚洲91久久98| 国产视频欧美| 亚洲自拍偷拍图| 欧美网站一区二区| 免费黄色电影在线观看| 亚洲一区国产精品| 欧美精品黄色| 中文字幕一区三区久久女搜查官| 欧美日韩精品在线观看| 麻豆国产在线播放| 国产精品三级美女白浆呻吟| 久久国产精品成人免费观看的软件| 波多结衣在线观看| 亚洲人成在线观看一区二区| 国产浮力第一页| 久久免费视频网站| 免费看日本一区二区| 美女一区二区三区视频| 亚洲欧美电影一区二区| 俄罗斯嫩小性bbwbbw| 69视频在线播放| 国产一区二区观看| www.五月天色| 亚洲国产sm捆绑调教视频| 欧美精品a∨在线观看不卡| 国产精品美女免费| 欧美激情第10页| 国产精品九九九九九| 欧美在线短视频| 呦呦在线视频| 日产精品一线二线三线芒果| 精品一区二区av| 日韩成人免费在线观看| 亚洲人成毛片在线播放| 国产美女亚洲精品7777| ww国产内射精品后入国产| 亚洲国产精品av| 男人天堂av网| 国产精品久久久av久久久| 国产精品videossex久久发布| 好吊视频在线观看| 欧美一区二区三区免费视频| 一个人www视频在线免费观看| 中文字幕剧情在线观看一区| 91小视频在线| 精品国产无码AV| 日本久久久久久久| 亚洲国产二区| 日本精品在线免费观看| 亚洲欧美另类自拍| 欧洲精品99毛片免费高清观看 | 亚洲香蕉av在线一区二区三区|