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

Spark及Spark Streaming核心原理及實踐

大數據 Spark
本文依次從spark生態,原理,基本概念,spark streaming原理及實踐,還有spark調優以及環境搭建等方面進行介紹,希望對大家有所幫助。

導語 : Spark 已經成為廣告、報表以及推薦系統等大數據計算場景中***系統,因效率高,易用以及通用性越來越得到大家的青睞,我自己最近半年在接觸spark以及spark streaming之后,對spark技術的使用有一些自己的經驗積累以及心得體會,在此分享給大家。本文依次從spark生態,原理,基本概念,spark streaming原理及實踐,還有spark調優以及環境搭建等方面進行介紹,希望對大家有所幫助。

spark 生態及運行原理

 

Spark 特點

  • 運行速度快 => Spark擁有DAG執行引擎,支持在內存中對數據進行迭代計算。官方提供的數據表明,如果數據由磁盤讀取,速度是Hadoop MapReduce的10倍以上,如果數據從內存中讀取,速度可以高達100多倍。
  • 適用場景廣泛 => 大數據分析統計,實時數據處理,圖計算及機器學習
  • 易用性 => 編寫簡單,支持80種以上的高級算子,支持多種語言,數據源豐富,可部署在多種集群中

容錯性高。Spark引進了彈性分布式數據集RDD (Resilient Distributed Dataset) 的抽象,它是分布在一組節點中的只讀對象集合,這些集合是彈性的,如果數據集一部分丟失,則可以根據“血統”(即充許基于數據衍生過程)對它們進行重建。另外在RDD計算時可以通過CheckPoint來實現容錯,而CheckPoint有兩種方式:CheckPoint Data,和Logging The Updates,用戶可以控制采用哪種方式來實現容錯。

Spark的適用場景

目前大數據處理場景有以下幾個類型:

  • 復雜的批量處理(Batch Data Processing),偏重點在于處理海量數據的能力,至于處理速度可忍受,通常的時間可能是在數十分鐘到數小時;
  • 基于歷史數據的交互式查詢(Interactive Query),通常的時間在數十秒到數十分鐘之間
  • 基于實時數據流的數據處理(Streaming Data Processing),通常在數百毫秒到數秒之間

Spark成功案例 目前大數據在互聯網公司主要應用在廣告、報表、推薦系統等業務上。在廣告業務方面需要大數據做應用分析、效果分析、定向優化等,在推薦系統方面則需要大數據優化相關排名、個性化推薦以及熱點點擊分析等。這些應用場景的普遍特點是計算量大、效率要求高。騰訊 / yahoo / 淘寶 / 優酷土豆

spark運行架構

spark基礎運行架構如下所示:

 

spark結合yarn集群背后的運行流程如下所示:

 

spark 運行流程:

Spark架構采用了分布式計算中的Master-Slave模型。Master是對應集群中的含有Master進程的節點,Slave是集群中含有Worker進程的節點。Master作為整個集群的控制器,負責整個集群的正常運行;Worker相當于計算節點,接收主節點命令與進行狀態匯報;Executor負責任務的執行;Client作為用戶的客戶端負責提交應用,Driver負責控制一個應用的執行。

Spark集群部署后,需要在主節點和從節點分別啟動Master進程和Worker進程,對整個集群進行控制。在一個Spark應用的執行過程中,Driver和Worker是兩個重要角色。Driver 程序是應用邏輯執行的起點,負責作業的調度,即Task任務的分發,而多個Worker用來管理計算節點和創建Executor并行處理任務。在執行階段,Driver會將Task和Task所依賴的file和jar序列化后傳遞給對應的Worker機器,同時Executor對相應數據分區的任務進行處理。

  • Excecutor /Task 每個程序自有,不同程序互相隔離,task多線程并行,
  • 集群對Spark透明,Spark只要能獲取相關節點和進程
  • Driver 與Executor保持通信,協作處理

三種集群模式:

  1. Standalone 獨立集群
  2. Mesos, apache mesos
  3. Yarn, hadoop yarn

