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

記錄一次 Hbase 線上問題的分析和解決

大數據
本篇文章,我們回顧一次 hbase 線上問題的分析和解決 - KeyValue size too large,總結下背后的知識點,并分享一下查看開源組件不同版本差異點的方法。

[[439936]]

大家好,我是明哥!

本篇文章,我們回顧一次 hbase 線上問題的分析和解決 - KeyValue size too large,總結下背后的知識點,并分享一下查看開源組件不同版本差異點的方法。

希望大家有所收獲,謝謝大家!

01 Hbase 簡介

Hbase 作為 hadoop database, 是一款開源,分布式易擴展,面向大數據場景的,多版本,非關系型,數據庫管理系統,是 Google Bigtable 的 JAVA 版開源實現。

Hbase 的底層存儲引擎是 HDFS,可以在普通商業級服務器硬件(即常說的 x86 架構的服務器)的基礎上,提供對超大表(表的數據量可以有百萬行,每行的列數可以有百萬級)的隨機實時讀寫訪問。

Hbase具有以下特征:

  • 模塊化的線性擴展性;
  • 強一致性并發讀寫支持;
  • 可配置的表的自動 sharding;
  • 表分區在 RegionServer 間的自動 failover;
  • 基于 Block cache 和 Bloom 過濾器的實時讀取;
  • 基于 server 端過濾器的查詢謂詞下推;

正是因為 Hbase 的上述特征,Hbase 在各行各業有許多線上應用案列,可以說是 NoSql 數據庫的一個典型代表:

  • 在各種超大數據量級
  • 在需要實時并發讀寫支持
  • 在表的結構比較靈活(即有很多稀疏列:有很多行和很多列,但每一行只有眾多列中的少數列有值)
  • 筆者就在車聯網場景下重度使用過 Hbase

題外話:

Nosql 數據庫有幾大類,幾個典型代表是:Hbase, ElasticSearch, MongoDb;

有個有趣的現象,筆者發現國內 Hbase 使用的多,而國外似乎 Cassandra 使用的多。

02 一次線上 Hbase 問題的問題現象

某線上應用使用了 Hive 到 Hbase 的映射表,在使用 insert overwrite 從 hive 表查詢數據并插入 HBASE 表時,發生了錯誤。

通過查看 HIVE 背后 YARN 上的作業的日志,發現主要錯誤信息是 java.lang.IllegalArgumentException: KeyValue size too large,詳細報錯截屏和日志如下:

  1. 2020-04-08 09:34:38,120 ERROR [main] ExecReducer: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row (tag=0) {"key":{"_col0":"0","_col1":"","_col2":"2020-04-08","_col3":"joyshebaoBeiJing","_col4":"105","_col5":"北京,"},"value":null
  2.     at org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:253) 
  3.     at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:444) 
  4.     at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:392) 
  5.     at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
  6.     at java.security.AccessController.doPrivileged(Native Method) 
  7.     at javax.security.auth.Subject.doAs(Subject.java:422) 
  8.     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1924) 
  9.     at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 
  10. Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.IllegalArgumentException: KeyValue size too large 
  11.     at org.apache.hadoop.hive.ql.exec.GroupByOperator.processOp(GroupByOperator.java:763) 
  12.     at org.apache.hadoop.hive.ql.exec.mr.ExecReducer.reduce(ExecReducer.java:244) 
  13.     ... 7 more 
  14. Caused by: java.lang.IllegalArgumentException: KeyValue size too large 
  15.     at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:1577) 
  16.     at org.apache.hadoop.hbase.client.BufferedMutatorImpl.validatePut(BufferedMutatorImpl.java:158) 
  17.     at org.apache.hadoop.hbase.client.BufferedMutatorImpl.mutate(BufferedMutatorImpl.java:133) 
  18.     at org.apache.hadoop.hbase.client.BufferedMutatorImpl.mutate(BufferedMutatorImpl.java:119) 
  19.     at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1085) 
  20.     at org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat$MyRecordWriter.write(HiveHBaseTableOutputFormat.java:146) 
  21.     at org.apache.hadoop.hive.hbase.HiveHBaseTableOutputFormat$MyRecordWriter.write(HiveHBaseTableOutputFormat.java:117) 
  22.     at org.apache.hadoop.hive.ql.io.HivePassThroughRecordWriter.write(HivePassThroughRecordWriter.java:40) 
  23.     at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:717) 
  24.     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) 
  25.     at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84) 
  26.     at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815) 
  27.     at org.apache.hadoop.hive.ql.exec.GroupByOperator.forward(GroupByOperator.java:1007) 
  28.     at org.apache.hadoop.hive.ql.exec.GroupByOperator.processAggr(GroupByOperator.java:818) 
  29.     at org.apache.hadoop.hive.ql.exec.GroupByOperator.processKey(GroupByOperator.java:692) 
  30.     at org.apache.hadoop.hive.ql.exec.GroupByOperator.processOp(GroupByOperator.java:758) 
  31.     ... 8 more 

