日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark详解(九):Spark存储原理分析

發布時間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark详解(九):Spark存储原理分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 整體架構

Spark存儲介質包括內存和磁盤等。Spakr的存儲采用了主從模式,也就是Master/Slave模式,整個存儲模塊使用了前面介紹的RPC的通信方式。其中,Master負責整個應用程序運行期間的數據塊元數據的管理和維護,而Slave一方面負責本地數據塊的狀態信息上報給Master,另一方面接受從Master傳來的執行命令,如獲取數據塊狀態、刪除RDD/數據塊等命令。在每個Slave中存在數據傳輸通道,根據需要在Slave之間進行遠程數據的讀取和寫入

(1)在應用程序啟動后,SparkContext會創建Driver端的SpakrEnv,在該SparkEnv中實列化BlockManager和BlockManagerMaster,在BlockManagerMaster內部創建消息通信的終端點BlockManagerMasterEndPoint

在Executor啟動時候,也會創建SparkEnv,在該SparkEnv中實列化BlockManger和負責數據傳輸服務的BlockTransferService終端點的引用。在BlockManger初始化的過程中,一方面會加入BlockManagerMasterEndpoint終端點的引用,另一方面會創建Executor消息通信BlockManagerSlaveEndpoint終端點,并把該終端點的引用注冊到Driver中,這樣Dirver和Executor相互持有通信終端點的引用,可以在應用程序執行過程中進行消息通信。

// 創建遠程數據傳輸服務,使用Nettyval blockTransferService =new NettyBlockTransferService(conf, securityManager, hostname, numUsableCores)//創建BlockMangerMaster,如果是Dirver端 在BlockMangerMaster內部,則創建終端點BlockManagerMasterEndpoint// 如果是Executor,則創建BlockManagerSlaveEndpoint的引用val blockManagerMaster = new BlockManagerMaster(registerOrLookupEndpoint(BlockManagerMaster.DRIVER_ENDPOINT_NAME,new BlockManagerMasterEndpoint(rpcEnv, isLocal, conf, listenerBus)),conf, isDriver)// NB: blockManager is not valid until initialize() is called later.// 創建BlockManager,如果是Driver端包含BlockManagerMaster,如果是Executor包含的是BlockManagerMaster的引用,另外BlockManager包含了// 數據傳輸服務,當BlockManager調用initalize()方法初始化時真正生效val blockManager = new BlockManager(executorId, rpcEnv, blockManagerMaster,serializerManager, conf, memoryManager, mapOutputTracker, shuffleManager,blockTransferService, securityManager, numUsableCores)

其中BlockManger初始化代碼如下,如果是Exeucor創建其消息通信的終端點BlockMangerSlaveEndpoint,并向Driver發送RegisterBlockManger消息,把該Executor的BlockManger和其包含的BlockMangerSlaveEndPoint注冊到BlockManagerMaster中。

