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

97在线看福利| 亚洲国产一区二区三区在线观看 | 国产在线观看91| 蜜桃精品视频在线观看| 免费91麻豆精品国产自产在线观看| 国产视频在线观看网站| 偷拍自拍在线视频| 精品午夜久久福利影院| 97热在线精品视频在线观看| 亚洲女优在线观看| 精品国产一区二区三区2021| 欧美日韩国产丝袜美女| 亚洲国产成人不卡| 天堂在线视频免费观看| 丝袜美腿亚洲色图| 久久久久久com| 91动漫免费网站| 国产精品一区二区三区美女| 欧美日韩国产bt| 少妇高潮毛片色欲ava片| 日本高清在线观看wwwww色| 99视频精品在线| 成人午夜一级二级三级| 久久久久亚洲av成人毛片韩| 欧美日韩国产精品一区二区亚洲| 在线播放欧美女士性生活| 欧美日本视频在线观看| 超碰在线观看免费版| 久久久久亚洲综合| 国产一区自拍视频| www.色日本| 久久99精品国产麻豆婷婷| 97精品在线观看| 在线免费日韩av| 国产韩国精品一区二区三区| 亚洲情综合五月天| 国产草草浮力影院| 最新国产精品精品视频| 欧美精品自拍偷拍| 五月天亚洲视频| 久久久人成影片一区二区三区在哪下载 | 日韩免费看片| 欧美日韩美少妇| 凹凸日日摸日日碰夜夜爽1| 97超碰免费在线| 亚洲综合色噜噜狠狠| 天天综合中文字幕| 欧洲不卡av| 国产精品九色蝌蚪自拍| 日韩精品资源| 国产h在线观看| 国产清纯在线一区二区www| 欧美极品日韩| 狠狠狠综合7777久夜色撩人| 2020国产成人综合网| 久久综合一区二区三区| 日本成人一区| 国产三级久久久| 日韩国产精品一区二区| 成人av一区| 国产精品麻豆久久久| 亚洲伊人婷婷| 一色桃子av在线| 亚洲午夜一区二区三区| 免费看国产一级片| 波多野结衣久久精品| 色国产精品一区在线观看| 日韩手机在线观看视频| 成人免费视频观看| 91精品国产综合久久婷婷香蕉 | 日韩精品在线免费观看| 极品粉嫩小仙女高潮喷水久久| 福利一区二区| 欧美区一区二区三区| 国产三级精品三级在线| 国产日韩欧美中文在线| 精品国产伦一区二区三区免费| the porn av| 国产精品亚洲欧美一级在线| 日韩欧美一区中文| 中文字幕精品视频在线| 国产videos久久| 日韩专区中文字幕| 麻豆changesxxx国产| 久久国产精品亚洲77777| 国产精品免费一区二区三区都可以| 久久综合色综合| 亚洲一区观看| 成人福利免费观看| 风流少妇一区二区三区91| www.久久精品| 亚洲欧美日韩精品在线| 国产美女情趣调教h一区二区| 亚洲丝袜制服诱惑| 缅甸午夜性猛交xxxx| 中文字幕21页在线看| 91麻豆精品国产91久久久使用方法 | 成人欧美一区二区三区在线湿哒哒| 免费看日批视频| 久久99久久久久久久久久久| 国产日韩欧美综合精品 | 亚洲国产一区二区三区四区| 国产美女永久免费无遮挡| 欧美日本不卡| 国产精品亚洲自拍| 中文字幕一区二区人妻电影丶| 日本三级片在线观看| 欧美日韩18| 国产精品视频免费在线观看| 国产香蕉在线观看| 国产精品视频九色porn| 日韩欧美视频网站| 亚洲精品乱码日韩| 精品在线小视频| 久久伊人成人网| 九一久久久久久| 日本一区二区三不卡| 牛牛电影国产一区二区| 欧美日韩免费一区二区三区| 免费看黄色aaaaaa 片| 亚洲乱码精品| 国产精品美女免费看| 午夜成人鲁丝片午夜精品| 亚洲柠檬福利资源导航| 高清一区在线观看| 亚洲黄色录像| 国内揄拍国内精品| 性欧美videos另类hd| 中文字幕永久在线不卡| 精品久久久噜噜噜噜久久图片| 成人国产精选| 亚洲色图美腿丝袜| 日本中文字幕网| 国产精品一二三四区| 亚洲欧美日韩精品在线| 精品免费av在线| 国产性猛交xxxx免费看久久| 亚洲另类在线观看| 99精品国产99久久久久久白柏| 任我爽在线视频精品一| 成人福利视频| 国产婷婷色综合av蜜臀av| 久久久久99精品成人片毛片| 国产乱子伦一区二区三区国色天香| 国产精品三区四区| 丰满大乳少妇在线观看网站| 日韩三级精品电影久久久| 91麻豆精品成人一区二区| 免费成人在线视频观看| 三区精品视频观看| 成人日韩av| 自拍偷拍免费精品| 亚洲最新av网站| 亚洲欧洲三级电影| 欧美xxxxxbbbbb| 欧美日本三区| 国产日韩三区| 黄色亚洲网站| 中文字幕欧美日韩精品| 中文字幕一区二区三区四区免费看| 国产精品影视在线观看| 91国在线高清视频| 福利片一区二区| 午夜精品福利视频| 免费播放片a高清在线观看| 欧美日韩一区二区免费在线观看| 成年人三级黄色片| 国产精品成人一区二区不卡| 亚洲一区二区三区四区在线播放| 黄色av免费观看| 红桃视频成人在线观看| 中文字幕一区二区三区人妻| 久久综合狠狠| 中文字幕中文字幕一区三区| 国产一区二区视频在线看| 久久久久久九九九| 免费一级毛片在线观看| 欧美日韩亚洲一区二| 天堂资源在线视频| 国产精品一级在线| 欧美性大战久久久久xxx| 成人系列视频| 国产91精品一区二区绿帽| 性欧美freesex顶级少妇| 在线播放亚洲激情| 亚洲成人中文字幕在线| 欧美性高跟鞋xxxxhd| 中文字幕91视频| 99视频在线精品| 天堂av8在线| 日韩一级精品| 手机成人av在线| 红杏一区二区三区| 国产精品中文字幕在线| 欧美bbbxxxxx| 中文字幕在线看视频国产欧美在线看完整| 午夜影院在线看| 国产精品久久久久久久第一福利 | 激情视频在线观看| 亚洲福利视频二区| 中文字幕在线网站| 亚洲成av人片| 中文字幕第69页| 99精品国产一区二区三区不卡| 成年女人18级毛片毛片免费| 黑人操亚洲人| 成人免费看片网址| 亚洲精品自拍| 国产91久久婷婷一区二区| 天使と恶魔の榨精在线播放| 亚洲最大中文字幕| 日批视频在线播放| 日韩午夜在线观看视频| 亚洲视屏在线观看| 欧美日韩免费观看中文| 私库av在线播放| 国产精品福利一区二区三区| 中日韩精品一区二区三区| 高清国产一区二区| 天堂在线精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 性高潮久久久久久久久| 农村少妇一区二区三区四区五区| 91国内免费在线视频| 久cao在线| 亚洲最大在线视频| 好男人免费精品视频| 亚洲精品成人久久| 六月婷婷中文字幕| 日韩欧美色综合| 国产精选久久久| 欧美日韩国产一区| 中文字幕久久网| 色琪琪一区二区三区亚洲区| 五月天婷婷久久| 亚洲高清免费一级二级三级| 九九热精彩视频| 一卡二卡欧美日韩| 久久久久97国产| 亚洲在线免费播放| 久草成人在线视频| 一区二区三区久久| 亚洲欧美一区二区三区四区五区| 91丨九色丨黑人外教| 粉嫩av懂色av蜜臀av分享| 不卡在线观看av| 91精品又粗又猛又爽| 国产福利精品导航| 无码人妻一区二区三区一| 国产精品自拍毛片| 色婷婷一区二区三区av免费看| 日韩亚洲精品在线| 又粗又黑又大的吊av| 先锋亚洲精品| 午夜免费一区二区| 九色porny丨国产精品| 日本人69视频| 激情综合色丁香一区二区| 三日本三级少妇三级99| 国产成人精品影视| 小毛片在线观看| 久久精品免视看| 成人午夜免费影院| 亚洲激情成人在线| 日韩黄色精品视频| 色综合 综合色| 一二三四区在线| 日韩视频一区二区| 五月天激情开心网| 亚洲一区www| av网址在线| 69av在线视频| 久久麻豆视频| 97超级在线观看免费高清完整版电视剧| 成人美女大片| 国产精品亚洲网站| 在这里有精品| 欧美三级网色| 亚洲啊v在线观看| 亚洲熟妇无码一区二区三区| 久久午夜视频| 无套白嫩进入乌克兰美女| 菠萝蜜视频在线观看一区| 免费黄色在线视频| 综合久久综合久久| 欧美一级视频免费观看| 精品1区2区3区| 亚洲国产精品国自产拍久久| 亚洲久久久久久久久久| 黄色成人在线观看| 91地址最新发布| 99精品女人在线观看免费视频| 国产精品私拍pans大尺度在线| 亚洲十八**毛片| 国产欧美一区二区三区在线| 精品视频自拍| 一区在线电影| 中文欧美日韩| 亚洲网中文字幕| 久久久精品tv| 豆国产97在线 | 亚洲| 在线视频国产一区| 亚洲免费视频网| 日韩小视频在线观看| 日韩电影免费看| 91视频网页| 91综合视频| 久久综合伊人77777麻豆最新章节| 首页国产欧美日韩丝袜| av在线天堂网| 中文字幕一区二区三区精华液| 亚洲天堂网av在线| 色综合久久久久综合体桃花网| 亚洲免费在线观看av| 亚洲一区二区欧美| 91精品国产综合久| 亚洲欧美日韩精品久久| 91av久久| 成人黄动漫网站免费| 国产高清一区| 波多野结衣xxxx| 久久久久久一级片| 精品在线播放视频| 精品国产乱码久久| 成人在线网址| 国产一区视频在线播放| 波多野结衣的一区二区三区| 97国产精东麻豆人妻电影 | 一区二区在线观看视频在线观看| 欧美日韩三级在线观看 | 日韩电影在线观看一区二区| 日韩欧美精品在线| 日本中文在线| 国产精品久久久久秋霞鲁丝| 亚洲尤物av| www一区二区www免费| jlzzjlzz亚洲日本少妇| 国产一级一片免费播放放a| 日韩一区二区不卡| av在线播放国产| 亚洲在线免费视频| 女人天堂亚洲aⅴ在线观看| 日本特黄在线观看| 亚洲欧美激情插 | 青春草免费在线视频| 91久久久久久国产精品| 国产精品久久久久久| 天天操天天干天天做| 国产精品成人网| 国产一区二区网站| 精品综合久久久久久97| 天堂va欧美ⅴa亚洲va一国产| 欧美日韩免费高清| 老司机午夜精品视频| 欧美 日韩 国产 成人 在线观看 | 色噜噜国产精品视频一区二区| 日本大胆在线观看| 国产精品久久九九| 9国产精品视频| av网站免费在线看| 精品视频免费在线| 性欧美ⅴideo另类hd| 国产精品视频入口| 国产一级一区二区| 日韩免费成人av| 884aa四虎影成人精品一区| 日韩特级毛片| 欧美大香线蕉线伊人久久| 久久综合导航| 性欧美疯狂猛交69hd| 欧美精品一区二区三区蜜桃视频| 国产1区在线| 精品久久精品久久| 日韩1区2区3区| 国产极品国产极品| 精品成人a区在线观看| 亚洲伊人av| 中文字幕在线观看一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 日韩欧美国产成人精品免费| 亚洲白拍色综合图区| 欧洲av不卡| 国产女人18毛片| 91欧美一区二区| 97人妻精品一区二区三区动漫| 最近日韩中文字幕中文| 日本一区精品视频| 国产成人久久777777| 一区二区三区在线影院| 你懂的在线播放| 亚洲一区亚洲二区亚洲三区| 一本色道久久综合| 国产福利视频网站| 亚洲精品国精品久久99热| 色综合一区二区日本韩国亚洲| 亚洲一区bb| www.爱久久.com| 国产视频第二页| 日本一区二区三区在线播放| 天天射成人网|