03 該線上 Hbase 問題的問題原因

其實以上作業的報錯日志還是比較詳細的:Caused by: java.lang.IllegalArgumentException: KeyValue size too large at org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:1577);

  • 即報錯詳細信息是:KeyValue size too large;
  • 報錯來自 Hbase (而不是 HIVE)的類,從類名看是 hbase 客戶端在對待插入數據校驗時發現了錯誤:org.apache.hadoop.hbase.client.HTable.validatePut(HTable.java:1577);

熟悉 Hbase 的小伙伴(其實不熟悉 Hbase 的小伙伴,也能從報錯信息和報錯類上猜到一點點),從以上信息能夠猜到,是 Hbase 對每條記錄的 KyeValue 的大小做了限制,當實際插入的 KeyValue 的大小超過該大小限制閾值時,就會報上述錯誤。

什么是 KeyValue 呢?

  • 這涉及到 Hbase 的存儲結構,Hbase 內部是通過 KeyValue 結構來存儲表數據的;
  • 大致上大家可以認為:某個 KeyValue 對應的是 Hbase 大寬表中的某行的某列;
  • 每個 KeyVlue 內部內容包含:rowKey+CF(ColumnFamily)+CQ(Column qualifier)+Timestamp+Value;
  • 詳細說明見官方文檔,截圖如下:

Hbase 為什么要限制每個 KeyValue 的大小呢?

  • 究其原因,是因為 Hbase 需要在 hdfs 存儲引擎(基于分磁盤)之上提供對數據實時讀寫的支持;
  • Hbase 在內部數據讀寫時使用了 LSM 數據結構 (Log-Structured-Merge Tree),這背后涉及到了大量對內存的使用(讀數據時使用 BlockCache,寫數據時使用 memStore),也涉及到了內存數據的異步 flush 和 hfile 文件的異步 compaction;(當然為了容錯,又涉及到了 wal Hlog);
  • 因為涉及到基于內存提供對數據讀寫的支持,所以需要限制使用的內存的總大小,由于內存 BlockCache 中緩存的數據是以Block 為單位的,而Block內部存儲的是一個個 KeyValue, 所以從細節來講也需要限制每個 KeyValue的大小;
  • 這里的 Block 是 Hbase的概念,不是 HDFS Block; (Hbase 每個 Block 的默認大小是 64KB, HDFS 每個BLOCK的默認大小一般是 128MB);

04 該線上 Hbase 問題的擴展知識-不同 Hbase 版本相關的參數

Hbase 作為一個流行的 Nosql數據庫,推出十多年來,目前有多個經典版本:

  • 0.98;-- 該版本比較老了,部分遺留線上應用還有使用該版本的;
  • 1.2.x;(1.4.x) -- 1.2.x 和 1.4.x 都是1.x 系列下用的比較多的穩定版本
  • 2.1.x(2.4.x) -- 2.1.x 和 2.4.x 都是2.x系列下用的比較多的穩定版本
  • 3.0.0-alpha-1 -- 3.x 系列目前還不是穩定版

對應該 “KeyValue size too large” 問題,不同版本推出了不同的相關參數:

  • 在hbase-1.4 以前的版本中,(包括hbase 1.2.0-cdh5.14.2 和 hbase 1.2.0-cdh5.16.2),只有一個客戶端參數 hbase.client.keyvalue.maxsize;
  • 在 hbase-1.4 及以后版本中,除了該客戶端參數 hbase.client.keyvalue.maxsize,還有一個服務端參數 hbase.server.keyvalue.maxsize;

