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

HBase數據遷移方案介紹

運維 數據庫運維
HBase數據遷移是很常見的操作,目前業界主要的遷移方式主要分為以下幾類:

 一、前言

HBase數據遷移是很常見的操作,目前業界主要的遷移方式主要分為以下幾類:

圖1.HBase數據遷移方案

從上面圖中可看出,目前的方案主要有四類,Hadoop層有一類,HBase層有三類。下面分別介紹一下。

二、Hadoop層數據遷移

2.1 方案介紹

Hadoop層的數據遷移主要用到DistCp(Distributed Copy), 官方描述是:DistCp(分布式拷貝)是用于大規模集群內部和集群之間拷貝的工具。它使用Map/Reduce實現文件分發,錯誤處理和恢復,以及報告生成。它把文件和目錄的列表作為map任務的輸入,每個任務會完成源列表中部分文件的拷貝。

我們知道MR程序適合用來處理大批量數據, 其拷貝本質過程是啟動一個MR作業,不過DisctCp只有map,沒有reducer。在拷貝時,由于要保證文件塊的有序性,轉換的最小粒度是一個文件,而不像其它MR作業一樣可以把文件拆分成多個塊啟動多個map并行處理。如果同時要拷貝多個文件,DisctCp會將文件分配給多個map,每個文件單獨一個map任務。我們可以在執行同步時指定-m參數來設定要跑的map數量,默認設置是20。如果是集群間的數據同步,還需要考慮帶寬問題,所以在跑任務時還需要設定 bandwitdh 參數,以防止一次同步過多的文件造成帶寬過高影響其它業務。同時,由于我們HBase集群一般是不會開MR調度的,所以這里還需要用到單獨的MR集群來作主備數據同步,即在跑任務時還需要指定mapreduce相關參數。

簡單的distcp參數形式如下: 

  1. hadoop distcp hdfs://src-hadoop-address:9000/table_name  hdfs://dst-hadoop-address:9000/table_name 

如果是獨立的MR集群來執行distcp,因為數據量很大,一般是按region目錄粒度來傳輸,同時傳輸到目標集群時,我們先把文件傳到臨時目錄,最后再目的集群上load表,我們用到的形式如下: 

  1. hadoop distcp \  
  2. -Dmapreduce.job.name=distcphbase \  
  3. -Dyarn.resourcemanager.webapp.address=mr-master-ip:8088  \  
  4. -Dyarn.resourcemanager.resource-tracker.address=mr-master-dns:8093   \  
  5. -Dyarn.resourcemanager.scheduler.address=mr-master-dns:8091   \  
  6. -Dyarn.resourcemanager.address=mr-master-dns:8090  \  
  7. -Dmapreduce.jobhistory.done-dir=/history/done/  \  
  8. -Dmapreduce.jobhistory.intermediate-done-dir=/history/log/ \  
  9. -Dfs.defaultFS=hdfs://hbase-fs/ \  
  10. -Dfs.default.name=hdfs://hbase-fs/ \  
  11. -bandwidth 20 \  
  12. -m 20 \  
  13. hdfs://src-hadoop-address:9000/region-hdfs-path \  
  14. hdfs://dst-hadoop-address:9000/tmp/region-hdfs-path 

在這個過程中,需要注意源端集群到目的端集群策略是通的,同時hadoop/hbase版本也要注意是否一致,如果版本不一致,最終load表時會報錯。

2.2 方案實施

遷移方法如下:

第一步,如果是遷移實時寫的表,最好是停止集群對表的寫入,遷移歷史表的話就不用了,此處舉例表名為test;

第二步, flush表, 打開HBase Shell客戶端,執行如下命令: 

  1. hbase> flush 'test' 

第三步,拷貝表文件到目的路徑,檢查源集群到目標集群策略、版本等,確認沒問題后,執行如上帶MR參數的命令

第四步, 檢查目標集群表是否存在,如果不存在需要創建與原集群相同的表結構

第五步,在目標集群上,Load表到線上,在官方Load是執行如下命令: 

  1. hbase org.jruby.Main add_table.rb /hbase/data/default/test 

