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

大數據架構-使用HBase和Solr配置存儲與索引

運維 數據庫運維 數據庫
HBase可以通過協處理器Coprocessor的方式向Solr發出請求,Solr對于接收到的數據可以做相關的同步:增、刪、改索引的操作,這樣就可以同時使用HBase存儲量大和Solr檢索性能高的優點了,更何況HBase和Solr都可以集群。這對海量數據存儲、檢索提供了一種方式,將存儲與索引放在不同的機器上,是大數據架構的必須品。

HBase和Solr可以通過協處理器Coprocessor的方式向Solr發出請求,Solr對于接收到的數據可以做相關的同步:增、刪、改索引的操作。將存儲與索引放在不同的機器上,這是大數據架構的必須品,但目前還有很多不懂得此道的同學,他們對于這種思想感到很新奇,不過,這絕對是好的方向,所以不懂得抓緊學習吧。

有個朋友給我的那篇博客留言,說CDH也可以做這樣的事情,我還沒有試過,他還問我要與此相關的代碼,于是我就稍微整理了一下,作為本篇文章的主要內容。關于CDH的事,我會盡快嘗試,有知道的同學可以給我留言。

下面我主要講述一下,我測試對HBase和Solr的性能時,使用HBase協處理器向HBase添加數據所編寫的相關代碼,及解釋說明。

一、編寫HBase協處理器Coprocessor