其實,由于筆者并沒有持續跟進 HBASE 社區對 feautre 和 issue相關的討論(大部分使用者可能都不會),所以也是在查閱不同版本的官方文檔時留意到了上述細節,然后通過在本地 IDEA 中使用 git->show history 對比不同版本 HBASE 中 hbase-default.xml 的源碼,進而確認到了JIRA記錄號,并在JIRA中確認了這點:

正如該 JIRA 中描述:

HBASE-18043:

For sake of service protection we should not give absolute trust to clients regarding resource limits that can impact stability, like cell size limits. We should add a server side configuration that sets a hard limit for individual cell size that cannot be overridden by the client. We can keep the client side check, because it's expensive to reject a RPC that has already come in.

所以,不同版本中遇到不同情況,可能會包的錯誤主要有兩個:

  • 情況1:Hbase KeyValue size too large
  • 情況2:Cell with size 25000046 exceeds limit of 10485760 bytes

報錯情況一和報錯情況而,問題原因如下:

報錯情況一:沒有配置客戶端參數 hbase.client.keyvalue.maxsize,且實際插入的 keyvalue 的大小超過了該客戶端參數的默認大小限制;

報錯情況二:程序設置調大了客戶端參數 hbase.client.keyvalue.maxsize,但沒有調大服務端參數 hbase.server.keyvalue.maxsize,且實際插入的 keyvalue 小于該客戶端參數,但大于該服務端參數:

報錯情況二,某次作業日志:

  1. Exception in thread "main"org.apache.hadoop.hbase.DoNotRetryIOException: 
  2.  org.apache.hadoop.hbase.DoNotRetryIOException: Cell with size 25000046 exceeds limit of 10485760 bytes  at org.apache.hadoop.hbase.regionserver.RSRpcServices.checkCellSizeLimit(RSRpcServices.java:944) 
  3.     at org.apache.hadoop.hbase.regionserver.RSRpcServices.mutate(RSRpcServices.java:2792) 
  4.     at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:42000) 
  5.     at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) 
  6.     at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:130) 
  7.     at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) 
  8.     at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) 

報錯情況二,某次報錯截圖:

05 該線上 Hbase 問題的解決方案

知道了問題原因,其實解決方法也就呼之欲出了,在確認要插入的業務數據沒有異常,確實需要調大 keyvalue 限制的閾值時,大體總結下,有以下解決辦法:

  • 方法一:修改配置文件 hbase-site.xml, 調大客戶端參數 hbase.client.keyvalue.maxsize 的值;
  • 方法二:如果使用了 HBASE JAVA API, 可以修改代碼使用 configuration 對象修改此客戶端參數的默認配置:Configuration conf = HBaseConfiguration.create();
  • conf.set("hbase.client.keyvalue.maxsize","20971520");
  • 方法三:如果使用了 HIVE,可以在客戶端覆蓋該客戶端參數:set hbase.client.keyvalue.maxsize=0; (hive sql中)
  • 說明:一般該客戶端參數和服務端參數,默認值應該配置一樣;當更改服務端參數時,需要重啟服務端才能生效;當更改客戶端參數時,不同客戶端設置的值可以不同,且不需要重啟服務端;
  • 在CDH中配置更改截圖如下:

06 該線上 Hbase 問題的技術背景

  • Hbase 內部是通過 KeyValue 結構來存儲表數據的,某個 KeyValue 對應的是 Hbase 大寬表中的某行的某列,每個 KeyVlue 內部內容包含:rowKey+CF(ColumnFamily)+CQ(Column qualifier)+Timestamp+Value;
  • hbase 在進行 PUT 操作的時候,會逐個檢查要插入的每個列 (keyvalue cell) 的大小,當其大小大于 maxKeyValueSize 時,就會拋出異常,拒絕寫入;
  • maxKeyValueSize 大小相關的參數,在hbase-1.4 以前的版本中,(包括hbase 1.2.0-cdh5.14.2 和 hbase 1.2.0-cdh5.16.2),只有一個客戶端參數 hbase.client.keyvalue.maxsize;
  • maxKeyValueSize 大小相關的參數,在 hbase-1.4 及以后版本中,除了該客戶端參數 hbase.client.keyvalue.maxsize,還有一個服務端參數 hbase.server.keyvalue.maxsize;
  • Hbase 限制每個 KeyValue 大小的原因,主要在于:
    • Hbase 需要在 hdfs 存儲引擎(基于分磁盤)之上提供對數據實時讀寫的支持,因此 Hbase 在內部數據讀寫時使用了 LSM 數據結構 (Log-Structured-Merge Tree),這背后涉及到了大量對內存的使用(讀數據時使用 BlockCache,寫數據時使用 memStore),也涉及到了內存數據的異步 flush 和 hfile 文件的異步 compaction;(當然為了容錯,又涉及到了 wal Hlog);
    • 因為涉及到基于內存提供對數據讀寫的支持,所以需要限制使用的內存的總大小,由于內存 BlockCache 中緩存的數據是以Block 為單位的,而Block內部存儲的是一個個 KeyValue, 所以從細節來講也需要限制每個 KeyValue的大小;
    • 這里的 Block 是 Hbase的概念,不是 HDFS Block; (Hbase 每個 Block 的默認大小是 64KB, HDFS 每個BLOCK的默認大小一般是 128MB);
  • 該客戶端參數 hbase.client.keyvalue.maxsize,和服務端參數hbase.server.keyvalue.maxsize,集群級別的默認配置推薦保持一致,且不推薦在集群級別配置這兩個參數為0或更小(即禁用大小檢查),因為此時可能會造成某個cell 存很大的數據比如 1G,此時集群性能就會大打折扣;
  • 服務端參數只能在服務端進行配置,且配置后要重啟服務端的 hbase, 其做用是 “This is a safety setting to protect the server from OOM situations.”;
  • 客戶端參數可以在服務端進行全局默認配置,也可以在客戶端進行定制配置,不同客戶端設置的值可以不同,但不能大于服務端的值,且客戶端配置后不需要重啟服務端,其含義是:一個KeyValue實例的最大size(一個KeyValue在io時是不能進一步分割的);
  • 客戶端參數,具體需要設置為多大,需要根據業務允許的最大keyValue是多少來進行配置,默認是10M,一般是以默認值10M為基礎,如果有客戶遇到以上報錯,且實際的KEYVALUE也不是業務臟數據,就調大1倍到20MB看看;
  • 在通過hive外表使用 HBaseStorageHandler 向 HBASE 寫數據時,可以直接在beeline中更改配置客戶端參數 (set hbase.client.keyvalue.maxsize=10485760),不需要重啟hbase服務端;
  • 在探究某個開源組件的某個類或配置文件,在不同版本的變化歷史時,可以通過 git clone 在本地克隆創建 git repository,然后在本地 IDEA 中通過使用命令 git->show history 對比不同版本中類或配置文件的,進而確認到 JIRA 記錄號,并在JIRA中確認相關細節;
  • 更多關于hbase數據存儲結構的細節:

 

  • hbase 中的數據,可以有多個columnFamily, 每個 columnFamily 內部可以有多個column;
    • 每個 ColumnsFamily 落地到hdfs上的文件是 hfile/storeFile, storeFile 是由 data block組成的(block 是IO和壓縮的基本單位,默認64KB);(Within an HFile, HBase cells are stored in data blocks as a sequence of KeyValues;KeyValue instances are aggregated into blocks, which are indexed and Indexes also have to be stored; Blocksize is configurable on a per-ColumnFamily basis);
    • 每個 block 內部存儲了多個columns,每個column都是以 keyvalue 的形式存儲的,每個keyvalue的大小受hbase.clent.keyvalue.maxsize/hbase.server.keyvalue.maxsize限制的;
    • compression and DATA BLOCK ENCODING doesn't help with the cell size check, as compress and data block encoding happens when flush memstore to hfile and compaction of hfile;
    • HBase supports several different compression algorithms which can be enabled on a ColumnFamily. Data block encoding attempts to limit duplication of information in keys, taking advantage of some of the fundamental designs and patterns of HBase, such as sorted row keys and the schema of a given table. Compressors reduce the size of large, opaque byte arrays in cells, and can significantly reduce the storage space needed to store uncompressed data.

 

責任編輯:武曉燕 來源: 明哥的IT隨筆
相關推薦

2019-09-10 10:31:10

JVM排查解決

2020-11-16 07:19:17

線上函數性能

2021-11-23 21:21:07

線上排查服務

2024-10-10 15:32:51

2025-05-15 10:01:22

HBase數據壓縮大數據

2024-03-18 09:10:00

死鎖日志binlog

2023-03-29 09:36:32

2018-01-15 14:50:49