對于我們來說,因我們先把文件同步到了臨時目錄,并不在原表目錄,所以我們采用的另一種形式的load,即以region的維度來Load數據到線上表,怎么做呢,這里用到的是org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles這個類,即以bulkload的形式來load數據。上面同步時我們將文件同步到了目的集群的/tmp/region-hdfs-path目錄,那么我們在Load時,可以用如下命令來Load region文件: 

  1. hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles -Dhbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily=1024 hdfs://dst-hadoop-address:9000/tmp/region-hdfs-path/region-name   table_name 

這里還用到一個參數hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily, 這個表示在bulkload過程中,每個region列族的HFile數的上限,這里我們是限定了1024,也可以指定更少,根據實際需求來定。

第六步,檢查表數據是否OK,看bulkload過程是否有報錯

在同步過程中,我們為加塊同步速度,還會開個多線程來并發同步文件,這個可根據實際數據量和文件數來決定是否需要使用并發同步。

三、HBase層數據遷移

3.1 copyTable方式

copyTable也是屬于HBase數據遷移的工具之一,以表級別進行數據遷移。copyTable的本質也是利用MapReduce進行同步的,與DistCp不同的時,它是利用MR去scan 原表的數據,然后把scan出來的數據寫入到目標集群的表。這種方式也有很多局限,如一個表數據量達到T級,同時又在讀寫的情況下,全量scan表無疑會對集群性能造成影響。

