精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产乱子伦三级在线播放| 波多野结衣在线网址| 中文字幕激情小说| 亚洲妇熟xx妇色黄蜜桃| 国产日本精品视频| 亚洲精品系列| 国产一区二区久久精品| 欧美成人福利在线观看| 美女91在线| 亚洲国产欧美国产综合一区| 日韩网站中文字幕| 国产在线不卡视频| 欧美亚洲成人xxx| 女人裸体性做爰全过| 国产一区二区三区不卡av| 欧美体内she精视频| 国产精品视频网站在线观看| 大片免费播放在线视频| 成人性视频免费网站| 国产精品第三页| 国产在线一区视频| 婷婷综合社区| 在线观看欧美成人| 菠萝菠萝蜜网站| 国产美女精品视频免费播放软件| 色综合色综合色综合色综合色综合| 中文字幕精品在线播放 | 欧美色图第一页| 欧美中文字幕在线观看视频| 日本综合在线| 久久久久久久久久久久久久久99 | av五月天在线| 亚洲欧洲高清| 香蕉影视欧美成人| www.一区二区.com| 国产激情在线观看| 国产精品免费人成网站| 日本不卡久久| 欧美午夜黄色| 久久综合色8888| 国产欧美欧洲| 日批视频免费播放| 国产麻豆一精品一av一免费| 成人a在线观看| 在线免费看91| 麻豆国产一区二区| 国产精品你懂得| 午夜精品久久久久久久蜜桃| 国产日韩专区| 日本精品一区二区三区在线| 国产成人在线观看网站| 亚洲精品九九| 91大神福利视频在线| 国产污污视频在线观看| 国产一区二区你懂的| 91黑丝高跟在线| wwwxxx亚洲| 中文精品视频| 欧洲成人性视频| aaaaaa毛片| 老牛嫩草一区二区三区日本| 国产精品露脸自拍| 亚洲视频一区二区三区四区| 蜜臀久久久久久久| 成人免费在线视频网址| aaa级黄色片| 福利视频网站一区二区三区| 国产精品区二区三区日本| 亚洲免费成人网| 成人高清伦理免费影院在线观看| 狠狠干一区二区| 欧美日韩在线精品一区二区三区激情综| 91色视频在线| 青青草成人激情在线| av在线天堂| 亚洲欧美偷拍卡通变态| 欧日韩免费视频| 97成人资源| 欧美伦理视频网站| 国产情侣久久久久aⅴ免费| 精品人人人人| 亚洲视频欧美视频| 黄色片子在线观看| 极品中文字幕一区| 日韩免费观看av| 91精品中文字幕| 成人午夜免费电影| 日韩一二三区不卡在线视频| 黄色免费在线观看| 午夜精品久久久久久久久久 | 亚洲欧美一区二区三区四区| 免费看的黄色录像| 国内精品久久久久久久97牛牛| 7m第一福利500精品视频| 无码久久精品国产亚洲av影片| 国产一区二区不卡老阿姨| 国产一区免费观看| 视频免费一区| 欧美日韩在线免费| 伊人五月天婷婷| 亚洲黄页网站| 欧美巨乳在线观看| 欧美一区二区三区不卡视频| 国产在线麻豆精品观看| 免费看污久久久| a黄色片在线观看| 在线欧美小视频| 亚洲一二三四五| 91精品秘密在线观看| 欧美亚洲另类视频| 亚洲精品国产精品国| 国产午夜精品一区二区三区视频| 成人小视频在线观看免费| 国产综合色在线观看| 亚洲国产精品一区二区久| 欧美性x x x| 日韩成人午夜电影| 韩国一区二区三区美女美女秀| 男人和女人做事情在线视频网站免费观看| 亚洲成在线观看| 想看黄色一级片| 成人影视亚洲图片在线| 欧美在线性爱视频| 亚洲va久久久噜噜噜无码久久| 国产精品成人免费在线| 蜜臀久久99精品久久久酒店新书| 超碰一区二区三区| 蜜月aⅴ免费一区二区三区| 中文字幕观看视频| 国产午夜亚洲精品羞羞网站| 国产精品专区在线| 51精品国产| 久久电影一区二区| 国产精品久久久久久久久毛片| 国产女主播在线一区二区| 国产97在线 | 亚洲| xxxxxhd亚洲人hd| 欧美成年人视频网站| 国产精品久久久久久免费| 国产精品每日更新在线播放网址| 又色又爽又高潮免费视频国产| 色先锋久久影院av| 欧美亚洲在线观看| 亚洲 美腿 欧美 偷拍| 亚洲精品视频一区二区| 午夜影院免费版| 欧美另类视频| 北条麻妃高清一区| 精灵使的剑舞无删减版在线观看| 日韩免费观看高清完整版| 朝桐光av在线| 国产成人丝袜美腿| 亚洲人成无码网站久久99热国产 | 日本三级福利片| 99精品女人在线观看免费视频| 视频在线观看一区二区| 亚洲一区二区三区网站| 亚洲精品免费一二三区| 国产精品嫩草影视| 亚洲国内欧美| 蜜桃999成人看片在线观看| 欧美日韩不卡| 国产成人三级| 欧美在线关看| 国产精品精品| 国产无一区二区| 中文字幕一区二区三区乱码| 成人国产精品| 久久夜色精品国产欧美乱| 国产欧美日韩综合精品一区二区三区| 综合久久久久久| 国产伦精品一区二区三区妓女下载| 欧美黄污视频| 精品中文字幕一区| 日韩美一区二区| 综合色一区二区| 国产成人av一区二区三区| 国产在线美女| 激情影院在线观看| 色综合久久99| 亚洲国产一区在线| 中文字幕乱码在线人视频| 蜜臀av一区| 国产精品99久久久久久www| 国内精品久久久久国产| 亚洲成人久久久| 综合久久中文字幕| 亚洲综合丝袜美腿| 亚洲黄色小说视频| 国产伦精品一区二区三区在线观看 | 久久综合久久综合久久| 亚洲午夜电影在线观看| 国产日韩精品推荐| 亚洲第一二三四区| 久久国产精品偷| 亚洲三级中文字幕| 国产自产2019最新不卡| 久久一区二区精品| 亚洲伊人伊成久久人综合网| 久久久噜噜噜久久久| jzzjzzjzz亚洲成熟少妇| 日韩视频免费观看高清完整版 | 亚洲高清视频免费观看| 中文字幕中文乱码欧美一区二区| 中文字幕乱视频| 久久99国产精品久久99果冻传媒| 免费一级特黄毛片| 午夜激情久久| 欧美日韩一区二 | 精品久久蜜桃| www.久久草.com| 国产精品扒开腿做爽爽爽男男| 麻豆av在线播放| 久久韩国免费视频| 精华区一区二区三区| 亚洲成人中文字幕| 国产丝袜视频在线观看| 欧美午夜电影网| 99久久精品国产亚洲| 亚洲一区免费观看| 国产麻豆视频在线观看| 国产精品麻豆网站| 波多野结衣片子| www.亚洲色图.com| 韩国三级视频在线观看| 国产自产2019最新不卡| www.com黄色片| 天堂成人国产精品一区| 老太脱裤子让老头玩xxxxx| 午夜久久一区| 99精品一区二区三区的区别| 日韩欧美精品一区| 日韩欧美精品在线不卡| 亚洲精品国产精品粉嫩| 精品一区二区视频| 国产主播性色av福利精品一区| wwwxx欧美| 日韩精品一区二区三区中文| 91精品久久久久久久久久久 | 国产经品一区二区| 久久九九精品视频| 亚洲a区在线视频| 欧美成a人片免费观看久久五月天| 国产精品精品久久久久久| 欧美日韩大片| 国产精品91在线| 97人人做人人爽香蕉精品| 国产成一区二区| 日本综合视频| 国产日产欧美精品| 热草久综合在线| 日本精品在线中文字幕| 国产精品欧美日韩| 欧美日韩破处视频| 成人动漫网站在线观看| 精品中文视频| 国产精品二区三区四区| 开心激情综合| 欧美一区二区三区在线免费观看 | 91色porny在线视频| 波多野结衣办公室33分钟| 久久久久久久精| 日本精品久久久久中文| 中文字幕在线免费不卡| 国产探花在线播放| 亚洲韩国精品一区| 青青青国产在线| 欧美日韩一级片网站| 国产黄色片网站| 精品中文视频在线| 午夜在线视频播放| 精品中文字幕视频| 牛牛精品一区二区| 国产精品日韩在线播放| 国内精品视频| 精品九九九九| 成人在线免费小视频| 男女爱爱视频网站| 一本久久知道综合久久| 少妇激情一区二区三区| 国产精品一区二区三区99| 99re这里只有| 欧美国产成人精品| 久久久久久久蜜桃| 色综合色综合色综合| 国产aⅴ一区二区三区| 亚洲精品理论电影| 麻豆tv入口在线看| 51精品在线观看| 高清国产一区二区三区四区五区| 国产伦精品一区二区三区视频孕妇| 香蕉久久精品| 日本免费黄色小视频| 9色精品在线| 欧美视频亚洲图片| 久久亚洲综合色一区二区三区| 欧美日韩黄色网| 色香蕉久久蜜桃| 亚洲精品久久久蜜桃动漫| 一区二区欧美久久| 91色在线看| 91色精品视频在线| 精品一区欧美| 女人帮男人橹视频播放| 免费成人性网站| av直播在线观看| 亚洲午夜激情av| 国产精品美女一区| 亚洲人成人99网站| tube8在线hd| 亚洲影院污污.| 久久精品国产大片免费观看| 99热自拍偷拍| 国产成人av在线影院| 黄色免费一级视频| 在线观看日韩国产| 五月婷婷免费视频| 久久久免费观看视频| 福利一区三区| 在线观看亚洲视频啊啊啊啊| 日日摸夜夜添夜夜添亚洲女人| 熟妇高潮一区二区| 亚洲精品国产无天堂网2021| 亚洲熟妇无码久久精品| 亚洲天堂影视av| 久久久一本精品| 久久国产精品99久久久久久丝袜| 黄色日韩在线| 成年人看片网站| 依依成人精品视频| a天堂视频在线| 久久成人精品电影| 亚洲视频资源| 国产a级片免费看| 久久精品久久精品| 日本猛少妇色xxxxx免费网站| 在线看不卡av| 国产系列电影在线播放网址| 日韩av高清不卡| 欧美日韩性在线观看| 黄色高清无遮挡| 国产天堂亚洲国产碰碰| 国产又粗又猛又黄视频| 亚洲男人天堂2024| 国产精品专区免费| 欧美一区二区三区在线播放| 视频一区视频二区中文字幕| 国产小视频自拍| 在线观看精品一区| 国产在线视频资源| 国产精品欧美日韩一区二区| 精品日韩一区| 久热在线视频观看| 亚洲免费av观看| 国内精品国产成人国产三级| 欧美国产日韩xxxxx| 欧美三级自拍| 久久久久久久久久久久久国产精品 | 欧美日韩精品一本二本三本| 成人欧美精品一区二区| 天天影视涩香欲综合网| 视频三区在线观看| 国产精品嫩草影院一区二区| 在线观看国产精品入口| 日本少妇xxxx软件| 精品久久久久久久久久久| 欧美18xxxxx| 国产精品一区=区| 欧美精品97| 日本xxxx裸体xxxx| 91电影在线观看| 国产二区三区在线| 国产一区二区视频在线免费观看| 亚洲一区二区动漫| 激情五月深爱五月| 欧美www视频| 激情都市亚洲| 日韩精品第1页| 91丝袜高跟美女视频| 少妇又紧又色又爽又刺激视频 | 激情小说亚洲| 欧美另类videosbestsex日本| 99久久99久久精品免费观看 | 精品免费日韩av| 日韩av大片站长工具| 天堂av在线中文| 91啪亚洲精品| 国产欧美一级片| 日韩美女在线看| 国产精品porn| 香蕉视频久久久| 欧美v国产在线一区二区三区| 欧美精品日日操| 久久久99精品视频| 国产片一区二区三区| 好男人www在线视频| 国产精品一区电影| 中文在线不卡| 黄色一级视频在线观看| 中文字幕日韩专区|