APP轉讓App賬號

2023-01-04 18:32:31

線上服務代碼

2019-04-15 13:15:12

數據庫MySQL死鎖

2021-04-13 18:17:48

Hbase集群配置

2011-04-07 11:20:21

SQLServer

2020-05-04 11:04:46

HTTP劫持寬帶

2024-10-15 09:27:36

2020-09-16 08:26:18

圖像定位尺寸

2022-07-11 13:58:14

數據庫業務流程系統

2020-11-16 12:35:25

線程池Java代碼

2023-01-16 14:49:00

MongoDB數據庫

2022-06-06 11:31:31

MySQL數據查詢

2010-09-07 11:16:14

SQL語句
點贊
收藏

51CTO技術棧公眾號

成人久久18免费网站图片| 精品99999| 中文字幕成人一区| 特黄特黄一级片| 日本高清成人vr专区| 不卡一卡二卡三乱码免费网站| 69精品小视频| 欧美成人久久久免费播放| 久久免费精品| 在线免费观看视频一区| 91看片淫黄大片91| 秋霞av在线| 国产成人av在线影院| 国产成人精品a视频一区www| 在线观看成人毛片| 欧美**vk| 日韩精品最新网址| 深夜黄色小视频| 无码精品人妻一区二区| 欧美aⅴ一区二区三区视频| 欧美精品久久久久久久| 国产黄色录像视频| 美女呻吟一区| 日韩欧美资源站| 男人的天堂日韩| 国产蜜臀在线| 亚洲色图.com| 欧美激情www| 免费av一级片| 国产成人亚洲综合a∨猫咪| 国产精品第一页在线| 韩国av免费观看| 日本成人精品| 欧美午夜精品电影| 欧美一级片中文字幕| 丁香高清在线观看完整电影视频| 一区在线观看视频| 亚洲国产精品www| 国产一区二区三区福利| 99久久精品国产精品久久| 欧美成人精品h版在线观看| 欧美熟妇激情一区二区三区| 成人小电影网站| 亚洲综合区在线| 久久精品在线免费视频| 人人干在线视频| 久久精品人人做人人爽人人| 国产亚洲精品久久飘花| 六月婷婷中文字幕| 丁香激情综合国产| 亚洲一区二区免费| 精品无码人妻一区二区三区 | 亚洲精品欧美精品| 国产最新视频在线| 国产日韩影视精品| 亚洲精品一区二区毛豆| av影片在线看| 国产精品网站导航| 亚洲最大色综合成人av| 日本免费视频在线观看| 亚洲人成网站色在线观看| 一区二区三区四区久久| 国产写真视频在线观看| 亚洲免费在线播放| www.一区二区.com| av2020不卡| 粉嫩av一区二区三区免费野| 免费看一级大黄情大片| 亚洲黄色中文字幕| 在线影院国内精品| 亚洲免费999| 99久久99九九99九九九| 日韩欧美一区电影| 稀缺小u女呦精品呦| 欧美一性一交| 亚洲最大在线视频| 中文字幕美女视频| 欧美精品三级| 欧美亚洲成人xxx| 日本一道本视频| 97人人精品| 久久99久久99精品中文字幕| 国产乡下妇女做爰视频| 免费日韩av| 成人精品一区二区三区| www.精品视频| 久久品道一品道久久精品| 少妇精品久久久久久久久久| 色网站在线看| 亚洲成国产人片在线观看| 116极品美女午夜一级| 久久夜夜操妹子| 欧美一区二区三区色| 国产xxxx视频| 欧美日韩在线二区| 精品国产一区二区三区久久久蜜月 | 久久久一本精品99久久精品| 成年人视频在线看| 亚洲自拍偷拍欧美| 熟妇人妻无乱码中文字幕真矢织江 | 午夜片欧美伦| 亚洲精品日韩丝袜精品| аⅴ天堂中文在线网| 国产一区二区三区四区三区四| 欧美在线视频一区二区| 国产熟女精品视频| 久久你懂得1024| 成人在线视频一区二区三区| 国产 日韩 欧美一区| 午夜精品一区二区三区免费视频 | 久久久久久久| 日韩欧美国产系列| 欧洲女同同性吃奶| 欧美欧美全黄| 国产欧美精品一区二区三区介绍| www.国产com| 国产精品自拍在线| 日韩av一级大片| 日本精品600av| 欧美日韩一区二区三区免费看| 插我舔内射18免费视频| 91亚洲国产| 国产精国产精品| 天天色综合久久| 亚洲黄网站在线观看| 亚洲福利精品视频| 少妇精品导航| 97热精品视频官网| 精品国产九九九| 国产精品视频一二三| 高清免费日韩| 免费观看黄色av| 成人欧美一区二区三区小说| 久久久噜噜噜www成人网| 亚洲一区二区三区四区电影| 亚洲第一国产精品| 中国黄色片视频| 亚洲一本二本| 91中文字幕在线| 免费av网站在线观看| 欧美三级韩国三级日本一级| 日本xxx在线播放| 日韩香蕉视频| 国产精品一区二区三区不卡| 污污的网站在线免费观看| 欧美精品久久99久久在免费线| 波多野在线播放| 国产乱码精品| 欧美日韩系列| 日韩av超清在线观看| 亚洲免费精彩视频| 日日夜夜操视频| 91亚洲永久精品| 久草热视频在线观看| 美女一区二区在线观看| 97在线视频国产| 亚洲 欧美 自拍偷拍| 黑人精品xxx一区| 欧美多人猛交狂配| 久久亚洲不卡| 亚洲va欧美va国产综合剧情| 免费黄色电影在线观看| 91精品久久久久久久久99蜜臂| 天天操天天摸天天舔| 国产曰批免费观看久久久| 天天操天天干天天玩| 筱崎爱全乳无删减在线观看| 日韩av综合网站| 国产精品21p| 国产亚洲综合av| 亚洲综合欧美在线| 综合色一区二区| 国产日韩欧美一区二区三区四区| 99thz桃花论族在线播放| 精品亚洲一区二区三区四区五区| 免费黄色片视频| 亚洲三级在线看| 国产精品一区二区无码对白| 午夜综合激情| 伊人av成人| 国内自拍欧美| 国产激情久久久| 亚洲妇熟xxxx妇色黄| 日韩av网站大全| 一本色道久久综合精品婷婷| 亚洲一二三级电影| 国产交换配乱淫视频免费| 久久国产精品第一页| 国产尤物av一区二区三区| 一区二区小说| 亚洲一区二区中文字幕| 在线手机中文字幕| 久久五月情影视| 色视频在线观看免费| 欧美男女性生活在线直播观看| 国产精品a成v人在线播放| 国产偷国产偷精品高清尤物| 能看毛片的网站| 性感少妇一区| www.国产亚洲| 欧美系列电影免费观看| 91精品国产99| 麻豆传媒在线免费| 亚洲国产精品成人精品| 91av久久久| 一本一道久久a久久精品综合蜜臀| 亚洲精品卡一卡二| 九九**精品视频免费播放| 亚洲精品久久久久久久蜜桃臀| 日本一区二区三区视频| 国产欧美日韩伦理| 精品国产鲁一鲁****| 国产成人精品网站| а√天堂中文资源在线bt| 色av中文字幕一区| 水莓100在线视频| 日韩午夜激情av| 一级黄色片视频| 91福利在线播放| 国产 日韩 欧美 在线| 亚洲精品国产精华液| 日本成人免费在线观看| 久久久三级国产网站| 少妇熟女视频一区二区三区| 经典三级在线一区| 午夜视频你懂的| 午夜在线视频一区二区区别| 国产乱人伦精品一区二区三区| 久久在线免费| 欧美一区亚洲二区| 国产美女撒尿一区二区| 亚洲综合在线做性| 福利一区三区| 国产在线精品播放| 成人网ww555视频免费看| 欧美在线视频一区二区| 在线天堂新版最新版在线8| 91精品国产乱码久久久久久蜜臀| 女人天堂av在线播放| 九九久久久久99精品| 成人a在线视频免费观看| 中文字幕亚洲综合久久筱田步美| 国产精品无码2021在线观看| 亚洲乱码一区av黑人高潮| 三级在线电影| 亚洲男人天堂2019| 麻豆导航在线观看| 亚洲欧美日韩精品| 高清福利在线观看| 中文字幕亚洲一区在线观看| 婷婷成人激情| 久久久91精品国产| free性欧美hd另类精品| 欧美精品少妇videofree| 97caopor国产在线视频| 久精品免费视频| 国内老司机av在线| 91国产精品视频在线| 色综合亚洲图丝熟| 日韩一区二区三区国产| 欧美日韩在线看片| 久久在线视频在线| 美女精品视频| 6080yy精品一区二区三区| 人人视频精品| 国产欧美久久一区二区| 精品国产亚洲日本| 国产精品二区在线观看| 久久精品福利| 日韩高清三级| 一区二区中文字| 一卡二卡三卡视频| 99这里有精品| 欧美午夜aaaaaa免费视频| 激情成人午夜视频| 亚洲av成人精品一区二区三区| 久久看人人爽人人| 人与动物性xxxx| 亚洲一线二线三线久久久| 日韩免费视频一区二区视频在线观看| 色菇凉天天综合网| 国产欧美综合视频| 日韩大片在线观看视频| 福利视频在线导航| 不卡av在线播放| 这里有精品可以观看| 国产欧美一区二区三区在线 | 国产精品xxx在线观看www| 日韩一级电影| 91手机视频在线| 亚洲少妇自拍| 日本中文字幕二区| 91亚洲资源网| 欧美精品一区二区成人| 91久久精品日日躁夜夜躁欧美| 精品人妻一区二区三区三区四区| 日韩精品999| av片在线观看| 国产精品av免费在线观看| 中文字幕亚洲在线观看| 欧美综合77777色婷婷| 欧美日韩四区| 中国黄色片免费看| 91免费看片在线观看| 日韩在线观看视频一区二区| 91国偷自产一区二区开放时间 | 日韩极品精品视频免费观看| 黄网页在线观看| 国产999精品久久久| 波多野结衣欧美| 中文网丁香综合网| 丝袜美腿亚洲一区二区图片| www.com日本| 成人欧美一区二区三区视频网页| 在线永久看片免费的视频| 精品美女一区二区| 黄色在线免费看| 国产精品69久久| 欧美综合精品| 日本wwwcom| 国产在线观看一区二区| 亚洲欧美va天堂人熟伦 | 中文字幕在线播放不卡| 亚洲国产精品专区久久| 欧美男男video| 亚洲va男人天堂| 91九色精品| 400部精品国偷自产在线观看| 久久久xxx| 特级西西人体4444xxxx| 亚洲一区二区三区在线看| 国产精品毛片一区二区在线看舒淇| 精品1区2区3区| 免费动漫网站在线观看| 91干在线观看| 欧美影院天天5g天天爽| 日本午夜激情视频| 成人动漫一区二区| 久久精品亚洲无码| 精品欧美一区二区久久| 新版中文在线官网| 99re视频在线| 亚洲人成精品久久久 | 免费影院在线观看一区| aⅴ色国产欧美| 双性尿奴穿贞c带憋尿| 精品毛片网大全| 亚州av在线播放| 欧美一级淫片播放口| 亚洲国产网址| 欧美精品第三页| 国产日韩欧美精品一区| 日本欧美www| 中文字幕日本精品| 日韩大陆av| 国内视频一区二区| 国产欧美不卡| 色欲av无码一区二区三区| 色久综合一二码| 97人人在线| 国产欧美在线播放| 欧美二区不卡| 中文字幕乱码一区| 一本大道久久a久久综合婷婷| 免费人成黄页在线观看忧物| 国产精品福利片| 久久精品影视| 99久久久无码国产精品性波多| 激情成人中文字幕| 国产三区四区在线观看| 国产精品中文字幕久久久| 亚洲最大黄网| 亚洲色图14p| 欧美日韩亚洲国产综合| 宅男在线观看免费高清网站| 精品免费二区三区三区高中清不卡| 性欧美xxxx大乳国产app| 日本美女xxx| 日韩欧美一二三| 涩涩视频网站在线观看| 在线免费观看成人网| 成人在线视频一区二区| 国产视频1区2区| 亚洲福利视频久久| 午夜精品成人av| 51xx午夜影福利| 久久精品一区二区三区四区 | 亚洲第一精品电影| 天天综合网天天| 亚洲高潮无码久久| 91视频免费看| 国产三级第一页| 日本韩国在线不卡| 欧美成人一品| 农村老熟妇乱子伦视频| 亚洲激情视频在线播放| 性欧美video另类hd尤物| 国产精品后入内射日本在线观看| 国产精品久久久久久久久晋中| 日本精品一二区|