來看下copyTable的一些使用參數: 

  1. Usage: CopyTable [general options] [--starttime=X] [--endtime=Y] [--new.name=NEW] [--peer.adr=ADR<tablename>  
  2. Options:  
  3.  rs.class     hbase.regionserver.class of the peer cluster  
  4.               specify if different from current cluster  
  5.  rs.impl      hbase.regionserver.impl of the peer cluster  
  6.  startrow     the start row  
  7.  stoprow      the stop row  
  8.  starttime    beginning of the time range (unixtime in millis)  
  9.               without endtime means from starttime to forever  
  10.  endtime      end of the time range.  Ignored if no starttime specified.  
  11.  versions     number of cell versions to copy  
  12.  new.name     new table's name  
  13.  peer.adr     Address of the peer cluster given in the format  
  14.               hbase.zookeeer.quorum:hbase.zookeeper.client.port:zookeeper.znode.parent  
  15.  families     comma-separated list of families to copy  
  16.               To copy from cf1 to cf2, give sourceCfName:destCfName.   
  17.               To keep the same name, just give "cfName"  
  18.  all.cells    also copy delete markers and deleted cells  
  19. Args:  
  20.  tablename    Name of the table to copy  
  21. Examples:  
  22.  To copy 'TestTable' to a cluster that uses replication for a 1 hour window:  
  23.  $ bin/hbase org.apache.hadoop.hbase.mapreduce.CopyTable --starttime=1265875194289 --endtime=1265878794289 --peer.adr=server1,server2,server3:2181:/hbase --families=myOldCf:myNewCf,cf2,cf3 TestTable  
  24.  For performance consider the following general options:  
  25. -Dhbase.client.scanner.caching=100  
  26. -Dmapred.map.tasks.speculative.execution=false 

從上面參數,可以看出,copyTable支持設定需要復制的表的時間范圍,cell的版本,也可以指定列簇,設定從集群的地址,起始/結束行鍵等。參數還是很靈活的。

copyTable支持如下幾個場景:

1、表深度拷貝:相當于一個快照,不過這個快照是包含原表實際數據的,0.94.x版本之前是不支持snapshot快照命令的,所以用copyTable相當于可以實現對原表的拷貝, 使用方式如下: 

  1. create 'table_snapshot',{NAME=>"i"}  
  2. hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=tableCopy table_snapshot 

2、集群間拷貝:在集群之間以表維度同步一個表數據,使用方式如下: 

  1. create 'table_test',{NAME=>"i"}   #目的集群上先創建一個與原表結構相同的表  
  2. hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zk-addr1,zk-addr2,zk-addr3:2181:/hbase table_test  

3、增量備份:增量備份表數據,參數中支持timeRange,指定要備份的時間范圍,使用方式如下: 

  1. hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --starttime=start_timestamp --endtime=end_timestamp 

4、部分表備份:只備份其中某幾個列族數據,比如一個表有很多列族,但我只想備份其中幾個列族數據,CopyTable提供了families參數,同時還提供了copy列族到新列族形式,使用方式如下: 

  1. hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1,srcCf2 #copy cf1,cf2兩個列族,不改變列族名字  
  2. hbase  org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1:dstCf1, srcCf2:dstCf2 #copy srcCf1到目標dstCf1新列族 

總的來說,CopyTable支持的范圍還是很多的,但因其涉及的是直接HBase層數據的拷貝,所以效率上會很低,同樣需要在使用過程中限定掃描原表的速度和傳輸的帶寬,這個工具實際上使用比較少,因為很難控制。

3.2 Export/Import方式

此方式與CopyTable類似,主要是將HBase表數據轉換成Sequence File并dump到HDFS,也涉及Scan表數據,與CopyTable相比,還多支持不同版本數據的拷貝,同時它拷貝時不是將HBase數據直接Put到目標集群表,而是先轉換成文件,把文件同步到目標集群后再通過Import到線上表。主要有兩個階段:

Export階段: 將原集群表數據Scan并轉換成Sequence File到Hdfs上,因Export也是依賴于MR的,如果用到獨立的MR集群的話,只要保證在MR集群上關于HBase的配置和原集群一樣且能和原集群策略打通(master&regionserver策略),就可直接用Export命令,如果沒有獨立MR集群,則只能在HBase集群上開MR,若需要同步多個版本數據,可以指定versions參數,否則默認同步最新版本的數據,還可以指定數據起始結束時間,使用如下: 

  1. #  output_hdfs_path可以直接是目標集群的hdfs路徑,也可以是原集群的HDFS路徑,如果需要指定版本號,起始結束時間  
  2. hbase org.apache.hadoop.hbase.mapreduce.Export <tableName> <ouput_hdfs_path> <versions> <starttime> <endtime>  

Import階段: 將原集群Export出的SequenceFile導到目標集群對應表,使用如下: 

  1. #如果原數據是存在原集群HDFS,此處input_hdfs_path可以是原集群的HDFS路徑,如果原數據存在目標集群HDFS,則為目標集群的HDFS路徑  
  2. hbase org.apache.hadoop.hbase.mapreduce.Import <tableName> <input_hdfs_path>  

3.3 Snapshot方式

3.3.1 snapshot介紹

此方式與上面幾中方式有所區別,也是目前用得比較多的方案,snapshot字面意思即快照, 傳統關系型數據庫也有快照的概念,HBase中關于快照的概念定義如下:

快照就是一份元信息的合集,允許管理員恢復到表的先前狀態,快照不是表的復制而是一個文件名稱列表,因而不會復制數據

因不拷貝實際的數據,所以整個過程是比較快的,相當于對表當前元數據狀態作一個克隆,snapshot的流程主要有三個步驟:

圖2.數據遷移圖

加鎖: 加鎖對象是regionserver的memstore,目的是禁止在創建snapshot過程中對數據進行insert,update,delete操作

刷盤:刷盤是針對當前還在memstore中的數據刷到HDFS上,保證快照數據相對完整,此步也不是強制的,如果不刷會,快照中數據有不一致風險

創建指針: snapshot過程不拷貝數據,但會創建對HDFS文件的指針,snapshot中存儲的就是這些指標元數據

3.3.2 snapshot內部原理

snapshot實際內部是怎么做的呢,上面說到,snapshot只是對元數據信息克隆,不拷貝實際數據文件,我們以表test為例,這個表有三個region, 每個region分別有兩個HFile,創建snapshot過程如下:

圖3.snapshot創建內部原理

創建的snapshot放在目錄/hbase/.hbase-snapshot/下, 元數據信息放在/hbase/.hbase-snapshot/data.manifest中, 如上圖所示,snapshot中也分別包含對原表region HFile的引用,元數據信息具體包括哪哪些呢: 

  1. 1. snapshot元數據信息  
  2. 2. 表的元數據信息&schema,即原表的.tableinfo文件  
  3. 3. 對原表Hfile的引用信息 

由于我們表的數據在實時變化,涉及region的Hfile合并刪除等操作,對于snapshot而言,這部分數據HBase會怎么處理呢,實際上,當發現spit/compact等操作時,HBase會將原表發生變化的HFile拷貝到/hbase/.archive目錄,如上圖中如果Region3的F31&F32發生變化,則F31和F32會被同步到.archive目錄,這樣發生修改的文件數據不至于失效,如下圖所示:

圖4.snapshot文件遷移

快照中還有一個命令就是clone_snapshot, 這個命令也很用,我們可以用它來重命名表,恢復表數據等。具體用法如下: 

  1. hbase> clone_snapshot 'snapshot_src_table' , 'new_table_name' 

這個命令也是不涉及實際數據文件的拷貝,所以執行起來很快,那拷貝的是什么呢,與上面提到的引用文件不同,它所生成的是linkfile,這個文件不包含任何內容,和上面引用文件一樣的是,在發生compact等操作時,會將原文件copy到/hbase/.archive目錄。

比如我們有一個表test, 有一個region原表信息如下: 

  1. hbaseuser:~> hadoop fs -ls /hbase/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/*  
  2. Found 1 items  
  3. -rw-r--r--   1 hbaseuser supergroup         37 2017-12-01 11:44 /hbase/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/.regioninfo  
  4. Found 1 items  
  5. -rw-r--r--   1 hbaseuser supergroup        983 2017-12-01 12:13 /hbase/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i/55c5de40f58f4d07aed767c5d250191 

在創建一個snapshot之后:snapshot 'test', 'snapshot_test',在/hbase/.hbase-snapshot目錄信息如下: 

  1. hbaseuser~> hadoop fs -ls /hbase/.hbase-snapshot/snapshot_test  
  2. Found 4 items  
  3. -rw-r--r--   1 hbaseuser supergroup         32 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.snapshotinfo  
  4. drwxr-xr-x   - hbaseuser supergroup          0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.tabledesc  
  5. drwxr-xr-x   - hbaseuser supergroup          0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/.tmp  
  6. drwxr-xr-x   - hbaseuser supergroup          0 2017-12-01 12:13 /hbase/.hbase-snapshot/snapshot_test/d8340c61f5d77345b7fa55e0dfa9b492 

在clone_snapshot之后:clone_snapshot 'snapshot_test','new_test',在/hbase/archive/data/default目錄,有對原表的link目錄,目錄名只是在原HFile的文件名基礎上加了個links-前綴,這樣我們可以通過這個來定位到原表的HFile,如下所示: 

  1. hbaseuser:~> hadoop fs -ls /hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i  
  2. Found 1 items  
  3. drwxr-xr-x   - hbaseuser supergroup          0 2017-12-01 12:34 /hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i/.links-55c5de40f58f4d07 

此時,再執行合并操作:major_compact 'new_test',會發現/hbase/archive/data/default/目錄已經變成了實際表的數據文件,上面圖中/hbase/archive/data/default/test/d8340c61f5d77345b7fa55e0dfa9b492/i/.links-55c5de40f58f4d07這個已經不在了,取而代之的是如下所示文件: 

  1. hbaseuser:~> hadoop fs -ls /hbase/archive/data/default/new_test/7e8636a768cd0c6141a3bb45b4098910/i  
  2. Found 1 items  
  3. -rw-r--r--   1 hbaseuser supergroup          0 2017-12-01 12:48 /hbase/archive/data/default/new_test/7e8636a768cd0c6141a3bb45b4098910/i/test=d8340c61f5d77345b7fa55e0dfa9b492-55c5de40f58f4d07aed767c5d250191c 

 在實際的/hbase/data/default/new_test目錄也是實際的原表的數據文件,這樣完成了表數據的遷移。

3.3.3 snapshot數據遷移

snapshot的應用場景和上面CopyTable描述差不多,我們這里主要考慮的是數據遷移部分。數據遷移主要有以下幾個步驟:

A.創建快照:在原集群上,用snapshot命令創建快照,命令如下: 

  1. hbase> snapshot  'src_table', 'snapshot_src_table'  
  2. #查看創建的快照,可用list_snapshots命令  
  3. hbase> list_snapshots   
  4. #如果快照創建有問題,可以先刪除,用delete_snapshot命令  
  5. hbase >delete_snapshot 'snapshot_src_table' 

創建完快照后在/hbase根目錄會產生一個目錄: 

  1. /hbase/.hbase-snapshot/snapshot_src_table  
  2. #子目錄下有如下幾個文件  
  3. /hbase/.hbase-snapshot/snapshot_src_table/.snapshotinfo    
  4. /hbase/.hbase-snapshot/snapshot_src_table/data.manifest 

B.數據遷移: 在上面創建好快照后,使用ExportSnapshot命令進行數據遷移,ExportSnapshot也是HDFS層的操作,本質還是利用MR進行遷移,這個過程主要涉及IO操作并消耗網絡帶寬,在遷移時要指定下map數和帶寬,不然容易造成機房其它業務問題,如果是單獨的MR集群,可以在MR集群上使用如下命令: 

  1. hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \  
  2. -snapshot snapshot_src_table \   
  3. -copy-from hdfs://src-hbase-root-dir/hbase \  
  4. -copy-to hdfs://dst-hbase-root-dir/hbase \  
  5. -mappers 20 \  
  6. -bandwidth 20 

上面這些流程網上很多資料都有提到,對于我們業務來說,還有一種場景是要同步的表是正在實時寫的,雖然用上面的也可以解決,但考慮到我們表數據規模很大,幾十個T級別,同時又有實時業務在查的情況下,直接在原表上就算只是拷貝HFile,也會影響原集群機器性能,由于我們機器性能IO/內存方面本身就比較差,很容易導致機器異常,所以我們采用的其它一種方案,流程圖如下:

圖5.新的snapshot遷移方案

為什么要采用這種方案呢,主要考慮的是直接對原表snapshot進行Export會影響集群性能,所以采用折中的方案,即先把老表clone成一個新表,再對新表進行遷移,這樣可以避免直接對原表操作。

四、總結

上文把HBase數據遷移過程中常用的一些方法作了一個大概介紹,總結起來就四點:

DistCp: 文件層的數據同步,也是我們常用的

CopyTable: 這個涉及對原表數據Scan,然后直接Put到目標表,效率較低

Export/Import: 類似CopyTable, Scan出數據放到文件,再把文件傳輸到目標集群作Import

Snapshot: 比較常用 , 應用靈活,采用快照技術,效率比較高

具體應用時,要結合自身表的特性,考慮數據規模、數據讀寫方式、實時數據&離線數據等方面,再選擇使用哪種。 

責任編輯:龐桂玉 來源: 數據庫開發
相關推薦

2018-10-29 13:07:15

HBase存儲遷移

2023-11-14 08:44:55

數倍數據

2014-05-21 13:26:28

公有云存儲云計算

2019-09-16 12:55:27

HBaseKafka數據

2010-03-18 09:28:14

Oracle數據庫遷移

2012-11-19 11:03:40

IBMdw

2012-11-19 11:15:38

IBMdw

2018-01-08 08:50:05

Linux內核系統程序

2011-03-31 14:33:57

SQL Server最小宕機遷移

2022-03-22 10:24:48

Linux開源Elasticsea

2011-04-18 10:00:32

SQL Server數據庫遷移

2015-01-26 14:41:30

數據中心遷移

2018-06-19 09:54:22

MySQLHBase存儲

2022-03-09 21:55:30

HBase數據入倉

2015-07-16 14:33:36

TB級mysqlxtrabackup備份遷移

2012-03-19 16:34:19

數據庫遷移

2010-08-02 14:08:03

ADSL分流

2010-04-27 17:38:43

Oracle數據文件

2025-06-11 08:05:00

Go數據庫遷移開發

2010-08-17 13:00:19

DB2數據遷移
點贊
收藏

51CTO技術棧公眾號

奇米精品一区二区三区四区| 福利精品在线| 337p粉嫩大胆色噜噜噜噜亚洲| 91成人免费观看网站| 久久国产柳州莫菁门| 成人在线视频国产| 五月激情六月综合| 日韩精品一区二区三区四区五区| 国产精品久久久久久久成人午夜| 亚洲东热激情| 在线日韩日本国产亚洲| 亚洲综合中文网| 欧美黑人疯狂性受xxxxx野外| 国产精品第13页| 国产一区高清视频| 91久久精品无码一区二区| 好看的av在线不卡观看| 一区二区三区亚洲| 在线视频 日韩| 999久久久国产999久久久| 欧美视频中文字幕在线| 中文字幕色呦呦| 国产视频网址在线| 成人动漫在线一区| 91最新国产视频| 亚洲综合成人av| 日韩午夜免费| 欧美国产在线电影| 久久精品亚洲a| 国产欧美一区二区精品久久久| 日韩亚洲欧美一区| 一区二区三区 欧美| 中文字幕在线高清| 亚洲一区在线看| 一本一道久久a久久精品综合 | 色欲一区二区三区精品a片| 日韩三区视频| 337p日本欧洲亚洲大胆精品| 亚洲一二区在线观看| 成人午夜亚洲| 在线观看日韩高清av| 日韩精品―中文字幕| 丰满诱人av在线播放| 亚洲精品免费视频| 日本成人性视频| 日本成人在线播放| 国产精品久久久久久亚洲毛片| 免费精品视频一区二区三区| 性感美女视频一二三| 成人免费视频播放| 国产精品v欧美精品v日韩精品| 国产99对白在线播放| 久久99在线观看| 国产日韩欧美中文| 在线观看国产精品入口男同| 日韩av网站免费在线| 国产成人在线一区二区| 一级黄色av片| 久久激情视频| 国产精品久在线观看| 成人免费一区二区三区| 青娱乐精品视频在线| 国产精品老牛影院在线观看| 一本一道人人妻人人妻αv| 欧美a一区二区| 国产欧美日韩综合精品| 国产一区二区三区在线观看| 国产呦萝稀缺另类资源| 亚洲最大福利视频网站| 国内老熟妇对白xxxxhd| 丁香婷婷综合网| 久久国产精品99久久久久久丝袜 | 国产91丝袜在线播放0| 国产精品手机视频| 性感美女一级片| 国产亚洲一区二区三区在线观看 | 色老汉一区二区三区| 国产超碰在线播放| 日韩欧美激情电影| 亚洲精品成a人在线观看| 中文字幕网站在线观看| 欧美激情成人| 韩国美女主播一区| 亚洲欧美日韩激情| 国产真实精品久久二三区| 翡翠波斯猫1977年美国| 蜜桃视频在线观看网站| 国产精品久久综合| 国产美女在线一区| 日韩精品影片| 日韩欧美国产系列| 国产熟妇搡bbbb搡bbbb| 婷婷综合社区| 91精品国产色综合久久不卡98| aaa在线视频| 国产精品一区不卡| 欧美日韩一区二区三区在线观看免| 午夜在线视频| 亚洲18女电影在线观看| 色综合色综合色综合色综合| 91麻豆精品激情在线观看最新 | 国产精品99精品| 久久国产日韩| 风间由美久久久| 91短视频版在线观看www免费| 亚洲无人区一区| 激情综合网俺也去| av在线亚洲色图| www.日韩免费| 少妇高潮av久久久久久| 国产成a人亚洲精品| 日韩电影大全在线观看| aaa在线播放视频| 91精品国产色综合久久ai换脸| 99久久久久久久久久| 欧美日韩精选| 国产日韩精品入口| 极品白浆推特女神在线观看 | 久久视频免费在线播放| 香蕉影院在线观看| 国产91精品在线观看| 亚洲精品在线视频观看| 色在线中文字幕| 精品三级在线观看| 一级片一级片一级片| 久久久精品午夜少妇| 国产精品国产三级欧美二区| 国产精品久久麻豆| 在线观看一区日韩| 亚洲av无码国产精品久久| 欧美午夜在线视频| 91在线看www| 在线观看a视频| 在线免费观看成人短视频| www国产视频| 欧美婷婷在线| 99porn视频在线| 男人资源在线播放| 欧美系列日韩一区| 手机免费看av| 日韩主播视频在线| 蜜桃精品久久久久久久免费影院| 久草免费在线色站| 欧美不卡一区二区三区四区| 丝袜 亚洲 另类 欧美 重口| 老司机免费视频一区二区三区| 日本精品国语自产拍在线观看| 美女的胸无遮挡在线观看 | 成人精品一区二区三区电影黑人| 国产资源在线看| 91国在线观看| 国产又大又粗又爽的毛片| 日日夜夜精品视频免费| 日韩精品av一区二区三区| 欧美freesex| 亚洲最新av在线网站| 中文字幕久久熟女蜜桃| 国产精品美女久久久久久| 中文字幕久久av| 一级毛片免费高清中文字幕久久网| 成人做爰www免费看视频网站| 国产在线高清理伦片a| 欧美一区二区三区啪啪| 激情综合网五月天| 91在线免费播放| 国产无套粉嫩白浆内谢的出处| 欧州一区二区| 亚洲一区二区三区xxx视频| 免费看电影在线| 亚洲老头同性xxxxx| 男人天堂视频在线| 成人欧美一区二区三区白人| xxxx视频在线观看| 国产日韩一区二区三区在线| 日本高清不卡三区| 久久在线观看| 欧美在线视频一区| 最新97超碰在线| 日韩三级精品电影久久久| 粉嫩aⅴ一区二区三区| 国产网站一区二区三区| 亚洲精品www.| 99精品国产在热久久| 日韩精品久久一区二区三区| 国产精品白丝久久av网站| 国内精品小视频在线观看| 国产视频第一页在线观看| 91精品国产入口| 国产 日韩 欧美 在线| 中文在线资源观看网站视频免费不卡| 樱花草www在线| 国产精品一级| 久久99国产精品一区| 欧美成人基地| 成人激情春色网| 色戒汤唯在线观看| 久久激情视频久久| 你懂的视频在线播放| 日韩一区二区免费电影| 无码人妻精品一区二区蜜桃色欲| 亚洲男同1069视频| 国产熟妇搡bbbb搡bbbb| 成人午夜伦理影院| 一道本视频在线观看| 欧美色123| 亚洲丰满在线| 日韩精品福利一区二区三区| 亚洲xxxxx性| 二吊插入一穴一区二区| 久久久噜噜噜久久中文字免| 日本精品在线| 亚洲全黄一级网站| 日韩有码第一页| 欧美一区二区三区色| 久久国产香蕉视频| 欧美视频在线观看免费| 国产乡下妇女做爰视频| 亚洲视频在线观看一区| 在线观看免费黄色网址| 91色porny在线视频| 无码人妻aⅴ一区二区三区玉蒲团| 日本不卡在线视频| 久章草在线视频| 尤物在线精品| 国产黄色激情视频| 久久久久国产| 一区二区不卡在线观看| 成人羞羞网站| 你懂的视频在线一区二区| 国产精品2023| 国产91色在线|亚洲| 中文字幕一区二区三区日韩精品| 国产女同一区二区| 日韩中文在线播放| 国产成人精品综合| 波多野结衣亚洲一二三| 97av视频在线| 麻豆视频在线观看免费网站黄| 国语对白做受69| 成年男女免费视频网站不卡| 欧美精品999| 国产探花视频在线观看| 欧美国产日韩一区二区| 好吊日av在线| 欧美国产日韩免费| 成人在线黄色电影| 91国语精品自产拍在线观看性色| 第一av在线| 性欧美视频videos6一9| 国产精品蜜芽在线观看| 国内精品小视频| 一区二区三区短视频| 欧美与欧洲交xxxx免费观看 | 国产精品亚洲片夜色在线| 成人在线观看免费播放| 国产精品视频yy9099| 亚洲伊人伊成久久人综合网| 成人精品在线观看| 伊人www22综合色| 国产一区再线| 国产成人1区| 一区二区三区国| 亚洲欧美亚洲| 国产极品在线视频| 日韩电影一二三区| 天天久久综合网| 成人性生交大合| 亚洲成人黄色av| 中文字幕一区二区三| 青青操视频在线播放| 五月天亚洲婷婷| 青娱乐在线免费视频| 欧美精品电影在线播放| 亚洲精品成av人片天堂无码| 亚洲国产欧美一区二区三区同亚洲| 青青草在线免费视频| 色哟哟入口国产精品| 日韩特级毛片| 人体精品一二三区| 国内精品视频| 久久国产精品99久久久久久丝袜| 国产亚洲一区| 穿情趣内衣被c到高潮视频| 亚洲一区国产一区| 小明看看成人免费视频| 成人av电影在线观看| 超碰人人干人人| 亚洲一区二区欧美激情| 波多野结衣视频免费观看| 欧美一区二区三区在| 天天摸天天碰天天爽天天弄| 日韩在线观看视频免费| 成人性生交大片免费看网站| 国产精品久久久久久久久影视| 日韩视频一二区| 日韩精品极品视频在线观看免费| 欧美精品aa| 在线观看av日韩| 成人激情黄色小说| 色婷婷粉嫩av| 黑丝美女久久久| 国产高潮流白浆喷水视频| 亚洲欧美制服综合另类| 亚洲91av| 国产视频观看一区| 国产一区2区| 成人黄色av片| 国产成人h网站| 登山的目的在线| 91成人看片片| 天堂av网在线| 久久全球大尺度高清视频| 欧美网站免费| 欧美污视频久久久| 精品动漫3d一区二区三区免费| 一个色综合久久| 国产欧美日韩精品a在线观看| 日本午夜小视频| 日韩欧美二区三区| 乱人伦中文视频在线| 国产精品久久久久999| 全球av集中精品导航福利| 国产天堂视频在线观看| 国产在线播放一区| 乱老熟女一区二区三区| 在线亚洲高清视频| 欧美xxx.com| 91成人性视频| 玖玖玖免费嫩草在线影院一区| wwwjizzjizzcom| 国产一区二区三区日韩 | 香蕉视频官网在线观看日本一区二区| 久久精品99国产| 91视频精品在这里| 天堂а√在线中文在线新版| 亚洲国产小视频在线观看| 国内老司机av在线| 不卡视频一区二区| 国产精品jizz在线观看美国| 久久久久久久高清| 综合分类小说区另类春色亚洲小说欧美| 久久精品国产亚洲av麻豆蜜芽| 亚洲欧洲午夜一线一品| 激情开心成人网| 日本一区二区三区四区在线观看| 久久久久久久高潮| 精品国产无码在线观看| 91精品91久久久中77777| porn视频在线观看| 国产热re99久久6国产精品| 欧美激情偷拍自拍| 91香蕉视频免费看| 亚洲自拍偷拍麻豆| 香蕉视频黄在线观看| 日本高清视频精品| 欧洲激情综合| 手机在线国产视频| 亚洲一区二区三区四区在线免费观看 | 久久精品视频6| 亚洲黄色www| 日韩不卡在线| 警花观音坐莲激情销魂小说| 国产成人综合亚洲网站| 日韩精品久久久久久久| 亚洲欧美国产一区二区三区| 欧美精选视频一区二区| 欧美少妇一级片| 成人av一区二区三区| 亚洲AV无码成人精品区东京热| 中文字幕免费精品一区高清| 亚洲欧美一级| 岛国大片在线播放| 国产午夜亚洲精品理论片色戒| 又污又黄的网站| 欧美另类精品xxxx孕妇| 免费av手机在线观看| 国产乱人伦偷精品视频不卡| 九九热视频精品| 亚洲美女喷白浆| 亚洲欧美在线综合| 免费看又黄又无码的网站| 亚洲国产精品v| 国产高潮在线观看| 青青草精品毛片| 在线成人超碰| 男女黄床上色视频| 欧美一区二区视频网站| 亚洲精华液一区二区三区| 亚洲免费精品视频| 成人永久aaa| 中文字幕一区二区三区免费看| 久久99精品视频一区97| 深爱激情综合| 精品国产乱码久久久久夜深人妻| 色综合天天综合网国产成人综合天| 乱人伦中文视频在线| 欧美三日本三级少妇三99| 大尺度一区二区| 亚洲视频一区在线播放| 欧美一区二区三区免费视|