​一旦有數據postPut,就立即對Solr里相應的Core更新。這里使用了ConcurrentUpdateSolrServer,它是Solr速率性能的保證,使用它不要忘記在Solr里面配置autoCommit喲。

  1. /* 
  2.  
  3.  *版權:王安琪 
  4.  
  5.  *描述:監視HBase,一有數據postPut就向Solr發送,本類要作為觸發器添加到HBase 
  6.  
  7.  *修改時間:2014-05-27 
  8.  
  9.  *修改內容:新增 
  10.  
  11.  */ 
  12.  
  13. package solrHbase.test; 
  14.  
  15.   
  16.  
  17. import java.io.UnsupportedEncodingException; 
  18.  
  19.   
  20.  
  21. import ***; 
  22.  
  23.   
  24.  
  25. public class SorlIndexCoprocessorObserver extends BaseRegionObserver { 
  26.  
  27.   
  28.  
  29.     private static final Logger LOG = LoggerFactory 
  30.  
  31.             .getLogger(SorlIndexCoprocessorObserver.class); 
  32.  
  33.     private static final String solrUrl = "http://192.1.11.108:80/solr/core1"
  34.  
  35.     private static final SolrServer solrServer = new ConcurrentUpdateSolrServer( 
  36.  
  37.             solrUrl, 10000, 20); 
  38.  
  39.   
  40.  
  41.     /** 
  42.  
  43.      * 建立solr索引 
  44.  
  45.      *  
  46.  
  47.      * @throws UnsupportedEncodingException 
  48.  
  49.      */ 
  50.  
  51.     @Override 
  52.  
  53.     public void postPut(final ObserverContext<RegionCoprocessorEnvironment> e, 
  54.  
  55.             final Put put, final WALEdit edit, final boolean writeToWAL) 
  56.  
  57.             throws UnsupportedEncodingException { 
  58.  
  59.         inputSolr(put); 
  60.  
  61.     } 
  62.  
  63.   
  64.  
  65.     public void inputSolr(Put put) { 
  66.  
  67.         try { 
  68.  
  69.             solrServer.add(TestSolrMain.getInputDoc(put)); 
  70.  
  71.         } catch (Exception ex) { 
  72.  
  73.             LOG.error(ex.getMessage()); 
  74.  
  75.         } 
  76.  
  77.     } 
  78.  

注意:getInputDoc是這個HBase協處理器Coprocessor的精髓所在,它可以把HBase內的Put里的內容轉化成Solr需要的值。其中String fieldName = key.substring(key.indexOf(columnFamily) + 3, key.indexOf("我在這")).trim();這里有一個亂碼字符,在這里看不到,請大家注意一下。

  1. public static SolrInputDocument getInputDoc(Put put) { 
  2.  
  3.         SolrInputDocument doc = new SolrInputDocument(); 
  4.  
  5.         doc.addField("test_ID", Bytes.toString(put.getRow())); 
  6.  
  7.         for (KeyValue c : put.getFamilyMap().get(Bytes.toBytes(columnFamily))) { 
  8.  
  9.             String key = Bytes.toString(c.getKey()); 
  10.  
  11.             String value = Bytes.toString(c.getValue()); 
  12.  
  13.             if (value.isEmpty()) { 
  14.  
  15.                 continue; 
  16.  
  17.             } 
  18.  
  19.             String fieldName = key.substring(key.indexOf(columnFamily) + 3, 
  20.  
  21.                     key.indexOf("")).trim(); 
  22.  
  23.             doc.addField(fieldName, value); 
  24.  
  25.         } 
  26.  
  27.         return doc; 
  28.  
  29.     } 

二、編寫測試程序入口代碼main

​這段代碼向HBase請求建了一張表,并將模擬的數據,向HBase連續地提交數據內容,在HBase中不斷地插入數據,同時記錄時間,測試插入性能。

  1. /* 
  2.  
  3.  *版權:王安琪 
  4.  
  5.  *描述:測試HBaseInsert,HBase插入性能 
  6.  
  7.  *修改時間:2014-05-27 
  8.  
  9.  *修改內容:新增 
  10.  
  11.  */ 
  12.  
  13. package solrHbase.test; 
  14.  
  15.   
  16.  
  17. import hbaseInput.HbaseInsert; 
  18.  
  19.   
  20.  
  21. import ***; 
  22.  
  23.   
  24.  
  25. public class TestHBaseMain { 
  26.  
  27.   
  28.  
  29.     private static Configuration config; 
  30.  
  31.     private static String tableName = "angelHbase"
  32.  
  33.     private static HTable table = null
  34.  
  35.     private static final String columnFamily = "wanganqi"
  36.  
  37.   
  38.  
  39.     /** 
  40.  
  41.      * @param args 
  42.  
  43.      */ 
  44.  
  45.     public static void main(String[] args) { 
  46.  
  47.         config = HBaseConfiguration.create(); 
  48.  
  49.         config.set("hbase.zookeeper.quorum", "192.103.101.104"); 
  50.  
  51.         HbaseInsert.createTable(config, tableName, columnFamily); 
  52.  
  53.         try { 
  54.  
  55.             table = new HTable(config, Bytes.toBytes(tableName)); 
  56.  
  57.             for (int k = 0; k < 1; k++) { 
  58.  
  59.                 Thread t = new Thread() { 
  60.  
  61.                     public void run() { 
  62.  
  63.                         for (int i = 0; i < 100000; i++) { 
  64.  
  65.                             HbaseInsert.inputData(table, 
  66.  
  67.                                     PutCreater.createPuts(1000, columnFamily)); 
  68.  
  69.                             Calendar c = Calendar.getInstance(); 
  70.  
  71.                             String dateTime = c.get(Calendar.YEAR) + "-" 
  72.  
  73.                                     + c.get(Calendar.MONTH) + "-" 
  74.  
  75.                                     + c.get(Calendar.DATE) + "T" 
  76.  
  77.                                     + c.get(Calendar.HOUR) + ":" 
  78.  
  79.                                     + c.get(Calendar.MINUTE) + ":" 
  80.  
  81.                                     + c.get(Calendar.SECOND) + ":" 
  82.  
  83.                                     + c.get(Calendar.MILLISECOND) + "Z 寫入: " 
  84.  
  85.                                     + i * 1000; 
  86.  
  87.                             System.out.println(dateTime); 
  88.  
  89.                         } 
  90.  
  91.                     } 
  92.  
  93.                 }; 
  94.  
  95.                 t.start(); 
  96.  
  97.             } 
  98.  
  99.         } catch (IOException e1) { 
  100.  
  101.             e1.printStackTrace(); 
  102.  
  103.         } 
  104.  
  105.     } 
  106.  
  107.   
  108.  

​下面的是與HBase相關的操作,把它封裝到一個類中,這里就只有建表與插入數據的相關代碼。

  1. /* 
  2.  
  3.  *版權:王安琪 
  4.  
  5.  *描述:與HBase相關操作,建表與插入數據 
  6.  
  7.  *修改時間:2014-05-27 
  8.  
  9.  *修改內容:新增 
  10.  
  11.  */ 
  12.  
  13. package hbaseInput; 
  14.  
  15. import ***; 
  16.  
  17. import org.apache.hadoop.hbase.client.Put; 
  18.  
  19.   
  20.  
  21. public class HbaseInsert { 
  22.  
  23.   
  24.  
  25.     public static void createTable(Configuration config, String tableName, 
  26.  
  27.             String columnFamily) { 
  28.  
  29.         HBaseAdmin hBaseAdmin; 
  30.  
  31.         try { 
  32.  
  33.             hBaseAdmin = new HBaseAdmin(config); 
  34.  
  35.             if (hBaseAdmin.tableExists(tableName)) { 
  36.  
  37.                 return; 
  38.  
  39.             } 
  40.  
  41.             HTableDescriptor tableDescriptor = new HTableDescriptor(tableName); 
  42.  
  43.             tableDescriptor.addFamily(new HColumnDescriptor(columnFamily)); 
  44.  
  45.             hBaseAdmin.createTable(tableDescriptor); 
  46.  
  47.             hBaseAdmin.close(); 
  48.  
  49.         } catch (MasterNotRunningException e) { 
  50.  
  51.             e.printStackTrace(); 
  52.  
  53.         } catch (ZooKeeperConnectionException e) { 
  54.  
  55.             e.printStackTrace(); 
  56.  
  57.         } catch (IOException e) { 
  58.  
  59.             e.printStackTrace(); 
  60.  
  61.         } 
  62.  
  63.     } 
  64.  
  65.   
  66.  
  67.     public static void inputData(HTable table, ArrayList<Put> puts) { 
  68.  
  69.         try { 
  70.  
  71.             table.put(puts); 
  72.  
  73.             table.flushCommits(); 
  74.  
  75.             puts.clear(); 
  76.  
  77.         } catch (IOException e) { 
  78.  
  79.             e.printStackTrace(); 
  80.  
  81.         } 
  82.  
  83.     } 
  84.  

三、編寫模擬數據Put

向HBase中寫入數據需要構造Put,下面是我構造模擬數據Put的方式,有字符串的生成,我是由mmseg提供的詞典words.dic中隨機讀取一些詞語連接起來,生成一句字符串的,下面的代碼沒有體現,不過很easy,你自己造你自己想要的數據就OK了。

  1. public static Put createPut(String columnFamily) { 
  2.  
  3.         String ss = getSentence(); 
  4.  
  5.         byte[] family = Bytes.toBytes(columnFamily); 
  6.  
  7.         byte[] rowKey = Bytes.toBytes("" + Math.abs(r.nextLong())); 
  8.  
  9.         Put put = new Put(rowKey); 
  10.  
  11.         put.add(family, Bytes.toBytes("DeviceID"), 
  12.  
  13.                 Bytes.toBytes("" + Math.abs(r.nextInt()))); 
  14.  
  15.         ****** 
  16.  
  17.         put.add(family, Bytes.toBytes("Company_mmsegsm"), Bytes.toBytes("ss")); 
  18.  
  19.   
  20.  
  21.         return put; 
  22.  
  23.     } 

當然在運行上面這個程序之前,需要先在Solr里面配置好你需要的列信息,HBase、Solr安裝與配置,它們的基礎使用方法將會在之后的文章中介紹。在這里,Solr的列配置就跟你使用createPut生成的Put搞成一樣的列名就行了,當然也可以使用動態列的形式。

四、直接對Solr性能測試

如果你不想對HBase與Solr的相結合進行測試,只想單獨對Solr的性能進行測試,這就更簡單了,完全可以利用上面的代碼段來測試,稍微組裝一下就可以了。

  1. private static void sendConcurrentUpdateSolrServer(final String url, 
  2.  
  3.             final int count) throws SolrServerException, IOException { 
  4.  
  5.         SolrServer solrServer = new ConcurrentUpdateSolrServer(url, 10000, 20); 
  6.         for (int i = 0; i < count; i++) {      solrServer.add(getInputDoc(PutCreater.createPut(columnFamily))); 
  7.         } 
  8.     } 

希望可以幫助到你規格嚴格-功夫到家。這次的文章代碼又偏多了點,但代碼是解釋思想的***的語言,我的提倡就是盡可能的減少代碼的注釋,盡力簡化你的代碼,使你的代碼足夠的清晰易懂,甚至于相似于偽代碼了,這也是《重構》這本書里所提倡的。

原文鏈接:http://www.cnblogs.com/wgp13x/p/3927979.html

責任編輯:彭凡 來源: 博客園
相關推薦

2017-03-08 10:29:06

HBase大數據存儲

2018-10-29 13:07:15

HBase存儲遷移

2018-09-04 12:03:31

HBase大數據存儲

2015-06-12 14:20:35

2017-12-20 15:10:09

HBaseHadoop數據

2014-04-15 09:30:08

Cassandra\H

2017-08-07 09:39:52

HBase大數據存儲

2017-11-01 14:29:38

2023-10-16 22:13:57

HBase開源數據庫

2023-07-26 08:51:08

大數據服務架構

2023-08-07 09:00:00

2020-09-02 10:17:10

大數據數據分析數據

2017-09-04 17:34:17

HBASESolr查詢

2020-02-02 16:59:31

HBase大數據二級索引

2013-08-08 10:07:43

大數據存儲結構化數據

2022-08-14 14:52:45

數據存儲實踐

2012-08-24 18:31:52

紅帽虛擬化

2019-05-05 09:03:06

HBase大數據存儲數據存儲

2016-12-04 16:46:51

大數據架構機器學習

2018-01-31 18:10:15

數據庫HBase
點贊
收藏

51CTO技術棧公眾號

免费不卡av| 中文字幕免费在线看| 好吊妞视频这里有精品| 亚洲成人午夜影院| 日本视频一区二区在线观看| 中文字幕av久久爽| 黄色亚洲在线| 亚洲天堂男人天堂女人天堂| 亚洲精品手机在线观看| heyzo中文字幕在线| 久久久www免费人成精品| 成人av番号网| 日韩高清免费av| 成人影视亚洲图片在线| 欧美大片顶级少妇| 97公开免费视频| 黑人玩欧美人三根一起进| 国产色产综合产在线视频| 俄罗斯精品一区二区| 欧产日产国产69| 国产精品激情电影| 中文字幕亚洲无线码在线一区| 国产成人精品综合久久久久99| 成人影院入口| 亚洲成人资源网| 曰韩不卡视频| 国产永久av在线| av中文字幕一区| 91精品国产高清久久久久久91裸体| 午夜精品免费观看| 亚洲免费高清| 久久久久久久激情视频| 欧美一级特黄高清视频| 九九免费精品视频在线观看| 精品久久国产老人久久综合| 亚洲欧美手机在线| 欧美黄色a视频| 一本色道亚洲精品aⅴ| 国产二区视频在线| 18+视频在线观看| 亚洲欧洲日产国码二区| 色综合影院在线观看| 日本一区高清| 91在线观看污| 九色91在线视频| 欧美亚洲精品在线观看| 国产98色在线|日韩| 亚洲永久免费观看| 91麻豆国产在线| 日韩成人免费电影| 欧美自拍视频在线观看| 69成人免费视频| 久久精品30| 欧美亚洲日本网站| 久久精品无码av| 丝袜美腿高跟呻吟高潮一区| 日本亚洲欧美三级| 波多野结衣毛片| 奇米色一区二区三区四区| 国产精品99蜜臀久久不卡二区| 一级成人黄色片| 另类天堂av| 国产精品久久久久久久久久久久久 | 激情五月色婷婷| 亚洲日本视频| 欧洲美女免费图片一区| 国产91精品看黄网站在线观看| 亚洲欧美日本视频在线观看| 日本欧美爱爱爱| jizz国产在线| 国产呦精品一区二区三区网站| 亚洲a中文字幕| 黄色小视频免费观看| 99久久精品国产精品久久| 久久精品日韩| 69xxxx欧美| 亚洲精品国产第一综合99久久| 韩国无码av片在线观看网站| 日日夜夜天天综合入口| 午夜精品免费在线观看| 无码aⅴ精品一区二区三区浪潮| 666av成人影院在线观看| 在线观看免费视频综合| 色综合五月婷婷| 国产主播性色av福利精品一区| 亚洲丝袜在线视频| 91传媒免费观看| 亚洲人成在线影院| 国产精品高清免费在线观看| 91麻豆视频在线观看| 不卡高清视频专区| 午夜精品一区二区三区在线观看 | 日韩黄色大片| 亚洲一品av免费观看| 懂色av粉嫩av蜜臀av一区二区三区| 天天天综合网| 91精品国产91久久久久| 中文字幕av网站| 成人动漫中文字幕| 欧美日韩亚洲在线| 中文字幕有码在线视频| 色综合色综合色综合 | 成人性生交大片| 日韩电影天堂视频一区二区| 四虎影院观看视频在线观看 | 在线免费看av片| 成人美女视频在线看| 亚洲v欧美v另类v综合v日韩v| 蜜臀av国内免费精品久久久夜夜| 欧美在线免费视屏| 性活交片大全免费看| 日韩欧美精品综合| 欧洲美女免费图片一区| 午夜精品久久久久久久第一页按摩| 久久亚洲综合色| 996这里只有精品| jizzyou欧美16| 亚洲成人黄色在线观看| 我要看黄色一级片| 日韩精品免费专区| 久久精品日产第一区二区三区乱码| 18视频在线观看网站| 欧美日韩黄色影视| 黄色aaa视频| 日本老熟俱乐部h0930| 99国产精品免费网站| 国产一区二区久久精品| 91蜜桃视频在线观看| 国产精品一区在线| 一区二区视频在线播放| 欧美色片在线观看| 日韩精品视频在线| 日本一区二区不卡在线| 粉嫩一区二区三区在线看| 中国一区二区三区| 欧美日韩破处视频| 伊人成人开心激情综合网| 天堂网一区二区三区| caoporen国产精品视频| 男人天堂a在线| 136国产福利精品导航网址应用| 日韩资源在线观看| 一区二区三区亚洲视频| 国产欧美日韩精品a在线观看| 日韩中文字幕三区| 日韩人体视频| 4444欧美成人kkkk| 天天影院图片亚洲| 欧美视频中文在线看| 中文乱码人妻一区二区三区视频| 韩国欧美一区| 国产一区二区三区四区五区在线| 欧美videosex性欧美黑吊| 欧美videossexotv100| 欧美成人黄色网| 成人午夜av电影| 久久99久久99精品| 日韩中文av| 国产精品电影一区| av在线第一页| 欧美日韩在线播放三区| 最新黄色av网址| 国产黑丝在线一区二区三区| 日韩美女爱爱视频| 亚洲国产网址| 国产精品香蕉国产| av网址在线| 亚洲精品xxxx| 亚洲性猛交富婆| 亚洲丝袜美腿综合| 毛茸茸free性熟hd| 久久这里有精品15一区二区三区| 欧美亚洲免费高清在线观看 | 亚洲一区二区三区久久| 午夜av在线免费观看| 亚洲成人精品久久久| 欧美日韩综合在线观看| 国产精品少妇自拍| 日本成人在线免费观看| 亚洲美女少妇无套啪啪呻吟| 日本高清视频一区二区三区| 青娱乐极品盛宴一区二区| 欧美成人免费网| 亚洲av成人精品一区二区三区在线播放| 色综合久久天天| 性爱在线免费视频| 成人深夜在线观看| 欧美日韩在线成人| 欧美a级一区| 免费在线一区二区| 国产成年精品| 欧美中文字幕第一页| 在线看av的网址| 亚洲国产古装精品网站| 中文在线字幕av| 亚洲综合视频在线| 黄色av免费播放| 丁香另类激情小说| www.这里只有精品| 日韩视频久久| 异国色恋浪漫潭| 欧美极品在线观看| 国产福利不卡| 成人av在线播放| 日韩免费在线播放| 国产美女情趣调教h一区二区| 亚洲欧洲第一视频| 丰满大乳国产精品| 欧美日韩精品是欧美日韩精品| 国产一级一片免费播放| 国产精品免费网站在线观看| 完美搭档在线观看| 国产一区二区三区四区五区入口 | 久久夜色精品亚洲| 成人免费在线播放视频| 久操视频免费看| 成人免费的视频| 天堂av手机在线| 男女激情视频一区| 一本大道熟女人妻中文字幕在线 | 国产精品无码一区二区桃花视频 | 日韩一区中文字幕| 免费看黄色的视频| 91在线视频播放地址| 麻豆短视频在线观看| 韩国精品一区二区| 亚洲国产日韩欧美在线观看| 免费日韩视频| 日本毛片在线免费观看| 99热在线精品观看| 国产精品一色哟哟| 欧美精品日韩| 蜜臀av性久久久久蜜臀av| 色喇叭免费久久综合| 色爱区成人综合网| 欧洲美女日日| 日韩av在线电影观看| 亚洲老女人视频免费| 精品麻豆av| 欧美精品国产白浆久久久久| 超碰97人人在线| aaa国产精品| 国产精品v欧美精品∨日韩| 亚洲综合影院| 91视频网页| gogo久久日韩裸体艺术| 国产高清一区视频| 菁菁伊人国产精品| 国产一区高清视频| 五月国产精品| 日韩精品不卡| 欧美激情偷拍自拍| 日本一级淫片演员| 中出一区二区| 久久在线中文字幕| 99精品国产在热久久婷婷| 奇米影视亚洲色图| 久久高清国产| 亚洲性生活网站| 老司机精品视频在线| 污视频网址在线观看| 国产精品一二三在| yjizz视频| 久久综合色8888| 秋霞网一区二区三区| 中文字幕一区av| 久久精品99国产精| 精品国产乱码久久久久久虫虫漫画| 免费观看一区二区三区毛片| 色哟哟亚洲精品| 一级黄色片网站| 欧美α欧美αv大片| 午夜成人鲁丝片午夜精品| 亚洲视频第一页| 含羞草www国产在线视频| 欧美精品999| 日本成人伦理电影| 91久久伊人青青碰碰婷婷| 欧美挤奶吃奶水xxxxx| 日本在线高清视频一区| 91精品综合| 日本少妇高潮喷水视频| 青青草国产精品97视觉盛宴| 亚洲AV无码久久精品国产一区| av欧美精品.com| 手机av在线不卡| 亚洲一区二区欧美日韩| 中文字幕手机在线视频| 日韩三级视频在线观看| 亚洲三级中文字幕| 久久精品成人欧美大片| 黄色在线免费观看网站| 国产欧美在线观看| 久久久久97| 久久久一二三四| 国产一区二区你懂的| 亚洲一区精品视频在线观看| 成人aa视频在线观看| 亚洲熟女少妇一区二区| 偷拍日韩校园综合在线| 91亚洲欧美激情| 日韩电影中文 亚洲精品乱码| 欧美激情视频在线播放| 38少妇精品导航| 中文字幕av一区二区三区四区| 日本一区美女| 亚洲欧洲午夜| 国产又粗又猛大又黄又爽| 国产日韩精品视频一区| 国产午夜视频在线| 欧美丰满少妇xxxbbb| 九一国产在线| 69久久夜色精品国产69| 欧美日韩黄网站| 亚洲日本欧美在线| 天堂va蜜桃一区二区三区 | 2018中文字幕一区二区三区| 99亚洲男女激情在线观看| 日韩不卡av| 久久黄色网页| 国产高清自拍视频| 亚洲国产裸拍裸体视频在线观看乱了 | 精品噜噜噜噜久久久久久久久试看 | 99久久精品免费精品国产| 男人在线观看视频| 欧美日韩中文一区| 国产午夜在线观看| 奇米4444一区二区三区| 欧美激情15p| 免费看国产一级片| www.欧美亚洲| 国产精品成人av久久| 日韩精品一区二区三区蜜臀| 国产黄色小视频在线| 国产综合久久久久| 日韩毛片视频| 中文字幕在线综合| 国产精品午夜在线| 在线播放一级片| 日韩中文字幕网址| 欧美黄页免费| 综合久久国产| 国产精品88av| 久久久久久久久久久网| 欧美va亚洲va在线观看蝴蝶网| 在线中文免费视频| 成人免费看片网址| 亚洲黄色影片| 国产麻豆天美果冻无码视频| 精品久久香蕉国产线看观看亚洲| 日韩在线观看视频网站| 91国内在线视频| 少妇高潮一区二区三区| av网址在线观看免费| 国产欧美日韩精品在线| 91亚洲欧美激情| 欧美国产精品va在线观看| 极品国产人妖chinesets亚洲人妖| 国产午夜大地久久| 国产亚洲污的网站| 97人妻人人澡人人爽人人精品| 久久综合五月天| av成人资源| 无码人妻丰满熟妇区五十路百度| 国产午夜精品美女毛片视频| 中文在线最新版天堂| 欧美成人黄色小视频| 黄色网一区二区| 91蝌蚪视频在线观看| 自拍视频在线观看一区二区| 精品久久久无码中文字幕| 91国产美女视频| 久久亚洲影视| 日批免费观看视频| 欧美亚洲精品一区| 性欧美1819sex性高清大胸| 国内外成人免费视频| 日本亚洲最大的色成网站www| 午夜精品一区二区三区视频| 精品国产乱码久久久久久1区2区| 欧美xoxoxo| 日本精品免费视频| 久久亚洲精品小早川怜子| 一级aaaa毛片| 97免费在线视频| 色乱码一区二区三区网站| 在线免费看黄色片| 欧美乱妇一区二区三区不卡视频| 色图在线观看| 日日夜夜精品网站| 成人av手机在线观看| 中文字幕第31页| 午夜精品一区二区三区在线视频 | 伊人成人在线观看| 欧美激情精品久久久久久免费印度| 日韩av三区| 国产九九九视频| 欧美丝袜第三区| 国产亚洲成av人片在线观看| 在线国产精品网|