基本概念:

  1. Application =>Spark的應用程序,包含一個Driver program和若干Executor
  2. SparkContext => Spark應用程序的入口,負責調度各個運算資源,協調各個Worker Node上的Executor
  3. Driver Program => 運行Application的main()函數并且創建SparkContext
  4. Executor => 是為Application運行在Worker node上的一個進程,該進程負責運行Task,并且負責將數據存在內存或者磁盤上。每個Application都會申請各自的Executor來處理任務
  5. Cluster Manager =>在集群上獲取資源的外部服務 (例如:Standalone、Mesos、Yarn)
  6. Worker Node => 集群中任何可以運行Application代碼的節點,運行一個或多個Executor進程
  7. Task => 運行在Executor上的工作單元
  8. Job => SparkContext提交的具體Action操作,常和Action對應
  9. Stage => 每個Job會被拆分很多組task,每組任務被稱為Stage,也稱TaskSet
  10. RDD => 是Resilient distributed datasets的簡稱,中文為彈性分布式數據集;是Spark最核心的模塊和類
  11. DAGScheduler => 根據Job構建基于Stage的DAG,并提交Stage給TaskScheduler
  12. TaskScheduler => 將Taskset提交給Worker node集群運行并返回結果
  13. Transformations => 是Spark API的一種類型,Transformation返回值還是一個RDD,所有的Transformation采用的都是懶策略,如果只是將Transformation提交是不會執行計算的
  14. Action => 是Spark API的一種類型,Action返回值不是一個RDD,而是一個scala集合;計算只有在Action被提交的時候計算才被觸發。

Spark核心概念之RDD

 

Spark核心概念之Transformations / Actions

 

Transformation返回值還是一個RDD。它使用了鏈式調用的設計模式,對一個RDD進行計算后,變換成另外一個RDD,然后這個RDD又可以進行另外一次轉換。這個過程是分布式的。 Action返回值不是一個RDD。它要么是一個Scala的普通集合,要么是一個值,要么是空,最終或返回到Driver程序,或把RDD寫入到文件系統中。

Action是返回值返回給driver或者存儲到文件,是RDD到result的變換,Transformation是RDD到RDD的變換。

只有action執行時,rdd才會被計算生成,這是rdd懶惰執行的根本所在。

Spark核心概念之Jobs / Stage

  • Job => 包含多個task的并行計算,一個action觸發一個job
  • stage => 一個job會被拆為多組task,每組任務稱為一個stage,以shuffle進行劃分

 

Spark核心概念之Shuffle

以reduceByKey為例解釋shuffle過程。

 

在沒有task的文件分片合并下的shuffle過程如下:(spark.shuffle.consolidateFiles=false)

 

fetch 來的數據存放到哪里?

剛 fetch 來的 FileSegment 存放在 softBuffer 緩沖區,經過處理后的數據放在內存 + 磁盤上。這里我們主要討論處理后的數據,可以靈活設置這些數據是“只用內存”還是“內存+磁盤”。如果spark.shuffle.spill = false就只用內存。由于不要求數據有序,shuffle write 的任務很簡單:將數據 partition 好,并持久化。之所以要持久化,一方面是要減少內存存儲空間壓力,另一方面也是為了 fault-tolerance。

shuffle之所以需要把中間結果放到磁盤文件中,是因為雖然上一批task結束了,下一批task還需要使用內存。如果全部放在內存中,內存會不夠。另外一方面為了容錯,防止任務掛掉。

存在問題如下:

  1. 產生的 FileSegment 過多。每個 ShuffleMapTask 產生 R(reducer 個數)個 FileSegment,M 個 ShuffleMapTask 就會產生 M * R 個文件。一般 Spark job 的 M 和 R 都很大,因此磁盤上會存在大量的數據文件。
  2. 緩沖區占用內存空間大。每個 ShuffleMapTask 需要開 R 個 bucket,M 個 ShuffleMapTask 就會產生 MR 個 bucket。雖然一個 ShuffleMapTask 結束后,對應的緩沖區可以被回收,但一個 worker node 上同時存在的 bucket 個數可以達到 cores R 個(一般 worker 同時可以運行 cores 個 ShuffleMapTask),占用的內存空間也就達到了cores R 32 KB。對于 8 核 1000 個 reducer 來說,占用內存就是 256MB。

為了解決上述問題,我們可以使用文件合并的功能。

在進行task的文件分片合并下的shuffle過程如下:(spark.shuffle.consolidateFiles=true)

 

可以明顯看出,在一個 core 上連續執行的 ShuffleMapTasks 可以共用一個輸出文件 ShuffleFile。先執行完的 ShuffleMapTask 形成 ShuffleBlock i,后執行的 ShuffleMapTask 可以將輸出數據直接追加到 ShuffleBlock i 后面,形成 ShuffleBlock i',每個 ShuffleBlock 被稱為 FileSegment。下一個 stage 的 reducer 只需要 fetch 整個 ShuffleFile 就行了。這樣,每個 worker 持有的文件數降為 cores * R。FileConsolidation 功能可以通過spark.shuffle.consolidateFiles=true來開啟。