def initialize(appId: String): Unit = {// 在Executor中啟動遠程數據傳輸服務blockTransferService,根據配置啟動傳輸服務器BlockTransferService// 該服務器啟動后等待其他節點發送請求blockTransferService.init(this)shuffleClient.init(appId)// 獲取BlockManager的編號blockManagerId = BlockManagerId(executorId, blockTransferService.hostName, blockTransferService.port)// 獲取Shuffle服務編號,如果啟動外部Shuffle服務,則加入外部Shuffle服務端口信息,// 否則使用BlockManager的編號shuffleServerId = if (externalShuffleServiceEnabled) {logInfo(s"external shuffle service port = $externalShuffleServicePort")BlockManagerId(executorId, blockTransferService.hostName, externalShuffleServicePort)} else {blockManagerId}// 把Executor的BlockManager注冊到BlockManagerMaster中,啟動包括其終端點BlockMangaerSlaveEndPoint的引用,Master端持有該引用可以向Executor發送信息master.registerBlockManager(blockManagerId, maxMemory, slaveEndpoint)// Register Executors' configuration with the local shuffle service, if one should exist.// 如果外部Shuffle服務啟動并且為Executor節點,則注冊該外部Shuffle服務if (externalShuffleServiceEnabled && !blockManagerId.isDriver) {registerWithExternalShuffleServer()}}

(2)當寫入、更新或刪除數據完畢后,發送數據塊的最新狀態消息UpdateBlockInfo給BlockMangerMasterEndPoint終端點,由其更新數據塊的元數據。該終端點的元數據存放在BlockMangerMasterEndPint的3個HashMap中。

// Mapping from block manager id to the block manager's information.// 該HashMap中存放了BlockMangerId與BlockMangerInfo的對應,其中BlockMangerInfo包含了Executor內存使用情況、數據塊的使用情況、已被緩存的數據塊和Executor終端點引用// 通過該引用可以向Execuotr發送消息private val blockManagerInfo = new mutable.HashMap[BlockManagerId, BlockManagerInfo]// Mapping from executor ID to block manager ID.// 該HashMap中存放了ExecutorID和BlockMangerID對應列表private val blockManagerIdByExecutor = new mutable.HashMap[String, BlockManagerId]// Mapping from block id to the set of block managers that have the block.// 該HashMap存放了BlockId和BlockManagerId序列對應的列表,原因在于一個數據塊可能存在多個副本,保持在多個Executor中

在更新數據的元數據時,更新BlockManagerInfo和BlockLocations兩個列表

  • 在處理BokcMangerInfo時,傳入的BlockMangerId、blockId和SotrageLevel等參數,通過這些參數判斷數據的操作是插入、更新還是刪除操作。
  • 在處理blockLoacations,根據blockId判斷blockLocations中是否包含該數據庫。如果包含該數據塊,則根據數據塊的操作,當進行數據更新時,更新數據塊所在的BlockMangerid信息,當進行數據刪除時,則移除該BlockMangerid信息,在刪除過程中判斷數據塊對應的Executor是否為空,如果為空表示在集群中刪除了該數據塊,則在blockLoactions刪除該數據塊信息。

(3)應用程序數據存儲后,在獲取遠程節點數據、獲取RDD執行的首選位置等操作時需要根據數據塊的編號查詢數據塊所處的位置,此時發送GetLoacations或獲取數據塊的位置信息。

(4)Spark提供刪除RDD、數據塊、廣播變量的方式。當數據需要刪除的時候,提交刪除信息給BlockMangerSlaveEndPoint終端點,在該終端點發起刪除操作,刪除操作一方面需要刪除Driver端元數據信息,另一方面需要發送消息通知Executor,刪除對應的物理數據。

首先在SparkContext中調用unpersistRDD方法,在該方法中發送removeRDD消息給BlockMangerMasterEndPoint;然后,該終端點接收到消息時,從blockLocations列表中找出RDD對應的數據存在BlockManagerId列表,查詢完畢之后,更新blockLoactions和blockMangerInfo兩個元數據列表;最后,把獲取的BlockManger列表,發送消息給所在的BlockMangerSlaveEndPoint終端點,通知其刪除該Executor上的RDD,刪除時調用BlockManager的removeRDD方法,刪除Executor上RDD對應的數據塊。

private def removeRdd(rddId: Int): Future[Seq[Int]] = {// First remove the metadata for the given RDD, and then asynchronously remove the blocks// from the slaves.// Find all blocks for the given RDD, remove the block from both blockLocations and// the blockManagerInfo that is tracking the blocks.// 在blockLocations和blockManagerInfo中刪除該RDD的數據元信息// 首先根據RDD編號獲取該RDD存儲的數據塊信息val blocks = blockLocations.asScala.keys.flatMap(_.asRDDId).filter(_.rddId == rddId)blocks.foreach { blockId =>//然后根據該數據塊的信息找出這些數據塊在blockManagerId中的列表,遍歷這些列表并刪除// BlockManager包含該數據塊的元數據,同時刪除blockLocations對應數據塊的元數據val bms: mutable.HashSet[BlockManagerId] = blockLocations.get(blockId)bms.foreach(bm => blockManagerInfo.get(bm).foreach(_.removeBlock(blockId)))blockLocations.remove(blockId)}// Ask the slaves to remove the RDD, and put the result in a sequence of Futures.// The dispatcher is used as an implicit argument into the Future sequence construction.//最后發送RemoveRDD消息給Executor,通知其刪除RDDval removeMsg = RemoveRdd(rddId)Future.sequence(blockManagerInfo.values.map { bm =>bm.slaveEndpoint.ask[Int](removeMsg)}.toSeq)}

在實際研究存儲首先之前,我們在來看一下Spark存儲模塊之間的關系,如下圖所示,整個模塊中BlockManger時其核心,它不僅提供存儲模塊處理各種存儲方式的讀寫方法,而且為Shuffle模塊提供數據處理等操作。

BlockManger存在與Dirver端和每個Executor中,在Driver端的BlockManger保存了數據的元數據信息,而在Executor的BlockManger根據接受到消息進行操作:

  • 當Executor的BlockManger接受到讀取數據時,根據數據塊所在節點是否為本地使用BlockManger不同的方法進行處理。如果在本地,則直接調用MemeoryStore和DiskStore中的取方法getVlaues/getBytes進行讀取;如果在遠程,則調用BlockTransferService的服務進行獲取遠程數據節點上的數據。
  • 當Executor的BlockManger接收到寫入數據時,如果不需要創建副本,則調用BlockStore的接口方法進行處理,根據數據寫入的存儲模型,決定調用對應的寫入方法。

2. 存儲級別

Spark時基于內存的計算,但是RDD的數據不僅可以存儲到內存中,還可以使用persist或者cache 方顯示的將RDD的數據存儲到內存或者磁盤中。

private def persist(newLevel: StorageLevel, allowOverride: Boolean): this.type = {// TODO: Handle changes of StorageLevel// 如果RDD指定了非NONE的存儲級別,該存儲級別不能被修改if (storageLevel != StorageLevel.NONE && newLevel != storageLevel && !allowOverride) {throw new UnsupportedOperationException("Cannot change storage level of an RDD after it was already assigned a level")}// If this is the first time this RDD is marked for persisting, register it// with the SparkContext for cleanups and accounting. Do this only once.// 當RDD原來的存儲級別為None時,可以對RDD進行持久化處理,在處理之前需要先清楚SparkContext中原來的存儲元數據,然后加入該持久信息if (storageLevel == StorageLevel.NONE) {sc.cleaner.foreach(_.registerRDDForCleanup(this))sc.persistRDD(this)}// 當RDD原來的存儲級別為NONE時,把RDD存儲級別修改為傳入的新值storageLevel = newLevelthis}

persist操作時控制操作的一種,它只是改變了原有的RDD的元數據信息,并沒有進行數據的存儲操作操作,正在進行是在RDD的iteratior方法中。對于cache方法而言,它只是persist的特例,即persist的方法參數為MEMORY_ONLY的情況。

在StorageLevel類中,根據useDisk、useMmeory、uesOffHeap、deserialized、replicaiton5個參數的組和。Spakr提供了12中存儲級別的緩存策略,這可以將RDD持久化到內存、磁盤和外部存儲系統,或者是以序列化的方式持久化到內存等,甚至可以在集群中不同節點之間存儲多個副本呢。

self.useDisk = useDisk self.useMemory = useMemory self.useOffHeap = useOffHeap self.deserialized = deserialized self.replication = replicationStorageLevel.DISK_ONLY = StorageLevel(True, False, False, False) StorageLevel.DISK_ONLY_2 = StorageLevel(True, False, False, False, 2) StorageLevel.MEMORY_ONLY = StorageLevel(False, True, False, False) StorageLevel.MEMORY_ONLY_2 = StorageLevel(False, True, False, False, 2) StorageLevel.MEMORY_AND_DISK = StorageLevel(True, True, False, False) StorageLevel.MEMORY_AND_DISK_2 = StorageLevel(True, True, False, False, 2) StorageLevel.OFF_HEAP = StorageLevel(True, True, True, False, 1) 存儲級別描述
NONE不進行數據存儲
MEMORY_ONLY將RDD作為反序列化的對象存儲JVM中。如果RDD不能被內存裝下,一些分區將不會被緩存,并且在需要的時候被重新計算。這是默認的存儲級別
MEMORY_AND_DISK將RDD作為反序列化的對象存儲到JVM中。如果RDD不能內存裝下,超出的分區將被保存在磁盤上,并且在需要的時候被讀取
MEMORY_ONLY_SER將RDD作為序列化的對象進行存儲
MEMORY_AND_DISK_SER與MEMORY_ONLY_SER類似,但是把超出的內存部分分區將存儲到硬盤中而不是每次需要的時候進行重新計算
DISK_ONLY只將RDD分區存儲到硬盤上
DISK_ONLY_2與上述的存儲級別一樣,但是將每個分區都復制到兩個集群之上
OFF_HEAP可以將RDD存儲到分布式文件系統中,如Alluxio

3. RDD存儲調用

RDD 包含多個Partition,每個Partition對應一個或者多個數據塊Block,每個Block,每個Block擁有唯一的編號BlockId,對應于數據塊編號規則為:“rdd”+rddId+"_"+splitIndex,其中splitIndex為該數據塊對應的Partition序號。

首先RDD通過Transfermation操作,比如map獲取flatMap操作,調用RDD構造相應的MapPartitionsRDD。然后通過在提交作業之后,運行相應的Task,執行MapPartitionsRDD的compute方法,在compute方法中調用RDD的iterator方法。

實際發送數據操作是任務執行的時候發生的,RDD調用iterator方法時發生的。在調用過程中,先根據數據塊Block的編號在判斷是否已經按照指定的存儲級別進行存儲,如果存在該數據塊Block,則從本地或遠程節點讀取數據;如果不存在該數據塊Block,則調用RDD的計算方法輸出結果,并把結果按照指定的存儲級別進行存儲。

iterator 函數實現大體是這么個流程:
1 若標記了有緩存,則取緩存,取不到則進行”計算或讀檢查點”。完了再存入緩存,以備后續使用。
2 若未標記有緩存,則直接進行”計算或讀檢查點”。
3 “計算或讀檢查點”這個過程也做兩個判斷:有做過checkpoint,沒有做過checkpoint。做過checkpoint則可以讀取到檢查點數據返回。無則調該rdd的實現類的computer函數計算。computer函數實現方式就是向上遞歸“獲取父rdd分區數據進行計算”,直到遇到檢查點rdd獲取有緩存的rdd。

final def iterator(split: Partition, context: TaskContext): Iterator[T] = {if (storageLevel != StorageLevel.NONE) {// 如果存在存儲級別,嘗試讀取內存的數據進行迭代計算getOrCompute(split, context)} else {// 如果不存在存儲級別,則直接讀取數據進行迭代計算或者讀取檢查點結構進行迭代計算computeOrReadCheckpoint(split, context)}}

其中調用的getOrCompute時方法存儲邏輯的核心。

private[spark] def getOrCompute(partition: Partition, context: TaskContext): Iterator[T] = {// 通過RDD編號和partition序號獲取數據塊的Block的編號val blockId = RDDBlockId(id, partition.index)var readCachedBlock = true// This method is called on executors, so we need call SparkEnv.get instead of sc.env.// 由于該方法由Executor調用,可以使用SparkEnv代替sc.env// 根據數據塊Block的編號先讀取數據,然后在更新數據,這里是讀寫數據的入口SparkEnv.get.blockManager.getOrElseUpdate(blockId, storageLevel, elementClassTag, () => {// 如果數據塊不在內存中,則嘗試讀取檢查點結果進行迭代計算readCachedBlock = falsecomputeOrReadCheckpoint(partition, context)}) match {case Left(blockResult) =>// 對getOrElseUpdate返回結果進行處理,該結果表示處理成功,記錄結果度量信息if (readCachedBlock) {val existingMetrics = context.taskMetrics().inputMetricsexistingMetrics.incBytesRead(blockResult.bytes)new InterruptibleIterator[T](context, blockResult.data.asInstanceOf[Iterator[T]]) {override def next(): T = {existingMetrics.incRecordsRead(1)delegate.next()}}} else {new InterruptibleIterator(context, blockResult.data.asInstanceOf[Iterator[T]])}// 對getOrElseUpdate返回結果進行處理,該結果表示保存失敗,例如數據太大無法放到內存中// 并且也無法保存到磁盤中,把該返回結果給調用者,由其決定如何處理。case Right(iter) =>new InterruptibleIterator(context, iter.asInstanceOf[Iterator[T]])}}

在getOrCompute調用getOrElseUpdate方法,該方法時存儲讀寫數據的入口點。

def getOrElseUpdate[T](blockId: BlockId,level: StorageLevel,classTag: ClassTag[T],makeIterator: () => Iterator[T]): Either[BlockResult, Iterator[T]] = {// Attempt to read the block from local or remote storage. If it's present, then we don't need// to go through the local-get-or-put path.// 嘗試從本地或遠程存儲中讀取塊。 如果它存在,那么我們不需要通過local-get-or-put路徑。get[T](blockId)(classTag) match {case Some(block) =>return Left(block)case _ =>// Need to compute the block.}// Initially we hold no locks on this block.// 寫數據的入口doPutIterator(blockId, makeIterator, level, classTag, keepReadLock = true) match {case None =>// doPut() didn't hand work back to us, so the block already existed or was successfully// stored. Therefore, we now hold a read lock on the block.val blockResult = getLocalValues(blockId).getOrElse {// Since we held a read lock between the doPut() and get() calls, the block should not// have been evicted, so get() not returning the block indicates some internal error.releaseLock(blockId)throw new SparkException(s"get() failed for block $blockId even though we held a lock")}// We already hold a read lock on the block from the doPut() call and getLocalValues()// acquires the lock again, so we need to call releaseLock() here so that the net number// of lock acquisitions is 1 (since the caller will only call release() once).releaseLock(blockId)Left(blockResult)case Some(iter) =>// The put failed, likely because the data was too large to fit in memory and could not be// dropped to disk. Therefore, we need to pass the input iterator back to the caller so// that they can decide what to do with the values (e.g. process them without caching).Right(iter)}}

4. 讀數據的過程

BlockManager的get方法是讀數據的入口點,在讀取時分為本地讀取和遠程節點讀取兩個步驟。本地讀取使用getLocalValues方法,該方法根據不同的存儲級別直接調用不同存儲實現方法;而遠程讀取使用getRemoteValues方法,在getRemoteVulaes方法中調用了GetRemoteBytes方法,在方法中調用遠程數據傳輸類BLockTransferService的fetchBlockSync進行處理,使用Netty的fetchBlocks方法讀取數據,整個數據讀取類調用如下:

5.寫數據過程

前面分析當中,我們了解到BlockManger的doPutIterator方法是寫數據的入口。在該方法中,根據數據是否緩存到內存中進行處理。如果不緩存到內存中,則調用BlockManager的putIterator方法直接存儲磁盤;如果緩存到內存中,則先判斷數據存儲級別是否進行了反序列化。如果設置了反序列化,則說明獲取的數據為值類型,調用putIteratorAsVaules方法把數據存入內存;如果沒有設置反序列化,則獲取的數據為字節類型,調用putIteratorAsBytes方法把數據放入內存中。在把數據存入內存中的時候,則需要判斷內存中展開數據大小是否滿足,當足夠調用BlockManger的putArray方法寫入內存,否則把數據寫入到磁盤中。

在寫入數據完成的時候,一方面吧數據塊的元數據發送給Driver端的BlockMangerMasterEndPoint終端點,請求其更新數據元數據,另一方面判斷是否需要創建數據副本,如果需要調用replicate方法,把數據寫到遠程節點上,類似于讀取遠程節點的數據,Spark提供Netty方式寫入數據。

總結

以上是生活随笔為你收集整理的Spark详解(九):Spark存储原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久经典国产视频 | 欧美午夜激情网 | 精品久久久久国产免费第一页 | 国产精品2区 | 成年人免费在线观看 | 日av免费 | 国产精品麻豆91 | 亚洲国产人午在线一二区 | 婷五月激情| 亚洲涩涩涩 | 欧美日韩国产精品一区二区 | 天天插天天干 | 国产精品一区在线观看你懂的 | 91精品视频导航 | 亚洲国产人午在线一二区 | 欧美日韩午夜 | 午夜婷婷在线观看 | 天天在线操 | 高清一区二区三区av | 日韩精品最新在线观看 | 在线观看成人av | 国产97色 | 欧美另类成人 | 亚洲精品成人免费 | 久久人人添人人爽添人人88v | 国产精在线 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产精品xxxx18a99 | 国产一级做a | 亚洲成人av电影在线 | 字幕网资源站中文字幕 | 岛国大片免费视频 | 日本激情动作片免费看 | 人人爱爱人人 | 欧美日韩午夜在线 | 亚洲欧洲精品一区二区精品久久久 | 黄色软件网站在线观看 | 最近中文字幕高清字幕在线视频 | 中文字幕免费观看全部电影 | 国产区高清在线 | 在线免费av播放 | 99在线视频观看 | 午夜精品视频一区 | 国产一二区在线观看 | 极品国产91在线网站 | 九草在线视频 | 天天弄天天操 | 国产精品久久99精品毛片三a | 亚洲综合色丁香婷婷六月图片 | 精油按摩av| 免费观看黄 | 精品在线观看一区二区 | 国产成人精品不卡 | 精品亚洲男同gayvideo网站 | 日日夜夜免费精品视频 | 蜜桃视频精品 | 午夜在线看片 | 国产拍揄自揄精品视频麻豆 | 欧美综合色 | 在线岛国av | 成人97人人超碰人人99 | 亚洲成人黄色在线观看 | 一区二区视频欧美 | 黄污视频网站大全 | www.久久免费视频 | 日韩精品在线观看av | 欧美精品在线视频 | 国产视频二 | 色视频网页 | 97精品国产97久久久久久粉红 | 久久刺激视频 | 国产尤物视频在线 | 国产一卡二卡在线 | 欧美人人爱 | 在线91色| 亚洲精品久久久久久久蜜桃 | 日韩欧美综合精品 | 天天添夜夜操 | 欧美日韩首页 | 久久草网 | 国产精品6999成人免费视频 | 中文成人字幕 | 成人黄大片视频在线观看 | 欧美一级专区免费大片 | 丁香 久久 综合 | 久久国产免 | 国产精品久久久久久久久久久久久 | 久久久国产在线视频 | 日韩三区在线观看 | 激情久久久久久久久久久久久久久久 | 96精品视频| 超碰97中文 | 不卡视频在线 | 青青河边草免费 | 久久国产精品免费看 | 久久精品黄 | 免费av影视 | 国产视频在线观看一区二区 | 91在线免费播放 | 国产成人三级三级三级97 | 91精品国产福利 | www.福利| 日韩电影黄色 | 国产91电影在线观看 | 日本在线观看视频一区 | 久久免费视频在线观看 | 久久久精品福利视频 | 精品嫩模福利一区二区蜜臀 | 精品视频 | 日韩在线观看视频中文字幕 | 日韩精品久久久久久中文字幕8 | 五月天狠狠操 | 久久不卡电影 | 国产免费嫩草影院 | 黄色字幕网| 麻豆久久 | 91精品视频免费看 | 国产午夜精品福利视频 | 51久久夜色精品国产麻豆 | 久久久18| 国产在线视频一区 | 国产一区二区在线观看视频 | 在线观看中文字幕dvd播放 | av成人动漫在线观看 | 亚洲干视频在线观看 | 伊人久久影视 | 98精品国产自产在线观看 | 91在线欧美| 一级片视频在线 | 国产日韩中文字幕在线 | 国产一区二区高清 | 久热免费在线观看 | 欧美伦理一区二区三区 | 亚洲日本va午夜在线电影 | 国产成年人av | 国产女人40精品一区毛片视频 | 天天天天色综合 | 黄色av电影免费观看 | 最新av网址大全 | 久草在线观看 | 激情综合色综合久久 | 久久精品视频在线免费观看 | 人人爽人人澡人人添人人人人 | 欧美孕妇视频 | 免费视频成人 | 亚洲高清视频在线观看免费 | 黄色在线免费观看网站 | 在线国产中文字幕 | 日韩午夜电影网 | 久草在线观看视频免费 | 成人免费看黄 | 国产精品久久久久久久久久久久午夜 | 久草视频精品 | 久久人人爽人人人人片 | 国产专区一| 久久久久久久久久久久电影 | 91色亚洲 | 91麻豆精品国产91久久久无需广告 | 麻豆免费在线视频 | 中文字幕在线视频一区二区三区 | 成人国产网站 | 成人小视频免费在线观看 | 一级片视频在线 | 91麻豆精品国产91久久久使用方法 | 99日精品 | 人人澡av | 国产电影黄色av | 久久99精品久久久久久三级 | 精品国产亚洲一区二区麻豆 | 色无五月 | 成年人黄色av| a级成人毛片 | 国产日韩欧美视频在线观看 | 99久久这里有精品 | www.香蕉视频 | 在线看一区二区 | 96看片| 99精品视频免费在线观看 | 最近中文字幕mv | 九九综合久久 | 国产99在线| 成年人网站免费观看 | 欧美黑人xxxx猛性大交 | 亚洲国产手机在线 | 免费在线观看av不卡 | 在线超碰av | 亚洲精品久久久久久久不卡四虎 | 成人一区二区在线观看 | 五月婷婷六月丁香 | 国产高清福利在线 | 黄色一级大片在线免费看国产一 | 久久免费精品国产 | 国产一级片一区二区三区 | 久久最新网址 | 高清免费av在线 | 菠萝菠萝蜜在线播放 | 99精品视频99 | 99re久久精品国产 | 国产色婷婷精品综合在线手机播放 | 五月婷在线 | 9在线观看免费高清完整版在线观看明 | 色婷婷国产精品一区在线观看 | 天天操天天操天天操天天操天天操 | 制服丝袜欧美 | 四虎在线观看 | 国产精品video爽爽爽爽 | 99国产精品久久久久老师 | 婷婷色九月| 久久er99热精品一区二区三区 | av动图 | 久久久久久久久久久久影院 | 天天干天天干天天干天天干天天干天天干 | 亚洲国产av精品毛片鲁大师 | 亚洲激情视频在线 | 久久国产欧美日韩精品 | 欧美成人精品欧美一级乱黄 | 日韩免费在线视频观看 | 久草在| 国产精品女人网站 | 一级黄色在线视频 | 日日夜夜狠狠 | 青青视频一区 | www.久久精品视频 | 成人一区二区三区在线 | 国产一级性生活视频 | 国内精品国产三级国产aⅴ久 | 亚洲精品在线看 | 精品人人人 | 成人性生交视频 | 欧美激情片在线观看 | 天天草天天插 | 成人一区二区三区中文字幕 | 天天干天天操av | 香蕉视频国产在线 | 狠狠狠狠狠狠天天爱 | 超碰97国产精品人人cao | 亚洲精品456在线播放第一页 | 99久久久久免费精品国产 | 亚洲精品乱码久久久久久9色 | 毛片网站在线观看 | 亚洲高清激情 | 国产一级电影免费观看 | 久久伊人国产精品 | 伊人久久一区 | 91精品视频一区二区三区 | 日日干激情五月 | 黄色av影院 | 精品在线二区 | 69视频在线播放 | 国产成人一级电影 | 日韩欧美一区二区在线观看 | 黄a在线看 | 激情视频免费在线观看 | 狠狠操综合网 | 久久丁香 | 国产精品男女 | 亚洲国产成人在线播放 | www五月 | 91精品久久久久久久久 | 91大神一区二区三区 | 福利视频精品 | 日韩高清不卡在线 | 色婷婷久久 | 福利视频一区二区 | 久久精品国产一区二区三区 | 一区二区三区精品在线视频 | 特级毛片在线 | 亚洲成a人片77777kkkk1在线观看 | 久插视频 | 亚洲精品天天 | 麻豆手机在线 | 欧美日韩午夜爽爽 | 久久不见久久见免费影院 | 四虎国产精品免费 | 麻豆国产露脸在线观看 | 91久久久国产精品 | 午夜精品一区二区三区可下载 | 在线日韩 | 婷婷婷国产在线视频 | 久久超碰网 | 亚洲精品国产精品乱码在线观看 | 欧美一区二区日韩一区二区 | 欧美日韩免费看 | 新av在线 | 美女在线观看网站 | 欧美午夜剧场 | 中文字幕在线观看一区二区三区 | 国产视频99| 色综合久久久久综合99 | 亚洲欧美成人在线 | 三级毛片视频 | 久久乐九色婷婷综合色狠狠182 | 亚洲精品国产精品国自产 | 伊人成人精品 | 日韩中文字幕免费在线观看 | 久久av黄色| 热久久视久久精品18亚洲精品 | 婷婷丁香激情 | 黄色一区二区在线观看 | a视频在线观看免费 | 日韩欧美亚洲 | 久久艹人人 | 亚洲午夜精品福利 | 婷婷四房综合激情五月 | 亚洲国产999| 亚洲在线日韩 | 美女免费网视频 | 色综合网 | 丁香六月婷婷开心婷婷网 | 99视频精品免费观看, | 久久久久亚洲精品国产 | 欧美动漫一区二区三区 | 91久久国产综合精品女同国语 | 亚洲欧洲中文日韩久久av乱码 | 成人在线黄色 | 顶级bbw搡bbbb搡bbbb| 中文在线www| 国产在线1区 | 欧美激情第八页 | 视频一区二区国产 | 五月天婷婷丁香花 | 亚洲精品99久久久久中文字幕 | 中文字幕电影高清在线观看 | 久久人人精品 | 狠狠操狠狠干天天操 | 久久人人精品 | 国产99久久精品 | 亚洲午夜精品一区 | 日韩av视屏在线观看 | 免费观看完整版无人区 | 中文字幕在线视频国产 | av免费在线网站 | 日韩一级片观看 | 成人h视频 | 国产精品综合久久久 | 91探花在线视频 | 91网址在线观看 | 97超碰在线久草超碰在线观看 | 日韩电影在线观看中文字幕 | 国产精品密入口果冻 | 2023亚洲精品国偷拍自产在线 | 国产精品免费成人 | 久草影视在线 | 国产成人一区二区三区电影 | 激情五月婷婷综合网 | 亚洲欧洲日韩 | wwwwww色| 97成人在线免费视频 | av中文字幕在线播放 | 国产精品美女久久久免费 | av免费在线免费观看 | 美女福利视频网 | 黄色大片日本 | 成人91在线 | 麻豆影视在线免费观看 | 免费视频a | 三级a视频| 欧美色综合久久 | 麻豆精品国产传媒 | 久久国产系列 | 久久精品一区二区三区国产主播 | 狠狠躁夜夜a产精品视频 | 日本三级全黄少妇三2023 | 国产大陆亚洲精品国产 | 欧美日韩在线播放一区 | 国产精品综合久久久久久 | 成人h在线观看 | 国产成人精品一区二区三区网站观看 | 人人爽人人香蕉 | 人人精品 | 久热免费在线 | 青青久视频| 精品国产视频在线 | 麻豆传媒视频在线 | 天天射天天射 | 国产成人精品一区二区三区福利 | 91在线看| 五月天网页 | 伊人五月综合 | 久久草| 国产91丝袜在线播放动漫 | 久久久久久国产一区二区三区 | 国产一级电影免费观看 | 亚洲一区免费在线 | 日产乱码一二三区别免费 | 亚洲国产精品成人女人久久 | 人人看看人人 | 欧美日韩一级久久久久久免费看 | 亚洲 成人 欧美 | 国产精品久久久久久久久久久免费看 | 日韩免费电影一区二区 | 国产91精品一区二区 | 欧美一区二区在线免费看 | 五月天色站 | 黄色片网站免费 | 欧美久久久 | 日本h视频在线观看 | 亚洲一区欧美激情 | 五月激情丁香图片 | 东方av免费在线观看 | 中文在线免费一区三区 | 午夜在线免费观看视频 | 国产亚洲视频在线观看 | 国产精品一区二区在线免费观看 | 成人毛片网 | 美女黄频 | 久久伊人综合 | 久久久精品网站 | 亚洲在线网址 | 亚洲精品黄色在线观看 | 波多野结衣在线视频一区 | 在线观看免费视频你懂的 | 看毛片网站 | 日本一区二区不卡高清 | 亚洲精品影院在线观看 | 精品亚洲欧美一区 | 国产91免费观看 | 天天爽人人爽夜夜爽 | 国产精品免费视频观看 | av成人动漫 | 狠狠网亚洲精品 | 天天色综合天天 | 免费国产黄线在线观看视频 | 色婷婷精品大在线视频 | 日韩有码在线观看视频 | 午夜av免费在线观看 | 久久er99热精品一区二区 | 成人国产网址 | 色在线最新 | 欧洲高潮三级做爰 | 五月开心色 | 91在线精品秘密一区二区 | 99精品国产99久久久久久97 | 日韩精品免费一区二区三区 | 免费看在线看www777 | 色综合天天色 | 97av视频在线 | 天天干夜夜 | 国产美女精品人人做人人爽 | 水蜜桃亚洲一二三四在线 | 日韩在线高清免费视频 | 免费在线观看成人av | 一区二区三区四区影院 | 欧美性超爽 | 日韩精品一区二区在线视频 | 欧美日韩高清免费 | 中日韩三级视频 | 国产视频18 | 在线观看日韩精品视频 | 成人在线视频论坛 | avhd高清在线谜片 | 国产在线观看你懂得 | 欧美一级免费在线 | 一级成人免费 | 国产精品久久久久久久久久久久午夜 | 91精品国产欧美一区二区成人 | 91麻豆文化传媒在线观看 | 欧美在线a视频 | 在线观看视频在线观看 | 成人av网站在线播放 | 久草线 | 欧美日韩中文字幕视频 | 一区二区av | 久久免费视频4 | 精品国模一区二区 | 99精品欧美一区二区蜜桃免费 | 日本三级在线观看中文字 | 久久一区二区三区四区 | 激情伊人五月天 | 黄网在线免费观看 | 精品网站999www | 久久96国产精品久久99软件 | 97国产精品视频 | 日韩在线无 | 干干操操| 中字幕视频在线永久在线观看免费 | 1000部18岁以下禁看视频 | 亚洲精品理论 | 黄色软件在线看 | 91桃色在线免费观看 | 免费观看黄 | 中文字幕在 | 99免费观看视频 | av电影在线观看完整版一区二区 | 96av视频 | 在线视频一区二区 | 国产精品毛片一区二区在线 | a特级毛片 | 丁香导航| 偷拍精偷拍精品欧洲亚洲网站 | 成年人国产在线观看 | 啪啪动态视频 | 亚洲精品综合一二三区在线观看 | 国产女人免费看a级丨片 | 国产精品午夜久久 | 国产色久 | 欧美久久久久久久久久 | 成人国产一区二区 | 黄污污网站| 精品久久久久久久久久国产 | zzijzzij日本成熟少妇 | 久热免费在线 | 在线视频一二区 | 日韩欧美69 | 久久久亚洲影院 | 中文字幕日本在线观看 | 亚洲免费视频在线观看 | 99精品国产成人一区二区 | 91丨九色丨首页 | 色视频网站在线观看一=区 a视频免费在线观看 | 久久久久久中文字幕 | 久久久久久久久久电影 | 欧美一区二区精美视频 | 久久久片| 亚洲精品日韩一区二区电影 | 欧美男男激情videos | 亚洲精品国产精品国自产观看 | 日韩v在线91成人自拍 | 成人免费看电影 | 麻花天美星空视频 | 日韩在线三区 | 日韩中文字 | 在线视频 你懂得 | 97在线超碰 | 亚洲 综合 精品 | 99色在线视频 | 亚洲我射av| 99视频99| 伊人色综合久久天天 | 午夜久久影视 | 国产精品九九久久久久久久 | 国产精品手机看片 | 天天玩天天干天天操 | 久久人人添人人爽添人人88v | 91视频麻豆视频 | 97国产大学生情侣白嫩酒店 | 天堂中文在线视频 | 91最新地址永久入口 | 国产精品手机播放 | 99精品视频在线观看视频 | 欧美日韩高清一区二区三区 | 久久久久免费网站 | 手机av网站 | 欧美日韩69 | 久久精品免视看 | 麻豆91精品视频 | 激情综合一区 | 91麻豆免费视频 | 一区二区三区高清在线 | 日韩字幕| 久久国产视屏 | 97色综合| 精品91在线 | 国产麻豆视频 | 亚洲一区久久久 | 久久久久综合 | 91视频观看免费 | 久久中文字幕导航 | 亚洲国产精品va在线 | 三级动图 | 天天色 天天 | 久久久精品久久 | 麻豆视频91| 中文国产在线观看 | 久草网在线观看 | 色欧美成人精品a∨在线观看 | 国产一性一爱一乱一交 | 中文字幕日韩在线播放 | 波多野结依在线观看 | 亚洲91在线| 国产午夜精品一区二区三区欧美 | 国产99久久久国产精品免费二区 | 国产精品久久亚洲 | 有码中文字幕在线观看 | 国产精品第 | 最新日韩在线 | 成人久久18免费网站 | 欧美亚洲另类在线视频 | 国产成人黄色片 | 成人国产精品免费观看 | 成年人视频在线免费 | 久久在线免费观看 | 日韩黄色在线观看 | 夜夜操天天干, | 制服丝袜欧美 | 日本特黄一级 | 99视频在线精品国自产拍免费观看 | av大全在线观看 | 91大神电影 | 97av视频在线 | 中文字幕在线视频国产 | 国产97碰免费视频 | 久久狠狠干 | 色婷婷97 | 久久综合精品国产一区二区三区 | av电影在线观看 | 国产精品k频道 | 日韩午夜精品 | 国产精品久久久久久久久大全 | 免费观看视频的网站 | 少妇bbb搡bbbb搡bbbb| 亚洲人成在线观看 | 色综合天天综合网国产成人网 | 日本最新一区二区三区 | 久久成年人网站 | 国产精品 日韩 | 久久99精品国产麻豆婷婷 | 久久综合影视 | 免费一区在线 | 亚洲成人精品久久久 | 国产在线精品一区二区 | 精品96久久久久久中文字幕无 | 日韩性xxxx| 一区二区三区高清在线观看 | 亚洲人成人在线 | 91av视屏 | 久久综合九色九九 | 亚洲伦理精品 | 国产精品免费久久久久久 | 日批视频国产 | 免费网址在线播放 | 欧美日韩国产一区二区三区在线观看 | 日本精品久久久久中文字幕 | 中文字幕国内精品 | 亚洲三级在线免费观看 | 狠狠久久伊人 | 国产精品中文 | 国产九九热 | 国产不卡在线看 | 久草在线在线视频 | 久久精品视频免费 | 国内精品一区二区 | 中文字幕人成一区 | 狠狠夜夜 | 国产一区二区三精品久久久无广告 | 超碰免费公开 | 天天综合网天天综合色 | 欧美有色 | 99精品在线| 国产高清小视频 | 91成人在线免费观看 | 最近日本中文字幕a | 五月婷婷综合在线 | 一区二区三区在线视频111 | 超级碰碰碰碰 | 五月天电影免费在线观看一区 | 亚洲成av人片在线观看www | 日韩一区二区久久 | 69视频在线 | 国产免费黄视频在线观看 | 97人人模人人爽人人喊中文字 | 亚洲热久久 | 麻豆系列在线观看 | 色窝资源 | 国产一区二区三区黄 | 国产又粗又猛又色 | 久久免费a | 亚洲一二三在线 | 久久国产精品视频观看 | 日韩精品在线看 | 亚洲视频一 | 亚洲性少妇性猛交wwww乱大交 | 国产精品高清免费在线观看 | 六月丁香六月婷婷 | 97超碰总站 | 欧美极品xxxx| 欧美极品xxxxx | 99精彩视频在线观看免费 | 欧美在线18 | 亚洲精品视频免费在线观看 | 国产很黄很色的视频 | 国产精品久久久久久高潮 | 夜夜夜影院 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 在线观看你懂的网站 | 国产成人三级在线观看 | 日韩午夜剧场 | 一区二区精品在线视频 | 91精品国产自产在线观看 | 麻豆系列在线观看 | 草在线| 尤物九九久久国产精品的分类 | 激情丁香月 | 久久免费视频这里只有精品 | 日韩精品在线观看视频 | 日韩精品在线看 | 精品一区二区影视 | 中文字幕 婷婷 | 国产精品日韩 | 成人免费在线观看av | 欧美日韩性视频在线 | 国产高清视频免费观看 | 免费观看9x视频网站在线观看 | 一区二区三区视频网站 | 激情综合国产 | 欧美先锋影音 | 日韩欧美在线高清 | 国产小视频在线观看免费 | 日本久久久久 | 国产精久久久 | 久艹在线播放 | 激情五月网站 | 日本久久久久久久久久 | 韩日成人av| 免费欧美精品 | 夜夜操天天 | 久久se视频| 高清不卡一区二区在线 | 国产九九九九九 | 成人国产精品久久久 | 99色在线观看视频 | 亚洲精品午夜视频 | 亚洲国产美女久久久久 | 美女网站视频免费都是黄 | 我要色综合天天 | 久久av中文字幕片 | 麻豆视频www | 久射网| 精品美女在线观看 | 69国产在线观看 | 毛片网在线播放 | 国产美女精品视频免费观看 | 日韩av不卡在线播放 | 香蕉在线视频播放网站 | 在线免费观看黄色大片 | 丁香六月在线观看 | 99热手机在线观看 | 久久成人18免费网站 | 亚洲精品国产精品国 | 亚洲成人资源网 | 成人 国产 在线 | 在线观看的a站 | 一级一片免费看 | 欧美在线视频一区二区三区 | 日本精品久久久久 | 日本成人中文字幕在线观看 | 青青草国产精品 | 久久无码av一区二区三区电影网 | 国产成人一区二区三区在线观看 | 色婷婷综合久色 | 婷婷在线不卡 | 五月天色站 | 久久精品亚洲精品国产欧美 | 五月婷影院 | 国产精品久久久久一区二区三区 | 色视频国产直接看 | 久久99久久99精品免费看小说 | 永久免费精品视频 | 最近中文字幕国语免费av | 高清日韩一区二区 | 韩日精品在线观看 | 久久观看最新视频 | 欧美成人免费在线 | 在线网站黄 | 不卡的av | avlulu久久精品 | 五月婷婷中文网 | 天堂av色婷婷一区二区三区 | 97超碰人人 | 狠狠操狠狠干天天操 | 成人在线观看网址 | 国产尤物视频在线 | 99精品久久久 | 777视频在线观看 | 福利视频网址 | 天天射成人 | 国产99精品在线观看 | 国内精品久久久久久久久久久 | 在线电影 一区 | 99久久精品无免国产免费 | 国产a国产a国产a | 国产精品私人影院 | 一级黄色电影网站 | 婷婷综合 | 久操视频在线观看 | 麻豆国产视频下载 | 久精品视频在线观看 | 久久久 激情 | 国产99一区 | 日韩精品视频在线观看网址 | 国产精品久久久免费 | 丁香综合av | 国产亚洲视频在线免费观看 | 18性欧美xxxⅹ性满足 | 2023av在线| 免费看一及片 | 日韩欧美视频免费在线观看 | 婷婷色综合色 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产色小视频 | 一级特黄aaa大片在线观看 | 91亚洲视频在线观看 | ,久久福利影视 | 亚洲五月 | 88av色| 国产伦理一区二区三区 | 免费av片在线 | 国产精品久久久久国产精品日日 | 97超碰人人澡 | 国产精品福利一区 | 国产精品激情在线观看 | 欧美 亚洲 另类 激情 另类 | 黄色免费大片 | 美女av免费 | 成人午夜片av在线看 | 精品在线观看一区二区 | 成人免费在线观看av | 久久久久久久久久久久久久免费看 | 韩国精品一区二区三区六区色诱 | 91精品国产乱码在线观看 | 国产最新91 | 在线免费观看麻豆 | 久久久久久福利 | 精品91视频| 狠狠躁日日躁狂躁夜夜躁av | 久久亚洲热 | 国产精品 日本 | 午夜精品一区二区三区四区 | 国产在线播放一区 | 色婷婷五| 亚洲成人中文在线 | 国产成人精品久久久久 | av资源免费看 | 色网站黄 | 国产精品久久久久影院日本 | 黄网站色视频免费观看 | www·22com天天操| 97伊人网| 97国产在线 | av官网在线 | 国产亚洲精品日韩在线tv黄 | 天天草天天干 | 91亚色视频在线观看 | 免费福利影院 | 欧美一级视频免费看 | 成人激情开心网 | 欧美午夜精品久久久久久浪潮 | 色综合久久中文字幕综合网 | 色综合久久悠悠 | 在线观看视频一区二区三区 | 国产精品av久久久久久无 | 日韩城人在线 | 亚洲天天干 | 99热99热| 91麻豆看国产在线紧急地址 | 欧美国产日韩一区二区三区 | 色婷婷综合久久久久中文字幕1 | 超碰免费在线公开 | 亚洲一级片在线观看 | 国产资源中文字幕 | 亚洲国产美女久久久久 | 国产精华国产精品 | 国产精品综合在线 | 欧美一区二视频在线免费观看 | 超碰人人干人人 | 日产av在线播放 | 超碰人人乐 | 欧美日一级片 | 少妇av网| 色综合天天视频在线观看 | 天天爱天天爽 | 国产又粗又猛又色又黄网站 | 四虎成人在线 | 国产一区二区手机在线观看 | 91久久久久久久 | 正在播放亚洲精品 | 婷婷伊人综合亚洲综合网 | 久草视频国产 | 亚洲日本中文字幕在线观看 | 国产一区在线免费观看 | 亚洲波多野结衣 | 国产精品毛片一区视频播不卡 | 在线观看黄色免费视频 | 免费成人av在线看 | 久久久久久久久久免费视频 | 一区二区三区四区五区在线视频 | 国内精品久久久久影院优 | 国内精品一区二区 | 国产69久久久欧美一级 | 日批视频国产 | 国产免费大片 | 91福利视频免费观看 | 日韩av电影免费在线观看 | 美女视频久久久 | 丁香五香天综合情 | 精品福利网站 | 日韩在线视频观看 | 99久国产 | 亚洲成人频道 | av三级在线免费观看 | 人人爽人人爽av | 深夜免费福利网站 | 日韩成人高清在线 | 国产视频一区二区在线观看 | 91成人小视频 | 波多野结衣视频一区二区 | 波多野结衣资源 | 99热精品免费观看 | 日日射天天射 | 亚洲在线视频免费观看 | 亚洲精品资源 | 高清av网 | 久久精品8| 国产免费不卡 | 成人av手机在线 | 91伊人影院 | 免费三级黄色片 | 黄色看片 | 午夜视频在线网站 | 99热精品免费观看 | 中文字幕视频一区二区 | 视色网站| 亚洲精品视频www | 激情综合亚洲精品 | 国产成人精品一区二区三区 | www.狠狠操 | av一区二区三区在线播放 | 中文字幕一区二区三区在线视频 | 日韩av男人的天堂 | 黄色免费视频在线观看 | 日韩一区二区三区不卡 | 亚洲午夜精品电影 | 久久午夜视频 | 成人国产电影在线观看 | 成人av动漫在线 | 欧洲一区二区三区精品 | 国产精品igao视频网网址 | 激情视频在线高清看 | av色一区 | 九九九国产 | 日韩激情免费视频 | 亚洲欧洲精品一区 | 亚洲精品www久久久久久 | 五月婷婷色丁香 | 国产精品久久久久永久免费观看 | 亚洲天天干 | 国内精品久久久久影院日本资源 | 日本特黄特色aaa大片免费 | 免费在线观看av电影 | 久久综合狠狠综合久久激情 | 久久久久久看片 | 日韩理论在线视频 | 亚洲午夜精品一区二区三区电影院 | 91av资源网 | 最近高清中文在线字幕在线观看 | 综合在线观看色 | 97精产国品一二三产区在线 | 中文字幕在线看片 | 久久99视频免费观看 | 国产精品av免费在线观看 | 日韩伦理片hd | 欧美一区二视频在线免费观看 | 人人爽人人澡人人添人人人人 | 午夜精品视频在线 | 国产精品都在这里 | 久久99久久久久久 | 在线观看国产一区二区 | 色综合天天狠狠 | 国产成人黄色网址 | 香蕉影院在线播放 | 精品超碰 | 一区二区视频在线播放 | 久久午夜影视 | 国产高清视频 | 99久久婷婷国产一区二区三区 | 国产成人一区二区精品非洲 | 丁香婷婷激情国产高清秒播 | 日韩精品一区二 | 亚洲欧洲中文日韩久久av乱码 | 欧美亚洲免费在线一区 | 久久综合久久久久88 | 国产精品久久久久久久久久 | 免费观看日韩 | 国产视频精品免费 | 在线观看av麻豆 | 91在线精品播放 | 亚洲精品免费播放 | 激情开心色 | 国产999精品久久久久久绿帽 | 岛国大片免费视频 | 国产一级二级三级视频 | 国产精品高清免费在线观看 | 国产精品自在欧美一区 | 999视频在线观看 | 久久九九视频 | 亚洲欧洲国产视频 | 波多野结衣在线观看一区二区三区 | 99精品电影| 国产美女永久免费 | 91完整版 | 色婷婷午夜 | 国产免费不卡av | 视频一区二区精品 | 中文字幕一区二区三区四区视频 | 成人动漫精品一区二区 | 免费人人干| 97看片网| 国内小视频 |