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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HBase Rowkey的散列与预分区设计

發布時間:2024/8/1 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase Rowkey的散列与预分区设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題導讀:
1.如何防止熱點?
2.如何預分區?
擴展:
為什么會產生熱點存儲?

HBase中,表會被劃分為1…n個Region,被托管在RegionServer中。Region二個重要的屬性:StartKey與EndKey表示這個Region維護的rowKey范圍,當我們要讀/寫數據時,如果rowKey落在某個start-end key范圍內,那么就會定位到目標region并且讀/寫到相關的數據。簡單地說,有那么一點點類似人群劃分,1-15歲為小朋友,16-39歲為年輕人,40-64為中年人,65歲以上為老年人。(這些數值都是拍腦袋出來的,只是舉例,非真實),然后某人找隊伍,然后根據年齡,處于哪個范圍,就找到它所屬的隊伍。 : ( 有點廢話了。。。。
然后,默認地,當我們只是通過HBaseAdmin指定TableDescriptor來創建一張表時,只有一個region,正處于混沌時期,start-end key無邊界,可謂海納百川。啥樣的rowKey都可以接受,都往這個region里裝,然而,當數據越來越多,region的size越來越大時,大到一定的閥值,hbase認為再往這個region里塞數據已經不合適了,就會找到一個midKey將region一分為二,成為2個region,這個過程稱為分裂(region-split).而midKey則為這二個region的臨界,左為N無下界,右為M無上界。< midKey則為陰被塞到N區,> midKey則會被塞到M區。

如何找到midKey?涉及的內容比較多,暫且不去討論,最簡單的可以認為是region的總行數 / 2的那一行數據的rowKey.雖然實際上比它會稍復雜點。
如果我們就這樣默認地,建表,表里不斷地Put數據,更嚴重的是我們的rowkey還是順序增大的,是比較可怕的。存在的缺點比較明顯。
首先是熱點寫,我們總是會往最大的start-key所在的region寫東西,因為我們的rowkey總是會比之前的大,并且hbase的是按升序方式排序的。所以寫操作總是被定位到無上界的那個region中。
其次,由于寫熱點,我們總是往最大start-key的region寫記錄,之前分裂出來的region不會再被寫數據,有點被打進冷宮的趕腳,它們都處于半滿狀態,這樣的分布也是不利的。
如果在寫比較頻率的場景下,數據增長快,split的次數也會增多,由于split是比較耗時耗資源的,所以我們并不希望這種事情經常發生。
看到這些缺點,我們知道,在集群的環境中,為了得到更好的并行性,我們希望有好的load blance,讓每個節點提供的請求處理都是均等的。我們也希望,region不要經常split,因為split會使server有一段時間的停頓,如何能做到呢?
隨機散列與預分區。二者結合起來,是比較完美的,預分區一開始就預建好了一部分region,這些region都維護著自已的start-end keys,再配合上隨機散列,寫數據能均等地命中這些預建的region,就能解決上面的那些缺點,大大地提高了性能。

提供2種思路: hash 與 partition.
hash就是rowkey前面由一串隨機字符串組成,隨機字符串生成方式可以由SHA或者MD5等方式生成,只要region所管理的start-end keys范圍比較隨機,那么就可以解決寫熱點問題。

long currentId = 1L; byte [] rowkey = Bytes.add(MD5Hash.getMD5AsHex(Bytes.toBytes(currentId)).substring(0, 8).getBytes(),Bytes.toBytes(currentId));

假設rowKey原本是自增長的long型,可以將rowkey轉為hash再轉為bytes,加上本身id 轉為bytes,組成rowkey,這樣就生成隨便的rowkey。那么對于這種方式的rowkey設計,如何去進行預分區呢?
1.取樣,先隨機生成一定數量的rowkey,將取樣數據按升序排序放到一個集合里
2.根據預分區的region個數,對整個集合平均分割,即是相關的splitKeys.
3.HBaseAdmin.createTable(HTableDescriptor tableDescriptor,byte[][] splitkeys)可以指定預分區的splitKey,即是指定region間的rowkey臨界值.

1.創建split計算器,用于從抽樣數據中生成一個比較合適的splitKeys

public class HashChoreWoker implements SplitKeysCalculator{//隨機取機數目private int baseRecord;//rowkey生成器private RowKeyGenerator rkGen;//取樣時,由取樣數目及region數相除所得的數量.private int splitKeysBase;//splitkeys個數private int splitKeysNumber;//由抽樣計算出來的splitkeys結果private byte[][] splitKeys;public HashChoreWoker(int baseRecord, int prepareRegions) {this.baseRecord = baseRecord;//實例化rowkey生成器rkGen = new HashRowKeyGenerator();splitKeysNumber = prepareRegions - 1;splitKeysBase = baseRecord / prepareRegions;}public byte[][] calcSplitKeys() {splitKeys = new byte[splitKeysNumber][];//使用treeset保存抽樣數據,已排序過TreeSet<byte[]> rows = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR);for (int i = 0; i < baseRecord; i++) {rows.add(rkGen.nextId());}int pointer = 0;Iterator<byte[]> rowKeyIter = rows.iterator();int index = 0;while (rowKeyIter.hasNext()) {byte[] tempRow = rowKeyIter.next();rowKeyIter.remove();if ((pointer != 0) && (pointer % splitKeysBase == 0)) {if (index < splitKeysNumber) {splitKeys[index] = tempRow;index ++;}}pointer ++;}rows.clear();rows = null;return splitKeys;} } KeyGenerator及實現 //interface public interface RowKeyGenerator {byte [] nextId(); } //implements public class HashRowKeyGenerator implements RowKeyGenerator {private long currentId = 1;private long currentTime = System.currentTimeMillis();private Random random = new Random();public byte[] nextId() {try {currentTime += random.nextInt(1000);byte[] lowT = Bytes.copy(Bytes.toBytes(currentTime), 4, 4);byte[] lowU = Bytes.copy(Bytes.toBytes(currentId), 4, 4);return Bytes.add(MD5Hash.getMD5AsHex(Bytes.add(lowU, lowT)).substring(0, 8).getBytes(),Bytes.toBytes(currentId));} finally {currentId++;}} } @Test public void testHashAndCreateTable() throws Exception{HashChoreWoker worker = new HashChoreWoker(1000000,10);byte [][] splitKeys = worker.calcSplitKeys();HBaseAdmin admin = new HBaseAdmin(HBaseConfiguration.create());TableName tableName = TableName.valueOf("hash_split_table");if (admin.tableExists(tableName)) {try {admin.disableTable(tableName);} catch (Exception e) {}admin.deleteTable(tableName);}HTableDescriptor tableDesc = new HTableDescriptor(tableName);HColumnDescriptor columnDesc = new HColumnDescriptor(Bytes.toBytes("info"));columnDesc.setMaxVersions(1);tableDesc.addFamily(columnDesc);admin.createTable(tableDesc ,splitKeys);admin.close();}

查看建表結果:執行 scan ‘hbase:meta’

以上我們只是顯示了部分region的信息,可以看到region的start-end key 還是比較隨機散列的。同樣可以查看hdfs的目錄結構,的確和預期的38個預分區一致:


以上,就已經按hash方式,預建好了分區,以后在插入數據的時候,也要按照此rowkeyGenerator的方式生成rowkey,有興趣的話,也可以做些試驗,插入些數據,看看數據的分布。

partition故名思義,就是分區式,這種分區有點類似于mapreduce中的partitioner,將區域用長整數(Long)作為分區號,每個region管理著相應的區域數據,在rowKey生成時,將id取模后,然后拼上id整體作為rowKey.這個比較簡單,不需要取樣,splitKeys也非常簡單,直接是分區號即可。直接上代碼吧:

public class PartitionRowKeyManager implements RowKeyGenerator,SplitKeysCalculator {public static final int DEFAULT_PARTITION_AMOUNT = 20;private long currentId = 1;private int partition = DEFAULT_PARTITION_AMOUNT;public void setPartition(int partition) {this.partition = partition;}public byte[] nextId() {try {long partitionId = currentId % partition;return Bytes.add(Bytes.toBytes(partitionId),Bytes.toBytes(currentId));} finally {currentId++;}}public byte[][] calcSplitKeys() {byte[][] splitKeys = new byte[partition - 1][];for(int i = 1; i < partition ; i ++) {splitKeys[i-1] = Bytes.toBytes((long)i);}return splitKeys;} }

calcSplitKeys方法比較單純,splitKey就是partition的編號,我們看看測試類:

@Testpublic void testPartitionAndCreateTable() throws Exception{PartitionRowKeyManager rkManager = new PartitionRowKeyManager();//只預建10個分區rkManager.setPartition(10);byte [][] splitKeys = rkManager.calcSplitKeys();HBaseAdmin admin = new HBaseAdmin(HBaseConfiguration.create());TableName tableName = TableName.valueOf("partition_split_table");if (admin.tableExists(tableName)) {try {admin.disableTable(tableName);} catch (Exception e) {}admin.deleteTable(tableName);}HTableDescriptor tableDesc = new HTableDescriptor(tableName);HColumnDescriptor columnDesc = new HColumnDescriptor(Bytes.toBytes("info"));columnDesc.setMaxVersions(1);tableDesc.addFamily(columnDesc);admin.createTable(tableDesc ,splitKeys);admin.close();}

同樣我們可以看看meta表和hdfs的目錄結果,其實和hash類似,region都會分好區,在這里就不上圖了。

通過partition實現的loadblance寫的話,當然生成rowkey方式也要結合當前的region數目取模而求得,大家同樣也可以做些實驗,看看數據插入后的分布。
在這里也順提一下,如果是順序的增長型原id,可以將id保存到一個數據庫,傳統的也好,redis的也好,每次取的時候,將數值設大1000左右,以后id可以在內存內增長,當內存數量已經超過1000的話,再去load下一個,有點類似于oracle中的sqeuence.

隨機分布加預分區也不是一勞永逸的。因為數據是不斷地增長的,隨著時間不斷地推移,已經分好的區域,或許已經裝不住更多的數據,當然就要進一步進行split了,同樣也會出現性能損耗問題,所以我們還是要規劃好數據增長速率,觀察好數據定期維護,按需分析是否要進一步分行手工將分區再分好,也或者是更嚴重的是新建表,做好更大的預分區然后進行數據遷移。小吳只是菜鳥,運維方面也只是自已這樣認為而已,供大家作簡單的參考吧。如果數據裝不住了,對于partition方式預分區的話,如果讓它自然分裂的話,情況分嚴重一點。因為分裂出來的分區號會是一樣的,所以計算到partitionId的話,其實還是回到了順序寫年代,會有部分熱點寫問題出現,如果使用partition方式生成主鍵的話,數據增長后就要不斷地調整分區了,比如增多預分區,或者加入子分區號的處理.(我們的分區號為long型,可以將它作為多級partition)

OK,寫到這里,基本已經講完了防止熱點寫使用的方法和防止頻繁split而采取的預分區。但rowkey設計,遠遠也不止這些,比如rowkey長度,然后它的長度最大可以為char的MAXVALUE,但是看過之前我寫KeyValue的分析知道,我們的數據都是以KeyValue方式存儲在MemStore或者HFile中的,每個KeyValue都會存儲rowKey的信息,如果rowkey太大的話,比如是128個字節,一行10個字段的表,100萬行記錄,光rowkey就占了1.2G+所以長度還是不要過長,另外設計,還是按需求來吧。

最后題外話是我想分享我在github中建了一個project,希望做一些hbase一些工具:https://github.com/bdifn/hbase-tools,如果本地裝了git的話,可以執行命令: git clone https://github.com/bdifn/hbase-tools.git目前加了一個region-helper子項目,也是目前唯一的一個子項目,項目使用maven管理,主要目的是幫助我們設計rowkey做一些參考,比如我們設計的隨機寫和預分區測試,提供了抽樣的功能,提供了檢測隨機寫的功能,然后統計按目前rowkey設計,隨機寫n條記錄后,統計每個region的記錄數,然后顯示比例等。
測試仿真模塊我程為simualtor,主要是模擬hbase的region行為,simple的實現,僅僅是上面提到的預測我們rowkey設計后,建好預分區后,寫數據的的分布比例,而emulation是比較逼真的仿真,設想是我們寫數據時,會統計數目的大小,根據我們的hbase-site.xml設定,模擬memStore行為,模擬hfile的行為,最終會生成一份表的報表,比如分區的數據大小,是否split了,等等,以供我們去設計hbase表時有一個參考,但是遺憾的是,由于時間關系,我只花了一點業余時間簡單搭了一下框架,目前沒有更一步的實現,以后有時間再加以完善,當然也歡迎大家一起加入,一起學習吧。

項目使用maven管理,為了方便測試,一些組件的實例化,我使用了java的SPI,download源碼后,如果想測試自已的rowKeyGeneator的話,打開com.bdifn.hbasetools.regionhelper.rowkey.RowKeyGenerator文件后,替換到你們的ID生成器就可以了。如果是hash的話,抽樣和測試等,都是可以復用的。

如測試代碼:

public class HBaseSimulatorTest {//通過SPI方式獲取HBaseSimulator實例,SPI的實現為simgpleprivate HBaseSimulator hbase = BeanFactory.getInstance().getBeanInstance(HBaseSimulator.class);//獲取RowKeyGenerator實例,SPI的實現為hashRowkeyprivate RowKeyGenerator rkGen = BeanFactory.getInstance().getBeanInstance(RowKeyGenerator.class);//初如化苦工,去檢測100w個抽樣rowkey,然后生成一組splitKeysHashChoreWoker worker = new HashChoreWoker(1000000,10);@Testpublic void testHash(){byte [][] splitKeys = worker.calcSplitKeys();hbase.createTable("user", splitKeys);//插入1億條記錄,看數據分布TableName tableName = TableName.valueOf("user");for(int i = 0; i < 100000000; i ++) {Put put = new Put(rkGen.nextId());hbase.put(tableName, put);}hbase.report(tableName);}@Testpublic void testPartition(){//default 20 partitions.PartitionRowKeyManager rkManager = new PartitionRowKeyManager();byte [][] splitKeys = rkManager.calcSplitKeys();hbase.createTable("person", splitKeys);TableName tableName = TableName.valueOf("person");//插入1億條記錄,看數據分布for(int i = 0; i < 100000000; i ++) {Put put = new Put(rkManager.nextId());hbase.put(tableName, put);}hbase.report(tableName);} }

執行結果:

Execution Reprort:[StartRowkey:puts requsts:(put ratio)] :9973569:(1.0015434) 1986344a\x00\x00\x00\x00\x00\x01\x0E\xAE:9999295:(1.0041268) 331ee65f\x00\x00\x00\x00\x00\x0F)g:10012532:(1.005456) 4cbfd4f6\x00\x00\x00\x00\x00\x00o0:9975842:(1.0017716) 664c6388\x00\x00\x00\x00\x00\x02\x1Du:10053337:(1.0095537) 800945e0\x00\x00\x00\x00\x00\x01\xADV:9998719:(1.0040689) 99a158d9\x00\x00\x00\x00\x00\x0BZ\xF3:10000563:(1.0042541) b33a2223\x00\x00\x00\x00\x00\x07\xC6\xE6:9964921:(1.000675) ccbcf370\x00\x00\x00\x00\x00\x00*\xE2:9958200:(1.0) e63b8334\x00\x00\x00\x00\x00\x03g\xC1:10063022:(1.0105262) total requests:100000000 Execution Reprort:[StartRowkey:puts requsts:(put ratio)] :5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x01:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x02:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x03:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x04:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x05:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x06:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x07:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x08:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x09:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0A:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0B:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0C:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0D:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0E:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x0F:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x10:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x11:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x12:5000000:(1.0) \x00\x00\x00\x00\x00\x00\x00\x13:5000000:(1.0) total requests:100000000

原貼地址:http://www.cnblogs.com/bdifn/p/3801737.html ,轉載請注明

總結

以上是生活随笔為你收集整理的HBase Rowkey的散列与预分区设计的全部內容,希望文章能夠幫你解決所遇到的問題。

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

国产午夜精品久久久久久久久久 | 成人影片在线免费观看 | 超碰在线公开免费 | 人人草人| 欧美少妇18p | a天堂免费| 亚洲美女在线一区 | 丰满少妇对白在线偷拍 | 天天爽人人爽夜夜爽 | 91日韩在线视频 | 99在线视频精品 | 成人精品一区二区三区电影免费 | 91精品国产九九九久久久亚洲 | 欧美va天堂va视频va在线 | 亚洲欧美成人网 | 色狠狠一区二区 | 国产一区二区三区免费在线 | 人成在线免费视频 | 亚洲婷久久 | 国产一线天在线观看 | 免费情缘 | 亚洲免费av电影 | 欧美尹人| 婷婷激情网站 | 一级精品视频在线观看宜春院 | 日韩欧美精品一区二区三区经典 | 日本护士撒尿xxxx18 | 日韩xxxbbb | 久久综合综合久久综合 | 蜜臀91丨九色丨蝌蚪老版 | 少妇搡bbbb搡bbb搡aa | 中国精品少妇 | 狂野欧美激情性xxxx | 视频在线观看入口黄最新永久免费国产 | 色在线网 | 欧美日韩中文在线 | 亚洲精品网站 | 99精彩视频在线观看免费 | 91视频91自拍 | 1024在线看片| 亚洲精品乱码久久久久久蜜桃欧美 | 夜夜躁日日躁狠狠久久av | 91高清在线| 青草视频在线看 | 91在线网址| 欧美做受高潮 | 亚洲高清在线精品 | 亚洲精品综合欧美二区变态 | 91黄色免费网站 | 久久免费视频8 | 国产视频精品免费播放 | 中文字幕在线看视频国产 | 成人性生交大片免费观看网站 | 亚洲国产精品人久久电影 | 婷婷六月综合亚洲 | 日韩精品一卡 | 成人午夜黄色影院 | 亚洲婷婷在线视频 | 在线免费观看黄色 | 超碰在线观看99 | 亚洲精品国产精品久久99热 | 国产精品久久久久一区二区三区 | 麻豆91精品91久久久 | 午夜精品影院 | 伊人婷婷色 | 精品视频9999 | 国产91精品久久久久 | 亚洲a资源 | 99久久精品免费视频 | 综合网色 | 999日韩| 午夜精品一区二区三区在线播放 | 国内外激情视频 | 久久福利综合 | 成人精品99 | 丰满少妇对白在线偷拍 | 日韩在线播放欧美字幕 | 碰超在线| 精品av网站| 成人免费视频播放 | 亚洲激情视频在线观看 | 99在线高清视频在线播放 | 久久久久国产成人免费精品免费 | 在线免费精品视频 | 国产视频久久久久 | 欧美一级在线 | 免费看污网站 | 色婷婷精品大在线视频 | 毛片网站免费 | 偷拍视频一区 | 国产日韩欧美在线观看 | 国产精品免费在线播放 | 国内精品久久久久 | 国产97免费 | 狠狠躁日日躁狂躁夜夜躁 | 国产a级免费| 久久免费播放视频 | 中文一区在线 | 五月婷婷丁香激情 | 国产一区二区在线免费播放 | 成人综合婷婷国产精品久久免费 | 在线亚洲观看 | 国产视频久久久 | 一本一道久久a久久精品 | 日韩字幕 | 久射网| 久久大视频 | 97超碰中文字幕 | 狠狠色婷婷丁香六月 | 天天色天天骑天天射 | 亚洲色图色 | 亚洲少妇自拍 | 久久久久久久久久久久电影 | 国际精品网 | 激情欧美一区二区免费视频 | 亚洲精品国产精品国 | 久久久久久久久久伊人 | 久久久免费网站 | 玖玖在线视频观看 | 久久网站最新地址 | 久久久久国产免费免费 | 91精品欧美一区二区三区 | 国产精品久久一区二区三区, | 麻豆成人网 | 久久国产乱 | 国产中文字幕在线播放 | 中文字幕丝袜 | 黄色av电影一级片 | 欧美精品在线观看免费 | 日韩专区一区二区 | 亚洲专区在线 | 精品中文字幕在线观看 | 懂色av懂色av粉嫩av分享吧 | 亚洲国产精品99久久久久久久久 | 激情电影影院 | 精品国产一区二区三区蜜臀 | 91| 国产精品久久久久三级 | 亚洲精品国产第一综合99久久 | 久久在线精品 | 国产无遮挡又黄又爽在线观看 | 日韩一二三 | 精品国产亚洲日本 | 中文字幕不卡在线88 | 亚洲理论在线观看电影 | 午夜免费电影院 | 91在线视频免费观看 | 亚洲精品国产精品久久99热 | 国产精品视频大全 | 特级毛片网 | 日韩欧美视频在线免费观看 | 国产色综合天天综合网 | 欧美精品999 | 午夜精品999 | 久久久久国产精品一区二区 | 欧美在线视频日韩 | 97看片 | 久草在线视频资源 | 九九久久久久久久久激情 | 国产精品高清在线 | 一级久久精品 | 午夜国产福利视频 | 欧美激情视频三区 | 91精品久久久久久综合五月天 | 婷婷亚洲五月色综合 | 天天综合网 天天综合色 | 欧美日韩国语 | 韩日在线一区 | 夜又临在线观看 | 久久精品美女视频 | 国模精品一区二区三区 | 中文国产在线观看 | 欧美在线1区| 免费看片亚洲 | 波多野结衣视频网址 | 91成人免费 | 玖操| v片在线看 | 国产国语在线 | 欧美一级爽 | 中文国产在线观看 | 婷婷丁香久久五月婷婷 | 人人揉人人揉人人揉人人揉97 | 欧美日韩国产一区二区在线观看 | 综合色影院| 亚洲人在线 | 国产精品久久久久久久99 | 天天射成人 | 国产精品美女在线 | 99久久久久久久久久 | 综合网中文字幕 | 国产精品毛片一区 | 国产91免费在线观看 | 香蕉免费在线 | 国产不卡毛片 | 国内精品亚洲 | 在线日韩| 福利视频网站 | 久久99精品久久久久久久久久久久 | 免费h视频 | 国产尤物在线 | 97色在线观看免费视频 | 人人爽人人爽av | 中文字幕在线高清 | 在线日本看片免费人成视久网 | 特级西西444www大精品视频免费看 | 日韩免费在线观看视频 | 91成人蝌蚪| 国产经典av| 久久综合五月天 | 亚洲一级电影在线观看 | 成人午夜性影院 | 日韩免费看片 | 欧美视频国产视频 | 91在线免费观看网站 | 97精产国品一二三产区在线 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 亚洲精品美女久久久 | 在线视频一二区 | 九九九视频在线 | 日韩天堂在线观看 | 麻豆精品在线视频 | 在线色资源 | 日韩视频免费播放 | www.狠狠操 | 久久影院一区 | 国产精品一区二区三区在线看 | 国产精品高清免费在线观看 | 亚洲国产高清在线 | 成人在线播放免费观看 | 1000部18岁以下禁看视频 | 国产91在线免费视频 | 人人看人人 | 日韩欧美视频在线 | 人人澡人人舔 | 五月婷在线播放 | jizz欧美性9 国产一区高清在线观看 | 免费看黄在线网站 | 国产护士av | 亚洲精品黄色在线观看 | 黄色大片日本免费大片 | 亚洲国产中文字幕 | 国产一级h | 中文字幕av在线免费 | 99久久99热这里只有精品 | 欧美日韩精品在线观看视频 | 欧美日韩高清一区二区三区 | 黄色三级网站在线观看 | 国产不卡在线观看 | 午夜精品久久久久久久99 | 在线观看一级 | 高清一区二区三区av | 成人av一二三区 | 91亚色视频在线观看 | 久久国产精品免费看 | 天天射天天操天天 | 成+人+色综合| 97精品久久人人爽人人爽 | 最新国产在线 | 99久久精品久久久久久动态片 | 二区三区精品 | 五月婷婷激情综合网 | 精品在线免费观看 | 欧美精品xxx | 西西人体4444www高清视频 | 国产手机视频在线播放 | 中文字幕三区 | 夜夜夜草| а天堂中文最新一区二区三区 | 成人黄色小说在线观看 | 日韩欧美电影网 | 一级特黄aaa大片在线观看 | av无限看 | 91桃色国产在线播放 | av在线播放不卡 | 成人在线视频网 | 欧美美女视频在线观看 | 成人黄色毛片视频 | 521色香蕉网站在线观看 | 五月丁色 | 美女免费黄视频网站 | 91麻豆.com| 久久久久久毛片 | 韩国av免费看 | 99精品在线观看视频 | 激情动态| 亚洲毛片一区二区三区 | 激情欧美一区二区三区免费看 | 超碰久热 | 精品国产一区二区三区久久 | 99久久99久久精品国产片 | 免费一级特黄录像 | 国产精品久久久久久久免费大片 | 久久视频免费 | 亚洲黄色av| 人人讲下载 | 国产精品久久久久9999 | 国产成人av在线 | 久久久久国产一区二区 | a在线一区 | 国产96视频 | 99视频导航| 欧美巨大荫蒂茸毛毛人妖 | 成人av播放| 岛国av在线免费 | a在线观看免费视频 | 不卡的av在线 | 日韩av一区在线观看 | 久久国产91 | 久久久久福利视频 | 激情婷婷综合网 | 99视频一区 | 伊人中文在线 | 国产精品高 | 国产精品免费一区二区三区在线观看 | 国际av在线 | 亚洲精品久久激情国产片 | 欧美一区成人 | 国产精品久久久久久久久久久久久久 | 欧美日韩视频免费 | 99精品在这里 | 欧美日韩国产区 | 久久中文视频 | 国产高清不卡 | 色久网 | 日韩av一区二区三区在线观看 | 久久久九色精品国产一区二区三区 | 久久久观看 | 黄色影院在线免费观看 | 久久久久久久久久久久久久av | 中文av一区二区 | 日本深夜福利视频 | 中文在线a√在线 | 欧美性大战久久久久 | 国产日韩精品一区二区 | 色av男人的天堂免费在线 | 免费a v在线| 亚洲精品玖玖玖av在线看 | 九色91在线 | 日韩免费高清在线 | 久久久久欠精品国产毛片国产毛生 | 欧洲色综合 | 国产手机在线观看视频 | 日本精品视频在线观看 | 人人超在线公开视频 | 午夜神马福利 | 国产尤物在线观看 | 午夜精品成人一区二区三区 | 久久黄色影视 | 国产久草在线 | 丁香高清视频在线看看 | 免费av电影网站 | 久久九九国产精品 | a在线播放 | 在线中文字幕一区二区 | 夜夜爽88888免费视频4848 | 国产午夜亚洲精品 | 婷婷色网站 | 日日干日日操 | 国产一区二区三精品久久久无广告 | 亚洲日本黄色 | 国精产品999国精产品岳 | 亚洲国产剧情av | 黄a在线看 | 91.精品高清在线观看 | 亚洲色图27p | 激情综合色播五月 | 我要色综合天天 | 伊人国产女 | 手机成人在线电影 | 国产伦精品一区二区三区四区视频 | 精品久久亚洲 | 久久久婷 | 久久综合九色综合97_ 久久久 | 日韩视频一区二区在线 | 久久爱导航 | 久草在线视频在线观看 | 亚洲涩涩一区 | 国内视频在线观看 | 国产在线播放不卡 | 91成人免费在线视频 | 97视频在线免费 | 国产黄影院色大全免费 | 日本精品视频一区 | 久久九九久久 | 亚洲精品午夜一区人人爽 | 国产成人三级在线 | 综合久久综合久久 | 99在线视频免费观看 | 五月天,com | 亚洲色五月 | 国产日韩av在线 | 免费在线电影网址大全 | 成人在线视频免费观看 | 亚州精品在线视频 | 超碰人人草人人 | 久久不见久久见免费影院 | 91精品国产综合久久福利 | 亚洲精品动漫在线 | 99久久9| 久久久久国产精品www | 人人草网站| 日韩av片免费在线观看 | 天天射天天操天天干 | 永久黄网站色视频免费观看w | 欧美精品一区二区三区四区在线 | 免费人成在线观看 | 亚洲精品乱码白浆高清久久久久久 | 夜夜骑日日 | 欧美成人影音 | 日韩av福利在线 | 在线视频婷婷 | 亚洲视频一区二区三区在线观看 | 久久综合免费视频 | 国产视频在线免费观看 | 日韩在线播放欧美字幕 | 久久综合偷偷噜噜噜色 | 最近中文字幕高清字幕在线视频 | 国产精品久久久影视 | 色婷婷伊人 | 女人高潮一级片 | 97超碰成人 | 成人影片在线播放 | 天天操天天摸天天射 | 香蕉免费在线 | 99在线精品免费视频九九视 | 韩国在线视频一区 | 黄色的视频网站 | 国产男女无遮挡猛进猛出在线观看 | 国产98色在线 | 日韩 | 亚洲精品mv在线观看 | 国产三级国产精品国产专区50 | 欧美少妇xxxxxx| 国产精品理论片 | 日韩美一区二区三区 | 国产99久久久国产精品免费二区 | 黄色av成人在线 | 国产亚洲免费的视频看 | 黄色精品国产 | 91亚洲免费 | 国产黄色精品在线 | 免费亚洲一区二区 | 综合精品在线 | 中文字幕在线视频国产 | 狠狠狠色丁香婷婷综合久久五月 | 最新国产精品视频 | 九九导航 | 欧美日韩国内在线 | 日韩欧美观看 | 精品资源在线 | 欧美日韩另类在线 | 操综合| 麻豆视频国产精品 | 国产精品视频全国免费观看 | 色com| 黄色小说18 | 91传媒在线观看 | 国产一级电影网 | 亚洲成人精品国产 | 毛片888 | 精品成人网 | 日韩有码网站 | 日b黄色片 | 四虎国产精 | 午夜精品久久久99热福利 | 成人午夜电影在线播放 | 精品日韩视频 | 四虎在线影视 | 午夜精品久久久久久久99 | www狠狠 | 在线导航福利 | 婷婷六月综合网 | 精品女同一区二区三区在线观看 | 欧美精品一二三 | 中文字幕av影院 | 日韩综合视频在线观看 | 国产成人精品久久久久 | 日韩资源在线播放 | 正在播放国产一区二区 | 亚洲成色777777在线观看影院 | 97超碰免费| 久久久久www | 亚洲成人av一区二区 | av亚洲产国偷v产偷v自拍小说 | 亚洲一区黄色 | 在线观看中文字幕第一页 | 久久久久在线视频 | 亚洲精选99| 亚洲天堂网在线视频观看 | 精品国内自产拍在线观看视频 | av三级在线免费观看 | 久久综合九色99 | av一级一片| 91精品一 | 亚洲精品免费看 | 黄色大片视频网站 | 免费网站v | 99精品免费久久久久久久久日本 | 国产在线免费av | 国产精品色婷婷 | 日韩激情视频在线观看 | 亚洲专区欧美专区 | 四虎在线免费视频 | 欧美黑吊大战白妞欧美 | www.激情五月.com | 天天射综合网视频 | 极品久久久 | 激情综合五月天 | 免费av视屏 | 激情网五月婷婷 | 国产a视频免费观看 | 中国一级片在线 | 五月婷婷操 | 日韩黄色网络 | 亚洲国产中文字幕 | 亚洲国产精品va在线看黑人 | 五月激情视频 | 中文字幕在线一区观看 | 亚洲成年人在线播放 | 国产一区二区在线免费播放 | 黄p网站在线观看 | 在线观看日韩一区 | 五月婷婷视频在线 | 一区二区三区 中文字幕 | 亚洲高清在线视频 | 奇米网444 | 456免费视频| 一区二区三区国产精品 | 午夜国产在线 | 久精品视频免费观看2 | 青青草国产精品 | 国产日韩在线播放 | 视频一区二区免费 | 美女网色 | 日韩理论片 | 999热线在线观看 | 啪啪小视频网站 | 国产精品手机在线观看 | 日韩精品视频免费看 | 九九久久精品视频 | www狠狠操 | 亚洲视频精品 | 久久久精品福利视频 | 久热久草在线 | 婷婷色五 | 日韩在线中文字幕 | 超碰在线人人草 | 国产在线一卡 | 精品一区二区三区电影 | 欧美综合在线观看 | 国产成人久久av977小说 | 蜜桃av人人夜夜澡人人爽 | 毛片网站观看 | 国产午夜免费视频 | 99热官网 | 狠狠色丁香久久婷婷综 | 国产精品久久久久av | 一区二区网 | 色噜噜狠狠狠狠色综合 | 日产乱码一二三区别免费 | 免费看的黄色片 | 黄色国产在线观看 | 欧美 另类 交 | 欧美日本三级 | 91视频 - 114av | 超碰在线9 | 精品视频国产一区 | 97色婷婷成人综合在线观看 | 中文字幕 第二区 | 在线免费精品视频 | 国产亚洲综合精品 | 一区二区不卡视频在线观看 | 麻豆91网站 | av久久久| 国产精品中文字幕av | 色爱成人网 | 正在播放国产一区二区 | 久久久人人人 | 不卡电影免费在线播放一区 | 91视频xxxx| 精品你懂的 | 久草免费看 | 色婷婷在线视频 | 免费99视频 | 久久理论电影 | 91精品在线免费观看视频 | 国产伦理久久 | 久久精品毛片 | 久久99精品国产麻豆婷婷 | 黄色大片免费网站 | 国产成人精品一二三区 | 国产精品一区二区麻豆 | 99久久爱 | 久久精品国产亚洲aⅴ | www久久国产 | 超碰国产人人 | 国产99久久九九精品 | 国产精品一区一区三区 | 成人午夜电影免费在线观看 | 国产日韩高清在线 | 92av视频 | 色橹橹欧美在线观看视频高清 | 中文字幕 二区 | 国产视频资源在线观看 | 精品一区二区av | 国产成人高清在线 | 免费视频91蜜桃 | 亚洲精品黄色片 | 国色天香在线观看 | 亚洲精品99久久久久中文字幕 | 久久成人资源 | 日韩精品一区二区三区视频播放 | 91色一区二区三区 | 国产精品麻 | 色天天综合久久久久综合片 | 深爱激情五月婷婷 | 日本性动态图 | 91禁在线观看 | 亚洲精选在线观看 | 日韩精品专区 | 国产成人av电影在线观看 | 国产精品18久久久久久久久 | 在线91网 | 97成人在线观看视频 | 国产精品久久久777 成人手机在线视频 | 91人人澡| 欧美精品黑人性xxxx | 97精品国产一二三产区 | 亚洲一区二区视频在线 | 国产成人一区二 | 国产精品美女在线观看 | 国产成人黄色片 | 最近能播放的中文字幕 | 日韩欧美一级二级 | 亚洲国产精品久久久久久 | 不卡国产视频 | 免费亚洲黄色 | 激情影院在线 | 日韩电影一区二区在线观看 | 一色av| a午夜在线 | 在线欧美中文字幕 | 国产aa免费视频 | 日日夜夜免费精品视频 | 久久久久久久久影视 | 美女网站视频免费都是黄 | 日日夜夜操av| 手机色在线 | 免费国产在线精品 | 国产剧情久久 | 69国产盗摄一区二区三区五区 | 精品国产一区二区三区噜噜噜 | 日韩精品网址 | 人人爱爱 | 午夜少妇 | 中文久草| 青青河边草免费观看完整版高清 | 日韩欧美在线综合网 | 狠狠亚洲 | 欧美影片 | 黄色日本片 | 一区二区三区免费 | 国产美女黄网站免费 | 精品一区精品二区 | 亚洲黄色大片 | 国产91在线 | 美洲 | a视频在线观看 | 久热av| 亚洲精品视频免费看 | 九九热免费精品视频 | 免费在线观看av | 欧美孕妇视频 | 国产成人精品一区二区三区在线 | 人人玩人人添人人澡超碰 | 黄色片视频免费 | 国产色拍拍拍拍在线精品 | 久久不射网站 | 国产在线黄 | 中文字幕在线观看网 | 日韩一区二区三区不卡 | 波多野结衣在线播放视频 | 日韩精品aaa | 久久人人精 | 丁香av| 天天综合导航 | 韩国av免费在线 | www.日日日.com | 91在线欧美| 天天干天天干天天射 | 日韩专区一区二区 | 国产精品成人av在线 | 久久国际影院 | 国产黑丝一区二区三区 | 色黄久久久久久 | 天天操天天操天天操天天操天天操 | 欧美色图88 | 国产一级二级三级在线观看 | 国产综合久久 | 狠狠干网址 | 操久在线| 99精彩视频在线观看免费 | 九九在线视频免费观看 | 九九热国产视频 | 欧美亚洲专区 | 亚洲精品自在在线观看 | www.午夜色.com| 91精品国产99久久久久 | 91高清免费在线观看 | 国产精品一区二区中文字幕 | av黄色国产 | 97精品一区二区三区 | 99在线热播精品免费99热 | 国产欧美综合在线观看 | 国产69精品久久久久久 | 国产亚洲精品综合一区91 | 成人午夜剧场在线观看 | 亚洲丝袜一区二区 | 黄p在线播放| 在线国产小视频 | 午夜国产一区 | 中文字幕 第二区 | 日韩视频三区 | 香蕉久久久久久av成人 | 日韩色视频在线观看 | 久久综合激情 | 911国产在线观看 | 日韩一区二区免费播放 | 国产一区二区三区四区在线 | 国产69久久精品成人看 | 69亚洲乱| 欧美国产日韩在线视频 | 国产精品99精品久久免费 | 国产亚洲精品久久久网站好莱 | 免费日韩 精品中文字幕视频在线 | 国产69精品久久99的直播节目 | 婷五月天激情 | 国产999精品 | 人人人爽| 麻豆成人精品视频 | 国产手机视频在线观看 | 欧美久久久久久久久久 | av线上看 | 亚洲精品乱码久久久久久蜜桃欧美 | 久久久免费毛片 | av不卡免费在线观看 | av一级片 | 五月视频 | 97人人爽人人 | 美女黄频 | 黄色激情网址 | 最近最新最好看中文视频 | 久久免费黄色大片 | 亚洲午夜精品一区二区三区电影院 | 婷婷久久亚洲 | 久久99精品久久久久久久久久久久 | 国产一级黄色片免费看 | 97国产大学生情侣白嫩酒店 | 午夜av在线免费 | 五月天天天操 | 国产色视频网站2 | 国产成人精品一区二区三区在线观看 | 天天干天天拍天天操 | 免费进去里的视频 | 亚州国产精品视频 | 日日操日日干 | 美女性爽视频国产免费app | 精品久久久久久国产偷窥 | 在线看欧美 | 麻豆视频免费入口 | 中文字幕影视 | 中文字幕免费观看全部电影 | 欧美激情精品久久久久 | 福利视频第一页 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文久草 | av免费观看在线 | 九九热精品在线 | 国内精品毛片 | 色九九影院 | 亚洲片在线资源 | 91成人小视频| 中文字幕在线看视频国产 | 中文字幕成人网 | 成人黄色免费在线观看 | 欧美日韩在线精品一区二区 | 综合久久一本 | 亚洲视频久久 | 欧美性久久久久久 | 91中文字幕永久在线 | 亚洲成人一二三 | 国产一区欧美在线 | 69亚洲精品| 网站在线观看日韩 | 婷婷色站 | 欧美日韩免费在线视频 | 四虎影视国产精品免费久久 | 久久成人人人人精品欧 | 六月丁香激情综合 | 日韩在线视频国产 | 国产福利一区二区三区在线观看 | 91在线免费观看国产 | 久久精品国产v日韩v亚洲 | 天天做夜夜做 | 国产高清视频免费最新在线 | 又黄又爽又刺激视频 | 日韩精品极品视频 | 久久视频免费在线观看 | 天天干天天拍 | 亚洲国产一区在线观看 | 黄色成人91 | 亚洲天堂精品视频在线观看 | 中午字幕在线 | 亚洲第一区精品 | 日本字幕网 | 国产精品va在线播放 | 国产91影视| 精品uu| 天天视频亚洲 | 久久久电影网站 | 久久毛片高清国产 | 日本xxxxav | 精品96久久久久久中文字幕无 | 国产又粗又猛又黄又爽视频 | 国产麻豆传媒 | 国内精品免费久久影院 | 在线影视 一区 二区 三区 | 天天做天天爱天天综合网 | 欧美日韩国产精品久久 | 99高清视频有精品视频 | 爱射综合| 在线免费色 | 成人精品一区二区三区电影免费 | 国产麻豆精品久久一二三 | 综合五月婷婷 | 欧美动漫一区二区三区 | 视频一区在线播放 | 一区二区三区日韩在线 | 久久久久久久久福利 | 丁香激情五月 | 999久久久 | 手机在线免费av | 黄色成人在线观看 | 久久精品99国产精品 | 亚洲精品白浆高清久久久久久 | 色婷婷播放 | 国产精品久久久久永久免费看 | 亚洲爱av | 日韩欧美一区二区在线观看 | 狠狠色丁香婷综合久久 | 91九色在线 | 国产精品 日韩 欧美 | 毛片播放网站 | 国产高清视频网 | 免费色视频在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 五月婷婷,六月丁香 | 狠狠干婷婷 | 深夜免费小视频 | 视频一区视频二区在线观看 | 中文字幕在线观看一区二区 | 欧美黄色成人 | 久久久久久看片 | 午夜精品在线看 | 国产精品婷婷 | 久久只精品99品免费久23小说 | 国产精品久久久久久久久久久久冷 | 99视频网站 | 精品国产大片 | 日韩二区在线观看 | 国产精品久久99综合免费观看尤物 | 999久久久欧美日韩黑人 | 91在线免费看片 | 色在线中文字幕 | 99热官网 | 92国产精品久久久久首页 | 69热国产视频 | 亚洲,播放 | 日日夜夜网 | 欧美成a人片在线观看久 | 五月激情电影 | 操操日日 | 人人草在线视频 | 欧美日韩一区二区三区不卡 | 丁香婷婷综合色啪 | 最近高清中文字幕 | 欧美乱码精品一区 | 日韩婷婷 | 亚洲,播放 | 青青河边草免费 | 欧美另类v | 日本成人免费在线观看 | 天天爱天天干天天爽 | 欧美性免费 | 一本色道久久综合亚洲二区三区 | 中文字幕综合在线 | 国产高清视频在线免费观看 | 久久久免费毛片 | 久草在线久 | 91日韩在线专区 | 国产亚洲午夜高清国产拍精品 | 国产精品久久电影观看 | 黄色小说免费在线观看 | 一区二区三区手机在线观看 | 黄色毛片网站在线观看 | 国产精品一区二区久久 | 亚洲欧洲av| 免费看片亚洲 | 久久久久久久久久久久99 | 热久久视久久精品18亚洲精品 | 黄色影院在线观看 | 日本护士撒尿xxxx18 | 精品视频| 久草综合视频 | 99色视频在线 | 在线免费性生活片 | 91手机电视 | 国产精品毛片久久久 | 人人澡人人草 | 国产午夜在线观看 | 国产无遮挡又黄又爽在线观看 | 亚洲一级国产 | 国产原厂视频在线观看 | 午夜精品在线看 | 亚洲成人免费在线观看 | 欧美在线视频一区二区三区 | 婷婷精品国产欧美精品亚洲人人爽 | 伊人www22综合色 | 91av在线视频免费观看 | 亚洲aⅴ免费在线观看 | 久久久久国产精品免费网站 | 久久久www成人免费精品张筱雨 | 国产精品精品久久久久久 | 免费三级a | 97热久久免费频精品99 | 色诱亚洲精品久久久久久 | 久久免费播放视频 | 日本中文在线 | 一本一本久久aa综合精品 | 日本成人中文字幕在线观看 | 香蕉视频在线免费 | 人九九精品 | 成人免费观看网站 | 欧美成人h版 | 国产96精品 | 亚洲人人射| 狠狠狠狠狠操 | 亚洲免费在线播放视频 | 毛片网站在线 | 亚洲一级黄色大片 | 欧美激情综合网 | 麻豆影视在线播放 | 国产精品第一视频 | 国产视频黄 | 特级大胆西西4444www | jizz欧美性9| 操操色 | 99久久超碰中文字幕伊人 | 97在线精品国自产拍中文 | 国产原创av片 | 免费看的黄色网 | 久久成| 精品一二三四在线 | 日韩欧美高清在线 | 国产精品黑丝在线观看 | 中文字幕免费高 | 亚洲精品国产第一综合99久久 | 丁香电影小说免费视频观看 | 久久99精品国产麻豆婷婷 | 日韩电影黄色 | 国产精品精品久久久 | 日本中文字幕在线看 | 久久免费国产精品1 | 久久99视频 | 亚洲精品美女久久久久网站 | 久久免费大片 | ,午夜性刺激免费看视频 | 国产精品成人在线观看 | 国内成人精品2018免费看 | 三上悠亚一区二区在线观看 | 久久久久久久久久电影 | 成人av亚洲 | 色婷婷免费视频 | 国产亚洲婷婷 | 久久草| 亚洲欧美日韩国产 | 久久天天躁夜夜躁狠狠85麻豆 | 在线观看日本高清mv视频 | 日韩天天干 | 夜夜视频 | 91精品国产91久久久久久三级 | 91精品啪在线观看国产线免费 | 中文字幕在线影院 | 黄免费在线观看 | 91精品导航| 日韩在线免费播放 | 久久久久久久久网站 | 五月天伊人 | 国产精品久久电影网 |