Spark核心概念之Cache

 

  1. val rdd1 = ... // 讀取hdfs數據,加載成RDD  
  2. rdd1.cache  
  3. val rdd2 = rdd1.map(...)  
  4. val rdd3 = rdd1.filter(...)  
  5. rdd2.take(10).foreach(println)  
  6. rdd3.take(10).foreach(println)  
  7. rdd1.unpersist 

cache和unpersisit兩個操作比較特殊,他們既不是action也不是transformation。cache會將標記需要緩存的rdd,真正緩存是在***次被相關action調用后才緩存;unpersisit是抹掉該標記,并且立刻釋放內存。只有action執行時,rdd1才會開始創建并進行后續的rdd變換計算。

cache其實也是調用的persist持久化函數,只是選擇的持久化級別為MEMORY_ONLY。

persist支持的RDD持久化級別如下:

 

需要注意的問題: Cache或shuffle場景序列化時, spark序列化不支持protobuf message,需要java 可以serializable的對象。一旦在序列化用到不支持java serializable的對象就會出現上述錯誤。 Spark只要寫磁盤,就會用到序列化。除了shuffle階段和persist會序列化,其他時候RDD處理都在內存中,不會用到序列化。

Spark Streaming運行原理

spark程序是使用一個spark應用實例一次性對一批歷史數據進行處理,spark streaming是將持續不斷輸入的數據流轉換成多個batch分片,使用一批spark應用實例進行處理。

 

從原理上看,把傳統的spark批處理程序變成streaming程序,spark需要構建什么?

 

 

需要構建4個東西:

  • 一個靜態的 RDD DAG 的模板,來表示處理邏輯;
  • 一個動態的工作控制器,將連續的 streaming data 切分數據片段,并按照模板復制出新的 RDD 3. DAG 的實例,對數據片段進行處理;
  • Receiver進行原始數據的產生和導入;Receiver將接收到的數據合并為數據塊并存到內存或硬盤中,供后續batch RDD進行消費
  • 對長時運行任務的保障,包括輸入數據的失效后的重構,處理任務的失敗后的重調。

具體streaming的詳細原理可以參考廣點通出品的源碼解析文章:

  • https://github.com/lw-lin/CoolplaySpark/blob/master/Spark%20Streaming%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%E7%B3%BB%E5%88%97/0.1%20Spark%20Streaming%20%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF%E4%B8%8E%E6%A8%A1%E5%9D%97%E6%A6%82%E8%BF%B0.md#24

對于spark streaming需要注意以下三點:

盡量保證每個work節點中的數據不要落盤,以提升執行效率。

 

保證每個batch的數據能夠在batch interval時間內處理完畢,以免造成數據堆積。

 

使用steven提供的框架進行數據接收時的預處理,減少不必要數據的存儲和傳輸。從tdbank中接收后轉儲前進行過濾,而不是在task具體處理時才進行過濾。

 

 

Spark 資源調優

內存管理:

 

Executor的內存主要分為三塊:

  • ***塊是讓task執行我們自己編寫的代碼時使用,默認是占Executor總內存的20%;
  • 第二塊是讓task通過shuffle過程拉取了上一個stage的task的輸出后,進行聚合等操作時使用,默認也是占Executor總內存的20%;
  • 第三塊是讓RDD持久化時使用,默認占Executor總內存的60%。

每個task以及每個executor占用的內存需要分析一下。每個task處理一個partiiton的數據,分片太少,會造成內存不夠。

其他資源配置:

 

具體調優可以參考美團點評出品的調優文章:

  • http://tech.meituan.com/spark-tuning-basic.html
  • http://tech.meituan.com/spark-tuning-pro.html

Spark 環境搭建

spark tdw以及tdbank api文檔:

  • http://git.code.oa.com/tdw/tdw-spark-common/wikis/api
責任編輯:未麗燕 來源: 網絡大數據
相關推薦

2017-06-06 08:31:10

Spark Strea計算模型監控

2016-12-19 14:35:32

Spark Strea原理剖析數據

2017-08-14 10:30:13

SparkSpark Strea擴容

2018-03-21 11:05:26

Spark大數據應用程序

2017-10-13 10:36:33

SparkSpark-Strea關系

2020-12-04 14:31:45

大數據Spark

2016-05-11 10:29:54

Spark Strea數據清理Spark

2016-01-28 10:11:30

Spark StreaSpark大數據平臺

2017-04-13 09:10:06

Spark解釋關系

2020-05-26 15:05:30

Spark安裝環境

2019-09-30 08:28:53

Delta LakeSpark數據原理

2021-12-26 00:03:25

Spark性能調優

2019-10-17 09:25:56

Spark StreaPVUV

2017-05-25 09:45:35

2024-04-11 11:04:05

Redis

2016-10-24 09:52:45

SparkRDD容錯

2016-10-24 23:04:56

SparkRDD數據

2017-09-26 09:35:22

2021-08-20 16:37:42

SparkSpark Strea

2019-12-13 08:25:26

FlinkSpark Strea流數據
點贊
收藏

51CTO技術棧公眾號

www.日韩高清| 国产又黄又粗的视频| 69av成人| 久久精品视频在线看| 国产精品久久久91| 午夜少妇久久久久久久久| 久久99偷拍| 美女视频一区在线观看| 久久人体大胆视频| 亚州av综合色区无码一区| 蜜桃av在线免费观看| 在线综合色站| 中文字幕在线导航| 久久综合久中文字幕青草| 欧美成人a∨高清免费观看| 国产精品区免费视频| jizz国产在线观看| 欧美91大片| 亚洲免费av电影| 五月天国产视频| 久久人体大尺度| 日日欢夜夜爽一区| 精品亚洲一区二区三区在线观看 | 久久人人97超碰精品888| 91黄色小网站| 黄色一级片在线观看| 91偷拍与自偷拍精品| 国产主播欧美精品| 秋霞av一区二区三区| 欧美日韩精品一本二本三本| 欧美丰满少妇xxxxx高潮对白 | 亚洲国产精彩视频| 免费高清不卡av| 97成人超碰免| 日韩视频中文字幕在线观看| 精品三级在线| 懂色av一区二区三区| 国产人妻互换一区二区| 岛国视频免费在线观看| 欧美三级在线| 日韩亚洲成人av在线| 天天碰免费视频| 国产精品论坛| 亚洲综合区在线| 青青草影院在线观看| 9色在线观看| 国产日韩精品一区二区三区| 久久久水蜜桃| 亚洲 欧美 激情 小说 另类| 不卡一区中文字幕| 国产精品免费区二区三区观看| 国产黄色一区二区| 国产福利一区在线| 91午夜在线播放| 国产欧美熟妇另类久久久| 久久99国产乱子伦精品免费| 国产免费久久av| 强行糟蹋人妻hd中文| 99精品视频在线| 一区二区三区美女xx视频| 精品成人无码一区二区三区| 国产99久久| 在线a欧美视频| 国产精品无码无卡无需播放器| 国内精品视频在线观看| 中文欧美在线视频| 可以免费看av的网址| 欧美电影一区| 九色精品美女在线| 日韩成人高清视频| 国产精品7m凸凹视频分类| 日韩在线视频免费观看高清中文| 91香蕉国产视频| 精品女人视频| 日韩精品在线电影| 国产aⅴ激情无码久久久无码| 九九精品久久| 日韩中文字幕久久| 九九视频免费在线观看| 亚洲美女色禁图| 日本高清久久天堂| 国产三级在线观看视频| 成人在线视频一区| 欧美日韩一区二区三区在线观看免 | 久久久久91| 国产精品亚洲аv天堂网| 国产伦精品一区二区三区视频痴汉| 久久亚洲国产精品一区二区| 国产一区视频在线| 天堂中文在线官网| 国产欧美久久久精品影院| 成人免费观看网站| 日韩美女一级视频| 成人自拍视频在线观看| 欧美资源一区| 亚洲wwwww| 国产精品白丝在线| 成人在线播放网址| 成人亚洲免费| 亚洲成人av中文字幕| 特级西西www444人体聚色| 欧美精品播放| 国产精品久久久久久久午夜| 国产成人精品av在线观| 久久夜色精品一区| 精品视频在线观看一区二区| 国产综合av| 精品国产免费久久| 手机在线中文字幕| 新67194成人永久网站| 91在线视频免费| 欧洲亚洲在线| 亚洲一区二区三区激情| 亚洲一级免费在线观看| 美腿丝袜亚洲图片| 久久久精品视频在线观看| 国产精品久久久久久久久久精爆| 国产麻豆精品久久一二三| 日本在线一区| 国产不卡人人| 日韩欧美一区在线| avhd101老司机| 香蕉成人久久| 久久国产主播精品| 黄色羞羞视频在线观看| 亚洲永久精品国产| 污片在线免费看| 伊人精品一区| 97免费视频在线| 精品国产av 无码一区二区三区| 国产偷国产偷亚洲高清人白洁| 日b视频免费观看| 精品视频一区二区三区在线观看| 一区二区三区四区在线观看视频| 800av免费在线观看| 国产不卡一区视频| 一级全黄肉体裸体全过程| 另类中文字幕国产精品| 亚洲精品中文字幕av| 日韩视频免费观看高清| 懂色av一区二区三区免费观看| 国产人妻互换一区二区| 国产精品3区| 久久精品亚洲热| 91极品身材尤物theporn| 国产欧美一区视频| 人人爽人人av| 久久综合电影| 国产色视频一区| 欧美jizz18hd性欧美| 欧美少妇xxx| 免费看的黄色录像| 久久精品国产99| 在线看视频不卡| 国产美女久久| 久热国产精品视频| 精品人妻一区二区三区日产乱码| 亚洲欧美日韩电影| 91精品国产高清91久久久久久| 欧美日韩免费| 国产偷国产偷亚洲高清97cao| 国产天堂在线| 欧美婷婷六月丁香综合色| 黄色片网站在线播放| 狠狠色狠狠色合久久伊人| 久久最新免费视频| 日韩一区二区三区精品视频第3页| 欧美精品在线免费播放| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 亚洲线精品一区二区三区| 亚洲图片综合网| 久久天堂精品| 视频在线一区二区三区| 国产精品久久久久久久久久齐齐| 日韩在线免费视频| www.天堂在线| 欧美午夜片在线免费观看| 精品无码人妻一区二区免费蜜桃| 久久精品国产秦先生| 在线观看18视频网站| 精品欧美午夜寂寞影院| 国产精品91在线| 五月婷婷免费视频| 色欧美片视频在线观看在线视频| 亚洲欧美va天堂人熟伦| 国产乱人伦精品一区二区在线观看| 一本色道久久加勒比精品| 性欧美亚洲xxxx乳在线观看| 天天操天天射天天| 日本精品一区二区三区高清| 午夜成人亚洲理伦片在线观看| 国产高清不卡二三区| 日韩精品一区二区三区久久| 日本道不卡免费一区| 91精品国产99久久久久久红楼| 日韩欧美一中文字暮专区| 日韩精品视频在线播放| 亚洲第一网站男人都懂| 亚洲熟女乱综合一区二区| av成人国产| 亚洲欧洲精品一区二区三区波多野1战4 | 超碰一区二区三区| 国产精品99一区| 日本在线观看大片免费视频| 亚洲人高潮女人毛茸茸| 中文字幕第24页| 国产精品一区二区三区网站| 青青草原av在线播放| 91精品国产91久久综合| 鲁片一区二区三区| 欧美9999| 国产精品爽爽爽爽爽爽在线观看| 888av在线视频| www亚洲欧美| 九色视频在线观看免费播放| 日韩欧美高清一区| 又骚又黄的视频| 高潮白浆女日韩av免费看| 黄色a级片在线观看| 国产三级欧美三级日产三级99| 无码人妻一区二区三区精品视频| 日本中文字幕一区| 欧美亚洲另类色图| 狠狠色丁香久久综合频道| 中文字幕久久一区| 欧美精选视频在线观看| 六月婷婷久久| 加勒比视频一区| 97人人模人人爽人人少妇| 国产a亚洲精品| 国产精品电影网站| 波多视频一区| 91超碰caoporn97人人| 男女视频在线| 精品免费日韩av| 在线免费看av的网站| 欧美性猛交xxxx乱大交蜜桃| 国产一级二级三级| 亚洲精品高清视频在线观看| 亚洲女人久久久| 国产精品视频你懂的| 男人舔女人下部高潮全视频| 久久综合狠狠综合| 亚洲欧美日本一区| av网站免费线看精品| 中国黄色片视频| 成人美女在线视频| 亚洲成年人在线观看| 国产91精品在线观看| 又色又爽又黄18网站| 国产成人免费视频| 亚洲欧美国产高清| 伊人成人免费视频| 国产成人高清视频| 成人一区二区三区仙踪林| 国产丶欧美丶日本不卡视频| 亚洲天堂av一区二区| 国产一区视频导航| wwwww在线观看| 高清不卡在线观看av| 国产精品麻豆入口| 91免费版在线看| 精品人妻中文无码av在线| 日本一二三不卡| 一级性生活免费视频| 一区二区三区在线免费观看| 国产精品成人免费观看| 亚洲成人动漫在线观看| 九九热在线免费观看| 欧美在线观看视频一区二区三区| 中文字幕免费观看视频| 5566中文字幕一区二区电影 | 国产直播在线| 欧美在线xxx| 国产麻豆一区| 99视频国产精品免费观看| 久久夜色电影| 五码日韩精品一区二区三区视频| 99久久精品网| 免费看又黄又无码的网站| 日韩电影免费一区| 五月天国产视频| 久久亚洲精品小早川怜子| 久久av红桃一区二区禁漫| 亚洲成人激情av| 自拍偷拍色综合| 日韩精品中文字幕一区二区三区| 亚洲三区在线观看无套内射| 中文字幕精品www乱入免费视频| 91高清在线观看视频| 97色在线观看免费视频| 青青伊人久久| 国产精品污www一区二区三区| 国产一区二区在线| 2022中文字幕| 日韩电影免费在线观看网站| www.四虎精品| 国产日韩欧美在线一区| 精品无码人妻一区二区三| 在线日韩一区二区| 色丁香婷婷综合久久| 按摩亚洲人久久| 在线看片福利| 超碰在线97av| 日韩中文首页| 欧美久久久久久| 91成人精品| 宅男噜噜噜66国产免费观看| 国产99久久精品| 少妇视频一区二区| 色哟哟日韩精品| 亚洲欧美强伦一区二区| 久久精品中文字幕一区| 日本不卡二区| 欧美一级淫片| 免费无遮挡无码永久视频| 国产伦精一区二区三区| 怡红院一区二区三区| 精品国产乱码久久久久久虫虫漫画| 国产尤物在线观看| 国产亚洲福利一区| 天堂av在线网| 国产精品一区二区三区在线| 亚洲人成免费网站| 一道本在线免费视频| 久久久噜噜噜久噜久久综合| 精品在线视频免费| 欧美一区二区在线免费播放| 亚洲成人三级| 日韩免费av片在线观看| 最新97超碰在线| 一本综合久久| 国产va亚洲va在线va| 另类小说综合欧美亚洲| 成人免费网站黄| 亚洲高清在线精品| 国产熟女精品视频| 色婷婷综合久久久久| 亚洲第一会所001| 免费成人看片网址| 亚洲综合不卡| 亚洲狠狠婷婷综合久久久久图片| 亚洲va欧美va人人爽午夜| 国产熟女精品视频| 久热精品视频在线观看一区| 欧美视频免费看| 中文字幕一区二区三区最新| 麻豆国产91在线播放| www.涩涩爱| 欧美日韩精品电影| a天堂中文在线88| 国产精品久久一区| 色综合天天综合网中文字幕| 天天干天天草天天| 中文字幕视频一区二区三区久| 国产一区二区在线视频观看| 久久综合伊人77777| 7777精品| 国产中文字幕在线免费观看| 91美女蜜桃在线| 无码人妻aⅴ一区二区三区有奶水| 亚洲欧美国产高清va在线播| 精品视频在线一区二区在线| 亚洲精品一区二| 韩国av一区二区三区| 丰满少妇高潮久久三区| 欧美精品一区二区高清在线观看| 国产传媒在线观看| 热re99久久精品国产99热| 蜜桃av一区二区| 青青草原在线免费观看视频| 亚洲国产欧美在线成人app| 刘亦菲一区二区三区免费看| 手机看片福利永久国产日韩| 激情综合色播五月| 久草网视频在线观看| 日韩精品黄色网| 无人区在线高清完整免费版 一区二| 成人一区二区三区| 国产精品欧美日韩久久| 五月色婷婷综合| 欧美一级淫片aaaaaaa视频| 欧美日韩激情| 在线视频日韩欧美| 午夜精品一区二区三区免费视频| 亚洲欧美色视频| 成人黄色av播放免费| 亚洲国产婷婷| 亚洲图片第一页| 精品成人免费观看| www.久久.com| 欧美高清中文字幕| 久久精品无码一区二区三区| 国产麻豆免费视频| 日韩美女主播视频| 欧美日本久久| 国产精品一区二区小说| 亚洲免费看片| 欧美欧美欧美欧美| 国产秀色在线www免费观看|