亚洲春色欧美激情

    1. <form id=WZeJxaBel><nobr id=WZeJxaBel></nobr></form>
      <address id=WZeJxaBel><nobr id=WZeJxaBel><nobr id=WZeJxaBel></nobr></nobr></address>

      码迷,mamicode.com
      首頁 > 其他好文 > 詳細

      關于hive核心

      時間:2021-07-26 16:38:58      阅读:0      評論:0      收藏:0      [點我收藏+]

      標簽:編程   mod   ini   not work   表達式   分區   numbers   效率   安全   

      一、DDL數據定義

      1、创建數據庫

      1)创建一个數據庫,數據庫在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db。

      hive (default)> create database db_hive;
      

      2)避免要创建的數據庫已经存在错误,增加 if not exists 判断。(标准写法)

      hive (default)> create database db_hive;
      
      FAILED:  Execution   Error,   return   code  1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database db_hive already exists
      
      hive (default)> create database if not exists db_hive;
      

      3)创建一个數據庫,指定數據庫在 HDFS 上存放的位置

      hive (default)> create database db_hive2 location ‘/db_hive2.db‘;
      

      2、查詢數據庫

      显示數據庫

      1.显示數據庫

      hive> show databases;
      

      2.过滤显示查詢的數據庫

      hive> show databases like ‘db_hive*‘; 
      
      OK 
      db_hive 
      db_hive_1
      
      查看數據庫详情

      1.显示數據庫信息

      hive> desc database db_hive; 
      OK 
      db_hive		hdfs://master:8020/usr/hive/warehouse/db_hive.db	root	USER
      

      2.显示數據庫詳細信息,extended

      hive> desc database extended db_hive; 
      OK
      db_hive		hdfs://master:8020/usr/hive/warehouse/db_hive.db	root	USER
      
      切换当前數據庫
      hive (default)> use db_hive;
      

      3、修改數據庫

      用户可以使用 ALTER DATABASE 命令为某个數據庫的 DBPROPERTIES 设置键-值对属性值,来描述这个數據庫的属性信息。

      數據庫的其他元数据信息都是不可更改的,包括數據庫名和數據庫所在的目录位置。

      hive (default)>alter hive set database dbproperties(‘createtime‘=‘20200830‘);
      

      在 hive 中查看修改结果

      hive> desc database extended db_hive;
      
      db_name comment location owner_name owner_type parameters 
      db_hive hdfs://hadoop102:8020/user/hive/warehouse/db_hive.db chaosUSER {createtime=20200830}
      

      4、删除數據庫

      1.删除空數據庫

      hive>drop database db_hive2;
      

      2.如果删除的數據庫不存在,最好采用 if exists 判断數據庫是否存在

      hive> drop database db_hive;
      
      FAILED: SemanticException [Error 10072]: Database does not exist: db_hive
      
      hive> drop database if exists db_hive2;
      

      3.如果數據庫不为空,可以采用 cascade 命令,强制删除

      hive> drop database db_hive;
      
      FAILED: Execution   Error,   return   code  1 from org.apache.hadoop.hive.ql.exec.DDLTask.
      
      InvalidOperationException(message:Database db_hive is not empty. One or more tables exist.) hive> drop database db_hive cascade;
      

      5、創建表

      1)建表語句
      CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
      
        [(col_name data_type [COMMENT col_comment], ...)]
      
        [COMMENT table_comment]
      
        [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
      
        [CLUSTERED BY (col_name, col_name, ...)
      
          [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
      
        [ROW FORMAT row_format]
      
        [STORED AS file_format]
      
        [LOCATION hdfs_path]
      
      2)字段解釋
      ?CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常
      ?EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到hadfs指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。
      ?LIKE 允许用户复制现有的表结构,但是不复制数据
      ?COMMENT可以为表与字段增加注释描述
      ?PARTITIONED BY  创建分區表,指定分區
      ?ROW FORMAT 
        DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char] 
          MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char] 
          | SERDE serde_name [WITH SERDEPROPERTIES 
          (property_name=property_value, property_name=property_value, ...)] 
        用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。在建表的时候,
      用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的 SerDe,Hive 通过 SerDe 确定表的具体的列的数据。 
      ?STORED AS 
        SEQUENCEFILE //序列化文件
        | TEXTFILE //普通的文本文件格式
        | RCFILE  //行列存储相结合的文件
        | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname //自定义文件格式
        如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE 。
      ?LOCATION指定表在HDFS的存储路径
      

      6、修改表

      重命名表
      ALTER TABLE table_name RENAME TO new_table_name
      
      增加/修改/替換列信息

      更新列

      ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
      

      增加和替換列

      ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) 
      

      注:ADD 是代表新增一字段,字段位置在所有列后面(partition 列前),REPLACE 则是表示替换表中所有字段。

      簡單示例

      (1)查詢表結構

      hive> desc dept_partition;
      

      (2)添加列

      hive (default)> alter table dept_partition add columns(deptdesc string);
      

      (3)更新列

      hive (default)> alter table dept_partition change column deptdesc desc int;
      

      (4)替換列

      hive (default)> alter table dept_partition replace columns(deptno string, dname string, loc string);
      

      注:hive不支持刪除字段

      7、刪除表

      注意:內部表和外部表刪除的區別

       drop table dept_name;
      

      8、實例

      1)關于內部表與外部表

      建表語句

      創建部門表

      create external table if not exists default.dept( deptno int, dname string, loc int )
      
      row format delimited fields terminated by ‘\t‘;
      

      創建員工表

      create external table if not exists default.emp( empno int, ename string, job string, mgr int, hiredate string, sal double, comm double, deptno int)
      row format delimited fields terminated by ‘\t‘;
      

      查看創建的表

      hive (default)> show tables; 
      OK 
      tab_name 
      dept 
      emp
      

      向外部表中導入數據導入數據

      hive (default)>load data inpath local ‘/opt/module/data/dept.txt‘ into table default.dept;
      hive (default)>load data local inpath‘/opt/module/data/emp.txt‘ into table default.emp;
      

      查詢結果

      hive (default)> select * from emp;
      hive (default)> select * from dept;
      

      查看表格式化數據

      hive (default)> desc formatted dept;
      
      Table Type: EXTERNAL_TABLE
      
      管理表與外部表的互相轉換

      (1)查詢表的類型

      hive (default)> desc formatted student2;
      
       Table Type: MANAGED_TABLE
      

      (2)修改内部表 student2 为外部表

      alter table student2 set tblproperties(‘EXTERNAL‘=‘TRUE‘);
      

      (3)查詢表的類型

      hive (default)> desc formatted student2;
      
       Table Type: EXTERNAL_TABLE
      

      (4)修改外部表 student2 为内部表

      alter table student2 set tblproperties(‘EXTERNAL‘=‘FALSE‘);
      

      (5)查詢表的類型

      hive (default)> desc formatted student2;
      
       Table Type: MANAGED_TABLE
      

      注意:(‘EXTERNAL‘=‘TRUE‘)和(‘EXTERNAL‘=‘FALSE‘)爲固定寫法,區分大小寫!

      2)關于基础分區表

      1.引入分區表(需要根据日期对日志进行管理)

      /user/hive/warehouse/log_partition/20200702/20200702.log
      
      /user/hive/warehouse/log_partition/20200703/20200703.log
      
      /user/hive/warehouse/log_partition/20200704/20200704.log
      

      2.创建分區表语法

      create table dept_partition( deptno int, dname string, loc string) partitioned by (month string)
      row format delimited fields terminated by ‘\t‘;
      

      3.加载数据到分區表中

      hive (default)>load data local inpath ‘/opt/module/datas/dept.txt‘ into table default.dept_partition partition(month=‘202009‘);
      
      hive (default)>load data local inpath ‘/opt/module/datas/dept.txt‘ into table default.dept_partition partition(month=‘202008‘);
      
      hive (default)>load data local inpath ‘/opt/module/datas/dept.txt‘ into table default.dept_partition partition(month=‘202007’);
      

      4.查詢分區表中数据

      单分區查詢

      hive (default)> select * from dept_partition where month=‘202009‘;
      

      多分區联合查詢

      hive (default)> select * from dept_partition where month=‘202009‘ union all select * from dept_partition where month=‘202008‘ union select * from dept_partition where month=‘202007‘;、
      简单写法
      hive (default)> select * from dept_partition where month>=‘202007‘and month<=‘202009‘ 
      

      5.增加分區

      创建单个分區

      hive (default)> alter table dept_partition add partition(month=‘202006‘) ;
      

      同时创建多个分區

      hive (default)> alter table dept_partition add partition(month=‘202005‘) partition(month=‘202004‘);
      

      6.删除分區

      删除单个分區

      hive (default)> alter table dept_partition drop partition (month=‘202004‘);
      

      同时删除多个分區

      hive (default)> alter table dept_partition drop partition (month=‘202005‘), partition (month=‘202006‘);
      简单写法
      hive (default)> alter table dept_partition drop partition (month>=‘202005‘,month<=‘202006‘);
      

      7.查看分區表有多少分區

      hive> show partitions dept_partition;
      

      8.查看分區表结构

      hive> desc formatted dept_partition;
      
      3)關于多级分區表

      hive中的多级分區表,可以理解为多级目录,按照分區字段顺序将原本数据划分为多级目录

      1.创建二级分區表

      hive (default)> create table dept_partition2(deptno int, dname string, loc string)
      partitioned by (month string, day string) 
      row format delimited fields terminated by ‘\t‘;
      

      2.正常的加載數據

      (1)加载数据到二级分區表中

      hive (default)>load data local inpath ‘/opt/module/datas/dept.txt‘ into table default.dept_partition2 partition(month=‘202009‘, day=‘13‘);
      

      (2)查詢分區数据

      hive (default)> select * from dept_partition2 where month=‘202009‘ and day=‘13‘;
      

      3.把数据直接上传到分區目录上,让分區表和数据产生关联的三种方式

      (1)方式一:上傳數據後修複

      ? 上傳數據

      hive (default)> dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202009/day=12; 
      
      hive (default)> dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=202009/day=12;
      

      查詢數據(查詢不到剛上傳的數據)

      hive (default)> select * from dept_partition2 where month=‘202009‘ and day=‘12‘;
      

      執行修複命令

      hive> msck repair table dept_partition2;
      

      再次查詢數據

      hive (default)> select * from dept_partition2 where month=‘202009‘ and day=‘12‘;
      

      (2)方式二:上傳數據后添加分區

      ? 上傳數據

      hive (default)> dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202009/day=11; 
      
      hive (default)> dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=202009/day=11;
      

      执行添加分區

       hive (default)> alter table dept_partition2 add partition(month=‘202009‘,day=‘11‘);
      

      查詢數據

      hive (default)> select * from dept_partition2 where month=‘202009‘ and day=‘11‘;
      

      (3)方式三:创建文件夹后 load 数据到分區

      創建目錄

      hive (default)> dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202009/day=10;
      

      上傳數據

      hive (default)>load data local inpath ‘/opt/module/datas/dept.txt‘ into table dept_partition2 partition(month=‘202009‘,day=‘10‘);
      

      查詢數據

      hive (default)> select * from dept_partition2 where month=‘202009‘ and day=‘10‘;
      
      4)關于动态分區表

      前面的分區创建方式为静态分區,如果需要创建非常多的分區,或者根据指定字段值分區,就需要使用动态分區,hive的动态分區可以基于查詢参数推断出需要创建的分區名称。

      eg:

      insert overwrite table employees partition(country,state)

      select ...,se.cnty,se.st

      from staged_employees se;

      如上面例子,hive可以根据select語句中最后2列来确定分區字段country和state的值。这也是为什么在上面例子使用了不同的命名,就是为了强调源表字段值和输出分區值之间的关系是根据位置而不是根据命名来匹配的。

      關于混合使用动态和静态分區

      eg:

      insert overwrite table employees partition(country=‘China‘,state)

      select ...,se.cnty,se.st

      from staged_employees se

      where se.cnty=‘China‘;

      如上面例子,指定了country字段的值为静态的中国,而分區字段state是动态值

      注意:静态分區必须出现在动态分區键之前

      动态分區功能默认是关闭的,开启后,也会默认是严格模式执行,在这种模式下要求至少有一列分區字段是静态的,这有助于因设计错误导致查詢产生大量的分區。

      动态分區属性

      屬性名稱 缺省值(默認值) 描述
      hive.exec.dynamic.partition false 设置为true,表示开启动态分區功能
      hive.exec.dynamic.parititon.mode strict 设置为nonstrict,表示允许所有分區都是动态的
      hive.exec.dynamic.partitions.pernode 100 每个mapper或reducer可以创建的最大动态分區个数,如果某个mapper或reducer尝试创建超过这个值的分區的话,就会报错
      hive.exec.dynamic.parititons 1000 一个动态分區创建語句可以创建的最大动态分區个数。如果超过也会报错
      hive.exec.max.created.files 100000 全局可以創建的最大文件個數。有一個Hadoop計數器,會跟蹤記錄創建了多少個文件,如果超過也會報錯。
      5)關于倾斜表

      通过指定一个或者多个列经常出现的值(严重偏斜),Hive 会自动将涉及到这些值的数据拆分为单独的文件。在查詢时,如果涉及到倾斜值,它就直接从独立文件中获取数据,而不是扫描所有文件,这使得性能得到提升。

      create [exertnal] table 倾斜表名(字段名 类型,字段名 类型) skewed by (倾斜字段) ON (对应常见倾斜值,对应常见倾斜值)

      row format delimited fields terminated by 字段分隔符;

      9、視圖

      当查詢变得长或复杂的时候,通过使用视图将这个查詢語句分割成多个小的、更可控的片段可以降低这种复杂度。这点和在編程語言中使用函数或者软件设计中的分层设计的概念是一致的。封装复杂的部分可以是最终用户通过重用重复的部分来构建复杂的查詢。

      对于视图来说一个常见的使用场景就是基于一个或多个列的值来限制输出结果。有些數據庫允许将视图作为一个安全机制,也就是不给用户直接访问具有敏感数据的原始表,而是提供给用户一个通过WHERE子句限制了的视图,以供访问。Hive 目前并不支持这个功能,因为用户必须具有能够访问整个底层原始表的权限,这时视图才能工作。然而,通过创建视图来限制数据访问可以用来保护信息不被随意查詢。

      Hive 会先解析视图,然后使用解析结果再来解析整个查詢語句。然而,作为Hive查詢优化器的一部分,查詢語句和视图語句可能会合并成-一个单-一的实际查詢語句。这个概念视图仍然适用于视图和使用这个视图的查詢語句都包含了一个ORDER BY子句或-一个LIMIT子句的情况。这时会在使用这个视图的查詢語句之前对该视图进行解析。例如,如果视图語句含有一个LIMIT 100 子句,而同时使用到这个视图的查詢含有一个LIMIT 200子句,那么用户最终最多只能获取100条结果记录。因为定义一个视图实际上并不会“具体化”操作任何实际数据,所以视图实际上是对其所使用到的表和列的一个查詢語句固化过程。因此,如果视图所涉及的表或者列不再存在时,会导致视图查詢失败。

      一个视图的名称要和这个视图所在的數據庫下的其他所有表和视图的名称不同。用户还可以为所有的新列或部分新列增加一个COMMNET子句,进行写注释。这些注释并非“ 继承”原始表中的定义。同样地,如果AS SELECT子句中包含没有命名别名的表達式的话,例如size(cols)(计算cols中元素的个数),那么Hive将会使用_ _CN 作为新的列名,其中N表示从0开始的一个整数。如果AS SELECT語句不合法的话,那么创建视图过程将失败。

      eg:

      CREATE VIEW IF NOT EXISTS shipments (time, part)

      COMMENT ‘ Time and parts for shipments. ‘

      TBLPROPERTIES ( ‘creator‘ = ‘me‘ )

      AS SELECT ...;

      在AS SELECT子句之前,用户可以通过定义TBLPROPERTIES来定义表属性信息,这点和表相同。上例中,我们定义的属性为“creator”, 表示这个视图的创建者名称。

      CREATE [EXTERNAL] TABLE ... LIKE ..结构同样适用于复制视图,只需要在LIKE表達式里面写视图名就可以了:

      eg:

      CREATE TABLE shipments2 LIKE shipments;

      視圖不能夠作爲INSERT語句或LOAD命令的目標表。視圖是只讀的。對于視圖只允許改變元數據中TBLPROPERTIES(表屬性)屬性信息:

      ALTER VIEW shipments SET TBLPROPERTIES (‘created_ at‘ = ‘ some_ timestamp‘) ;

      1)Hive 的视图和关系型數據庫的视图区别

      和关系型數據庫一样,Hive 也提供了视图的功能,不过请注意,Hive 的视图和关系型數據庫的数据还是有很大的区别:

        (1)只有邏輯視圖,沒有物化視圖;

        (2)视图只能查詢,不能做加载数据操作,如:Load/Insert/Update/Delete 数据;

        (3)視圖在創建時候,只是保存了一份元數據,當查詢視圖的時候,才開始執行視圖對應的那些子查詢

        (4)view定义中若包含了ORDER BY/LIMIT語句,当查詢视图时也进行ORDER BY/LIMIT語句操作,view当中定义的优先级更高

      ? ? view: order by age asc;

      ? ? select order by age desc;

      ? ? select * from view order by age desc;

        (5)view支持叠代視圖

      ? ? view1: select * from tb_user1;

      ? ? view2: select * from view1;

      ? ? view3: select * from view2;

      2)Hive視圖的創建語句
      CREATE VIEW [IF NOT EXISTS] [db_name.]view_name 
        [(column_name [COMMENT column_comment], ...) ]
        [COMMENT view_comment]
        [TBLPROPERTIES (property_name = property_value, ...)]
        AS SELECT ... ;
      
      3)Hive視圖的查看語句
      show views;
      desc view_test;-- 查看某个具体视图的信息
      
      4)Hive視圖的使用語句
      select colums from view_test;
      select * from view_test;
      
      5)Hive視圖的刪除語句
      DROP VIEW [IF EXISTS] [db_name.]view_name;
      drop view view_test;
      

      10、索引

      Hive只有有限的索引功能。Hive中没有普通关系型數據庫中键的概念,但是还是可以对一些字段建立索引来加速某些操作的。一张表的索引数据存储在另外一张表中。

      索引處理模塊被設計成爲可以定制的Java編碼的插件,因此,用戶可以根據需要對其進行實現,以滿足自身的需求。

      当逻辑分區实际上太多太细而几乎无法使用时,建立索引也就成为分區的另-一个选择。建立索引可以帮助裁剪掉一张表的一些数据块,这样能够减少MapReduce的输人数据量。并非所有的查詢都可以通过建立索引获得好处。通过EXPLAIN命令可以查看某个查詢語句是否用到了索引。

      Hive中的索引和那些关系型數據庫中的一样, 需要进行仔细评估才能使用。维护索引也需要额外的存储空间,同时创建索引也需要消耗计算资源。用户需要在建立索引为查詢带来的好处和因此而需要付出的代价之间做出权衡。

      1)創建索引
      create index t1_index on table tb_user(name) 
      
      as ‘org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler‘ with deferred rebuild 
      
      in table t1_index_table;
      

      as:指定索引器;

      in table:指定索引表,若不指定默认生成在default_tb_user_t1_index表中

      create index t2_index on table tb_user(name)

      as ‘org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler‘ with deferred rebuild;

      with deferred rebuild表示在执行alter index xxx_index on xxx rebuild时将调用generateIndexBuildTaskList获取Index的MapReduce,并执行为索引填充数据。

      2)顯示索引
      show [formatted] index on tb_name;
      

      關鍵字FORMATTED是可選的。增加這個關鍵字可以使輸出中包含有列名稱。用戶還可以替換INDEX爲INDEXES,這樣輸出中就可以列舉出多個索引信息了。

      3)重建索引

      建立新索引之後必須重建索引才能生效

      ALTER INDEX t2_index ON tb_user REBUILD;
      ALTER INDEX employees_index ON TABLE employees
      PARTITION (country = ‘China‘)
      REBUILD;
      

      如果省略掉PARTITION,那么将会对所有分區进行重建索引。

      还没有一个内置的机制能够在底层的表或者某个特定的分區发生改变时,自动触发重建索引。但是,如果用户具有一个工作流来更新表分區中的数据的话,那么用户可能已经在其中某处使用到了ALTER TABLE .. TOUCH PARTITION(..)功能,同样地,在这个工作流中也可以对对应的索引执行重建索引語句ALTER INDEX ... REBUILD。

      如果重建索引失敗,那麽在重建開始之前,索引將停留在之前的版本狀態。從這種意義上看,重建索引操作是原子性的。

      4)刪除索引

      如果有索引表的話,刪除一個索引將會刪除這個索引表:

      DROP INDEX IF EXISTS t1_index ON tb_user;
      DROP INDEX IF EXISTS employees_index ON TABLE employees;
      

      Hive不允许用户直接使用DROP TABLE語句之前删除索引表。而通常情况下,IF EXISTS都是可选的,其用于当索引不存在时避免抛出错误信息。如果被索引的表被删除了,那么其对应的索引和索引表也会被删除。同样地,如果原始表的某个分區被删除了,那么这个分區对应的分區索引也同时会被删除掉。

      二、DML數據操作

      1、數據導入

      1) 向表中装载数据(Load
      load data [local] inpath ‘/opt/module/datas/table_name.txt‘ [overwrite] | into table table_name
      [partition (partcol1=val1,…)];
      

      (1)load data:表示加载数据

      (2)local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表

      (3)inpath:表示加載數據的路徑

      (4)overwrite:表示覆蓋表中已有數據,否則表示追加

      (5)into table:表示加载到哪张表

      (6)student:表示具體的表

      (7)partition:表示上传到指定分區

      2)Load示例

      (1)創建一張表

      hive (default)> create table student(id string, name string) 
      row format delimited fields terminated by ‘\t‘;
      

      (2)加载本地文件到 hive

      hive (default)>load data local inpath ‘/opt/module/datas/student.txt‘ 
      into table default.student;
      

      (3)加载 HDFS 文件到 hive 中

      上传文件到 HDFS

      hive (default)> dfs -put /opt/module/datas/student.txt /user/chaos/hive;
      

      加载 HDFS 上数据

      hive (default)>load data inpath ‘/user/chaos/hive/student.txt‘ into table default.student;
      

      (4)加載數據覆蓋表中已有的數據

      上传文件到 HDFS

      hive (default)> dfs -put /opt/module/datas/student.txt /user/chaos/hive;
      

      加載數據覆蓋表中已有的數據

      hive (default)>load data inpath ‘/user/chaos/hive/student.txt‘ overwrite into table default.student;
      
      3) 通過查詢語句向表中插入數據(Insert

      1.创建一张分區表

      create table student(id int, name string) partitioned by (month string) 
      row format delimited fields terminated by ‘\t‘;
      

      2.基本插入數據

      hive (default)>insert into table student partition(month=‘202009‘) values(1,‘wangwu‘);
      

      3.基本模式插入(根据单张表查詢結果)

      hive (default)> insert overwrite table student partition(month=‘202008‘) 
      select id, name from student where month=‘202009‘;
      

      4.多插入模式(根据多张表查詢結果)

      from(select * from student
      )t 
      insert overwrite table student partition(month=‘202007‘) 
      select id,name where month=‘202009‘ 
      insert overwrite table student partition(month=‘202006‘)
      select id, name where month=‘202009‘;
      
      4) 查詢語句中创建表并加载数据(As Select

      根据查詢結果创建表(查詢的结果会添加到新创建的表中)

      create table if not exists student3 as select id, name from student;
      
      5)創建表時通過 Location 指定加載數據路徑

      1.创建表,并指定在 hdfs 上的位置

      hive (default)> create table if not exists student5(id int, name string)
      row format delimited fields terminated by ‘\t‘ 
      location ‘/user/hive/warehouse/student5‘;
      

      2.上傳數據到 hdfs 上

      hive (default)> dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5;
      

      3.查詢數據

      hive (default)> select * from student5;
      
      6) Import 數據到指定 Hive 表中

      注意:先用 export 导出后,再将数据导入。

      hive (default)> import table student2 partition(month=‘202009‘) from ‘/user/hive/warehouse/export/student‘;
      

      2、 数据导出

      1)Insert 导出

      (1)將查詢的結果導出到本地

      hive (default)> insert overwrite local directory ‘/opt/module/datas/export/student‘ 
      select * from student;
      

      (2)將查詢的結果格式化導出到本地

      hive(default)>insert overwrite local directory ‘/opt/module/datas/export/student1‘ 
      ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t‘ 
      select * from student;
      

      (3)将查詢的结果导出到 HDFS 上(与导出到本地的区别是没有 local)

      hive (default)>insert overwrite directory ‘/user/chaos/student2‘ 
      ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t‘ 
      select * from student;
      
      2 )Hadoop命令导出到本地
      hive (default)>dfs -get /user/hive/warehouse/student/month=202009/000000_0 /opt/module/datas/export/student3.txt;
      
      3) Hive Shell 命令导出基本语法:

      (hive -f/-e 执行語句或者脚本 > file)

      [chaos@hadoop102 hive]$ bin/hive -e ‘select * from default.student;‘ > /opt/module/datas/export/student4.txt;
      
      4)Export 导出到 HDFS
      hive(default)> export table default.student to ‘/user/hive/warehouse/export/student‘;
      

      3、 清除表中数据(Truncate

      注意:Truncate 只能删除管理表,不能删除外部表中数据

      hive (default)> truncate table student;
      

      三、查詢

      查詢語句语法:

      [WITH CommonTableExpression (, CommonTableExpression)*](Note: Only available starting with Hive 0.13.0)
        SELECT [ALL | DISTINCT] select_expr, select_expr, ...
        FROM table_reference
        [WHERE where_condition]
        [GROUP BY col_list]
        [ORDER BY col_list]
        [CLUSTER BY col_list] | [DISTRIBUTE BY col_list] 
        [SORT BY col_list]
        [LIMIT number]
      

      1、 基本查詢(Select…From

      1) 全表和特定列查詢

      全表查詢

      hive (default)> select * from emp;
      

      选择特定列查詢

      hive (default)> select empno, ename from emp;
      

      注意:

      (1)SQL 语言大小写不敏感。

      (2)SQL 可以写在一行或者多行

      (3)關鍵字不能被縮寫也不能分行

      (4)各子句一般要分行寫。

      (5)使用縮進提高語句的可讀性。

      2) 列别名

      1.重命名一個列

      2.便于計算

      3.緊跟列名,也可以在列名和別名之間加入關鍵字‘AS’

      4.中文别名需要使用反引号 `

      5.案例实操查詢名称和部门,创建时间

      select 
      	ename AS name,
      	deptno dn,
      	fcd as `创建时间`
      from emp;
      
      3) 算术運算符
      運算符 描述
      A+B A 和 B 相加
      A-B A 减去 B
      A*B A 和 B 相乘
      A/B A 除以 B
      A%B A 对 B 取余
      A&B A 和 B 按位取与
      A|B A 和 B 按位取或
      A^B A 和 B 按位取异或
      4)常用函數

      1.求總數(count)

      select count(*) cnt from emp;
      

      2.求工資的最大值(max)

      select max(sal) max_sal from emp;
      

      3.求部門工資的最小值(min)

      select deptno,min(sal) min_sal from emp group by deptno;
      

      4.求工資的總和(sum)

      select sum(sal) sum_sal from emp; 
      

      5.求工資的平均值(avg)

       select avg(sal) avg_sal from emp;
      
      5 )Limit 語句

      典型的查詢会返回多行数据。LIMIT 子句用于限制返回的行数。

      select * from emp limit 5;
      

      2、Where 語句

      1.使用 WHERE 子句,将不满足条件的行过滤掉

      2.WHERE 子句紧随 FROM 子句

      1) 比较運算符(Between/In/ Is Null

      下面表中描述了谓词操作符,这些操作符同样可以用于 JOIN…ON 和 HAVING 語句中。

      操作符 支持的數據類型 描述
      A=B 基本數據類型 如果 A 等于 B 则返回 TRUE,反之返回 FALSE
      A<=>B 基本數據類型 如果 A 和 B 都为 NULL,则返回 TRUE,其他的和等号(=)操作符的结果一致,如果任一为 NULL 则结果为 NULL
      A<>B, A!=B 基本數據類型 A 或者 B 为 NULL 则返回 NULL;如果 A 不等于 B,则返回 TRUE,反之返回 FALSE
      A<B 基本數據類型 A 或者 B 为 NULL,则返回 NULL;如果 A 小于 B,则返回 TRUE,反之返回 FALSE
      A<=B 基本數據類型 A 或者 B 为 NULL,则返回 NULL;如果 A 小于等于 B,则返回 TRUE,
      反之返回 FALSE
      A>B 基本數據類型 A 或者 B 为 NULL,则返回 NULL;如果 A 大于 B,则返回 TRUE,反之返回 FALSE
      A>=B 基本數據類型 A 或者 B 为 NULL,则返回 NULL;如果 A 大于等于 B,则返回 TRUE,反之返回 FALSE
      A [NOT] BETWEEN B AND C 基本數據類型 如果 A,B 或者 C 任一为 NULL,则结果为 NULL。如果 A 的值大于等于 B 而且小于或等于 C,则结果为 TRUE,反之为 FALSE。如果使用 NOT 关键字则可达到相反的效果。
      A IS NULL 所有數據類型 如果 A 等于 NULL,则返回 TRUE,反之返回 FALSE
      A IS NOT NULL 所有數據類型 如果 A 不等于 NULL,则返回 TRUE,反之返回 FALSE
      IN(数值 1, 数值 2) 所有數據類型 使用 IN 运算显示列表中的值
      A [NOT] LIKE B STRING 类型 B 是一个 SQL 下的简单正则表達式,如果 A 与其匹配的话,则返回 TRUE;反之返回 FALSE。B 的表達式说明如下:‘x%’表示 A 必须以字母‘x’开头,‘%x’表示 A 必须以字母’x’结尾,而 ‘%x%’表示 A 包含有字母’x’,可以位于开头,结尾或者字符串中间。如果使用 NOT 关键字则可达到相反的效果。
      A RLIKE B, A REGEXP B STRING 类型 B 是一个正则表達式,如果 A 与其匹配,则返回 TRUE;反之返回 FALSE。匹配使用的是 JDK 中的正则表達式接口实现的,因为正则也依据其中的规则。例如,正则表達式必须和整个字符串 A 相匹配,而不是只需与其字符串匹配。
      2) LikeRLike

      1.使用 LIKE 运算选择类似的值

      2.選擇條件可以包含字符或數字:

      % 代表零个或多个字符(任意个字符)。

      _ 代表一个字符。

      3.RLIKE 子句是 Hive 中这个功能的一个扩展,其可以通过 Java 的正则表達式这个更强大的语言来指定匹配条件。

      eg:

      (1)查找以 2 开头薪水的员工信息

      select * from emp where sal LIKE ‘2%‘;

      (2)查找第二个数值为 2 的薪水的员工信息

      select * from emp where sal LIKE ‘_2%‘;

      (3)查找薪水中含有 2 的员工信息

      select * from emp where sal RLIKE ‘[2]‘;

      3)逻辑運算符(And/Or/Not
      操作符 含義
      AND 邏輯並
      OR 邏輯或
      NOT 邏輯否

      3、分组查詢

      1)Group By 語句

      GROUP BY 語句通常会和聚合函數一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。

      eg:

      (1)计算 emp 表每个部门的平均工资

      select t.deptno, avg(t.sal) avg_sal

      from emp t

      group by t.deptno;

      (2)计算 emp 每个部门中每个岗位的最高薪水

      select t.deptno, t.job, max(t.sal) max_sal

      from emp t

      group by t.deptno, t.job;

      2) Having 語句

      having 与 where 不同点

      (1)where 针对表中的列发挥作用,查詢數據;having 针对查詢結果中的列发挥作用,筛选数据。

      (2)where 后面不能写聚合函數,而 having 后面可以使用聚合函數。

      (3)having 只用于 group by 分组统计語句。

      eg:

      求每个部门的平均薪水大于 2000 的部门求每个部门的平均工资

      select deptno, avg(sal)

      from emp

      group by deptno;

      求每个部门的平均薪水大于 2000 的部门

      select deptno, avg(sal) avg_sal

      from emp

      group by deptno

      having avg_sal > 2000;

      4、 Join 語句

      1)等值 Join

      Hive 支持通常的 SQL JOIN 語句,但是只支持等值連接,不支持非等值連接。

      eg:

      select

      ? e.empno,

      ? e.ename,

      ? d.deptno,

      ? d.dname

      from emp e

      join dept d on e.deptno != d.deptno;

      会报错,‘>‘和‘<‘ 这种也不支持

      2) 表的别名

      1.好處

      (1)使用别名可以简化查詢。

      (2)使用表名前綴可以提高執行效率。<提高的不多,不過也算可以優化提高的點,同時也增加sql的可讀性>

      3) 内连接

      只有進行連接的兩個表中都存在與連接條件相匹配的數據才會被保留下來。

      4) 左外连接左外连接

      JOIN 操作符左边表中符合 WHERE 子句的所有记录将会被返回。

      5)右外連接右外連接

      JOIN 操作符右边表中符合 WHERE 子句的所有记录将会被返回。

      6) 满外连接

      将会返回所有表中符合 WHERE 語句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用 NULL 值替代。

      7) 多表连接

      注意:连接 n 个表,至少需要 n-1 个连接条件。

      例如:連接三個表,至少需要兩個連接條件。

      eg:

      1.創建位置表

      create table if not exists default.location( loc int, loc_name string) row format delimited fields terminated by ‘\t‘;

      2.導入數據

      hive (default)>load data local inpath ‘/opt/module/data/location.txt‘ into table default.location;

      3.多表连接查詢

      SELECT e.ename, d.deptno, l.loc_name

      FROM emp e

      JOIN dept d ON d.deptno = e.deptno

      JOIN location l ON d.loc = l.loc;

      大多数情况下,Hive 会对每对 JOIN 连接对象启动一个 MapReduce 任务。本例中会首先启动一个 MapReduce job 对表 e 和表 d 进行连接操作,然后会再启动一个 MapReduce job 将第一个 MapReduce job 的输出和表 l;进行连接操作。

      注意:为什么不是表 d 和表 l 先进行连接操作呢?这是因为 Hive 总是按照从左到右的顺序执行的。

      8) 笛卡尔积

      1.笛卡爾集會在下面條件下産生

      (1)省略連接條件

      (2)連接條件無效

      (3)所有表中的所有行互相連接

      注意:开启严格模式的话,笛卡尔积这种查詢会报错

      9) 连接谓词中不支持 or
      select
      	e.empno,
      	e.ename,
      	d.deptno
      from emp e 
      join dept d on e.deptno=d.deptno or e.ename=d.dname;
      
      FAILED: SemanticException [Error 10019]: Line 10:3 OR not supported in JOIN currently ‘dname‘
      

      5、排序

      1)全局排序(Order By

      Order By:全局排序,一个 Reducer

      1.使用 ORDER BY 子句排序

      ASC(ascend): 升序(默认)

      DESC(descend): 降序

      2.ORDER BY 子句在 SELECT 語句的结尾

      2) 按照别名排序

      eg:

      按照员工薪水的 2 倍排序

      select ename, sal*2 twosal from emp order by twosal;

      3) 多个列排序

      eg:

      按照部門升序和工資降序排序

      select ename, deptno, sal from emp order by deptno asc, sal desc ;

      4) 每个 MapReduce 內部排序/區內排序(Sort By

      Sort By:每个 Reducer 内部进行排序,对全局结果集来说不是排序。

      eg:

      1.设置 reduce 个数

      hive (default)> set mapreduce.job.reduces=3;

      2.查看设置 reduce 个数

      hive (default)> set mapreduce.job.reduces;

      3.根據部門編號降序查看員工信息

      hive (default)> select * from emp sort by empno desc;

      4.将查詢結果导入到文件中(按照部门编号降序排序)

      hive (default)> insert overwrite local directory ‘/opt/module/datas/sortby-result‘ select * from emp sort by deptno desc;

      5) 分區排序(Distribute By

      Distribute By:类似 MR 中 partition,进行分區,结合 sort by 使用。

      注意,Hive 要求 DISTRIBUTE BY 語句要写在 SORT BY 語句之前。

      对于 distribute by 进行测试,一定要分配多 reduce 进行处理,否则无法看到 distribute by 的效果。

      eg:

      根據部門編號查看每個部門,再根據員工編號降序查看每個部門中員工

      先按照部门编号分區,再按照员工编号降序排序。

      hive (default)> set mapreduce.job.reduces=3;

      hive (default)> insert overwrite local directory ‘/opt/module/datas/distribute-result‘ select * from emp distribute by deptno sort by empno desc;

      6) Cluster By

      当 distribute by 和 sorts by 字段相同时,可以使用 cluster by 方式。

      cluster by 除了具有 distribute by 的功能外还兼具 sort by 的功能。但是排序只能是升序排序,不能指定排序规则为 ASC 或者 DESC

      以下兩種寫法等價

      hive (default)> select * from emp cluster by deptno; 
      hive (default)> select * from emp distribute by deptno sort by deptno;
      

      注意:按照部门编号分區,不一定就是固定死的数值,可以是 20 号和 30 号部门分到一个分區里面去。

      6) 分桶及抽样查詢<很少用>

      分區针对的是数据的存储路径;分桶针对的是数据文件。

      分區提供一个隔离数据和优化查詢的便利方式。不过,并非所有的数据集都可形成合理的分區,特别是之前所提到过的要确定合适的划分大小这个疑虑。

      分桶是將數據集分解成更容易管理的若幹部分的另一個技術。

      eg:

      先創建分桶表,通過直接導入數據文件的方式

      (1)數據准備

      student.txt

      (2)創建分桶表,和一個普通表

      create table stu_buck(id int, name string) clustered by(id) into 4 buckets row format delimited fields terminated by ‘\t‘;

      create table stu(id int, name string) row format delimited fields terminated by ‘\t‘;

      向普通的 stu 表中导入数据

      load data local inpath ‘/opt/module/datas/student.txt‘ into table stu;

      (3)查看表結構

      hive (default)> desc formatted stu_buck;

      Num Buckets: 4

      (4)设置属性,通过子查詢的方式导入数据

      hive (default)> set hive.enforce.bucketing=true;

      hive (default)> set mapreduce.job.reduces=-1;

      hive (default)> insert into table stu_buck select id, name from stu;

      分桶抽样查詢

      对于非常大的数据集,有时用户需要使用的是一个具有代表性的查詢結果而不是全部结果。Hive 可以通过对表进行抽样来满足这个需求。查詢表 stu_buck 中的数据。

      hive (default)> select * from stu_buck tablesample(bucket 1 out of 4 on id);
      

      注:tablesample 是抽样語句,语法:TABLESAMPLE(BUCKET x OUT OF y) 。

      y 必须是 table 总 bucket 数的倍数或者因子。hive 根据 y 的大小,决定抽样的比例。例如,table 总共分了 4 份,当 y=2 时,抽取(4/2=)2 个 bucket 的数据,当 y=8 时,抽取(4/8=)1/2 个 bucket 的数据。

      x 表示从哪个 bucket 开始抽取,如果需要取多个分區,以后的分區号为当前分區号加上 y。

      例如,table 总 bucket 数为 4,tablesample(bucket 1 out of 2),表示总共抽取(4/2=)2 个 bucket的数据,抽取第 1(x)个和第 3(x+y)个 bucket 的数据。

      注意:x 的值必须小于等于 y 的值,否则

      FAILED: SemanticException [Error 10061]: Numerator should not be bigger than denominator in sample clause for table stu_buck

      6、常用查詢函数

      1)條件函數
      Return Type Name(Signature) Description
      T if(boolean testCondition, T valueTrue, T valueFalseOrNull) Returns valueTrue when testCondition is true, returns valueFalseOrNull otherwise.如果testCondition 为true就返回valueTrue,否则返回valueFalseOrNull ,(valueTrue,valueFalseOrNull为泛型)
      T nvl(T value, T default_value) Returns default value if value is null else returns value (as of HIve 0.11).如果value值爲NULL就返回default_value,否則返回value
      T COALESCE(T v1, T v2, ...) Returns the first v that is not NULL, or NULL if all v‘s are NULL.返回第一非null的值,如果全部都为NULL就返回NULL 如:COALESCE (NULL,44,55)=44/strong>
      T CASE a WHEN b THEN c [WHEN d THEN e] [ELSE f] END* When a = b, returns c; when a = d, returns e; else returns f.如果a=b就返回c,a=d就返回e,否则返回f 如CASE 4 WHEN 5 THEN 5 WHEN 4 THEN 4 ELSE 3 END 将返回4
      T CASE WHEN a THEN b [WHEN c THEN d] [ELSE e] END* When a = true, returns b; when c = true, returns d; else returns e.如果a=ture就返回b,c= ture就返回d,否则返回e 如:CASE WHEN 5>0 THEN 5 WHEN 4>0 THEN 4 ELSE 0 END 将返回5;CASE WHEN 5<0 THEN 5 WHEN 4<0 THEN 4 ELSE 0 END 将返回0
      boolean isnull( a ) Returns true if a is NULL and false otherwise.如果a爲null就返回true,否則返回false
      boolean isnotnull ( a ) Returns true if a is not NULL and false otherwise.如果a爲非null就返回true,否則返回false
      2)數學函數
      Return Type Name (Signature) Description
      DOUBLE round(DOUBLE a) Returns the rounded BIGINT value of a.返回對a四舍五入的BIGINT值
      DOUBLE round(DOUBLE a, INT d) Returns a rounded to d decimal places.返回DOUBLE型d的保留n位小數的DOUBLW型的近似值
      DOUBLE bround(DOUBLE a) Returns the rounded BIGINT value of a using HALF_EVEN rounding mode (as of Hive 1.3.0, 2.0.0). Also known as Gaussian rounding or bankers‘ rounding. Example: bround(2.5) = 2, bround(3.5) = 4. 銀行家舍入法(14:舍,69:進,5->前位數是偶:舍,5->前位數是奇:進)
      DOUBLE bround(DOUBLE a, INT d) Returns a rounded to d decimal places using HALF_EVEN rounding mode (as of Hive 1.3.0, 2.0.0). Example: bround(8.25, 1) = 8.2, bround(8.35, 1) = 8.4. 銀行家舍入法,保留d位小數
      BIGINT floor(DOUBLE a) Returns the maximum BIGINT value that is equal to or less than a向下取整,最数轴上最接近要求的值的左边的值 如:6.10->6 -3.4->-4
      BIGINT ceil(DOUBLE a), ceiling(DOUBLE a) Returns the minimum BIGINT value that is equal to or greater than a.求其不小于小给定实数的最小整数如:ceil(6) = ceil(6.1)= ceil(6.9) = 6
      DOUBLE rand(), rand(INT seed) Returns a random number (that changes from row to row) that is distributed uniformly from 0 to 1. Specifying the seed will make sure the generated random number sequence is deterministic.每行返回一個DOUBLE型隨機數seed是隨機因子
      DOUBLE exp(DOUBLE a), exp(DECIMAL a) Returns ea where e is the base of the natural logarithm. Decimal version added in Hive 0.13.0.返回e的a幂次方, a可为小数
      DOUBLE ln(DOUBLE a), ln(DECIMAL a) Returns the natural logarithm of the argument a. Decimal version added in Hive 0.13.0.以自然數爲底d的對數,a可爲小數
      DOUBLE log10(DOUBLE a), log10(DECIMAL a) Returns the base-10 logarithm of the argument a. Decimal version added in Hive 0.13.0.以10爲底d的對數,a可爲小數
      DOUBLE log2(DOUBLE a), log2(DECIMAL a) Returns the base-2 logarithm of the argument a. Decimal version added in Hive 0.13.0.以2爲底數d的對數,a可爲小數
      DOUBLE log(DOUBLE base, DOUBLE a)log(DECIMAL base, DECIMAL a) Returns the base-base logarithm of the argument a. Decimal versions added in Hive 0.13.0.以base为底的对数,base 与 a都是DOUBLE类型
      DOUBLE pow(DOUBLE a, DOUBLE p), power(DOUBLE a, DOUBLE p) Returns ap.計算a的p次冪
      DOUBLE sqrt(DOUBLE a), sqrt(DECIMAL a) Returns the square root of a. Decimal version added in Hive 0.13.0.計算a的平方根
      STRING bin(BIGINT a) Returns the number in binary format (see http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_bin).計算二進制a的STRING類型,a爲BIGINT類型
      STRING hex(BIGINT a) hex(STRING a) hex(BINARY a) If the argument is an INT or binary, hex returns the number as a STRING in hexadecimal format. Otherwise if the number is a STRING, it converts each character into its hexadecimal representation and returns the resulting STRING. (Seehttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_hex, BINARY version as of Hive 0.12.0.)計算十六進制a的STRING類型,如果a爲STRING類型就轉換成字符相對應的十六進制
      BINARY unhex(STRING a) Inverse of hex. Interprets each pair of characters as a hexadecimal number and converts to the byte representation of the number. (BINARY version as of Hive 0.12.0, used to return a string.)hex的逆方法
      STRING conv(BIGINT num, INT from_base, INT to_base), conv(STRING num, INT from_base, INT to_base) Converts a number from a given base to another (see http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_conv).將GIGINT/STRING類型的num從from_base進制轉換成to_base進制
      DOUBLE abs(DOUBLE a) Returns the absolute value.計算a的絕對值
      INT or DOUBLE pmod(INT a, INT b), pmod(DOUBLE a, DOUBLE b) Returns the positive value of a mod b.a對b取模
      DOUBLE sin(DOUBLE a), sin(DECIMAL a) Returns the sine of a (a is in radians). Decimal version added in Hive 0.13.0.求a的正弦值
      DOUBLE asin(DOUBLE a), asin(DECIMAL a) Returns the arc sin of a if -1<=a<=1 or NULL otherwise. Decimal version added in Hive 0.13.0.求d的反正弦值
      DOUBLE cos(DOUBLE a), cos(DECIMAL a) Returns the cosine of a (a is in radians). Decimal version added in Hive 0.13.0.求余弦值
      DOUBLE acos(DOUBLE a), acos(DECIMAL a) Returns the arccosine of a if -1<=a<=1 or NULL otherwise. Decimal version added in Hive 0.13.0.求反余弦值
      DOUBLE tan(DOUBLE a), tan(DECIMAL a) Returns the tangent of a (a is in radians). Decimal version added in Hive 0.13.0.求正切值
      DOUBLE atan(DOUBLE a), atan(DECIMAL a) Returns the arctangent of a. Decimal version added in Hive 0.13.0.求反正切值
      DOUBLE degrees(DOUBLE a), degrees(DECIMAL a) Converts value of a from radians to degrees. Decimal version added in Hive 0.13.0.獎弧度值轉換角度值
      DOUBLE radians(DOUBLE a), radians(DOUBLE a) Converts value of a from degrees to radians. Decimal version added in Hive 0.13.0.將角度值轉換成弧度值
      INT or DOUBLE positive(INT a), positive(DOUBLE a) Returns a.返回a
      INT or DOUBLE negative(INT a), negative(DOUBLE a) Returns -a.返回a的相反數
      DOUBLE or INT sign(DOUBLE a), sign(DECIMAL a) Returns the sign of a as ‘1.0‘ (if a is positive) or ‘-1.0‘ (if a is negative), ‘0.0‘ otherwise. The decimal version returns INT instead of DOUBLE. Decimal version added in Hive 0.13.0.如果a是正數則返回1.0,是負數則返回-1.0,否則返回0.0
      DOUBLE e() Returns the value of e.數學常數e
      DOUBLE pi() Returns the value of pi.數學常數pi
      BIGINT factorial(INT a) Returns the factorial of a (as of Hive 1.2.0). Valid a is [0..20]. 求a的階乘
      DOUBLE cbrt(DOUBLE a) Returns the cube root of a double value (as of Hive 1.2.0). 求a的立方根
      INT BIGINT shiftleft(TINYINT|SMALLINT|INT a, INT b)shiftleft(BIGINT a, INT b) Bitwise left shift (as of Hive 1.2.0). Shifts a b positions to the left.Returns int for tinyint, smallint and int a. Returns bigint for bigint a.按位左移
      INTBIGINT shiftright(TINYINT|SMALLINT|INT a, INTb)shiftright(BIGINT a, INT b) Bitwise right shift (as of Hive 1.2.0). Shifts a b positions to the right.Returns int for tinyint, smallint and int a. Returns bigint for bigint a.按拉右移
      INTBIGINT shiftrightunsigned(TINYINT|SMALLINT|INTa, INT b),shiftrightunsigned(BIGINT a, INT b) Bitwise unsigned right shift (as of Hive 1.2.0). Shifts a b positions to the right.Returns int for tinyint, smallint and int a. Returns bigint for bigint a.無符號按位右移(<<<)
      T greatest(T v1, T v2, ...) Returns the greatest value of the list of values (as of Hive 1.1.0). Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with ">" operator (as of Hive 2.0.0). 求最大值
      T least(T v1, T v2, ...) Returns the least value of the list of values (as of Hive 1.1.0). Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with "<" operator (as of Hive 2.0.0). 求最小值
      3)集合函數
      Return Type Name(Signature) Description
      int size(Map<K.V>) Returns the number of elements in the map type.求map的長度
      int size(Array) Returns the number of elements in the array type.求數組的長度
      array map_keys(Map<K.V>) Returns an unordered array containing the keys of the input map.返回map中的所有key
      array map_values(Map<K.V>) Returns an unordered array containing the values of the input map.返回map中的所有value
      boolean array_contains(Array, value) Returns TRUE if the array contains value.如該數組Array包含value返回true。,否則返回false
      array sort_array(Array) Sorts the input array in ascending order according to the natural ordering of the array elements and returns it (as of version 0.9.0).按自然順序對數組進行排序並返回
      4)類型轉換函數
      Return Type **Name(Signature) ** Description
      binary binary(string|binary) Casts the parameter into a binary.將輸入的值轉換成二進制
      Expected "=" to follow "type" cast(expr as ) Converts the results of the expression expr to . For example, cast(‘1‘ as BIGINT) will convert the string ‘1‘ to its integral representation. A null is returned if the conversion does not succeed. If cast(expr as boolean) Hive returns true for a non-empty string.将expr转换成type类型 如:cast("1" as BIGINT) 将字符串1转换成了BIGINT类型,如果转换失败将返回NULL
      5)日期函數
      Return Type Name(Signature) Description
      string from_unixtime(bigint unixtime[, string format]) Converts the number of seconds from unix epoch (1970-01-01 00:00:00 UTC) to a string representing the timestamp of that moment in the current system time zone in the format of "1970-01-01 00:00:00".将时间的秒值转换成format格式(format可为“yyyy-MM-dd hh:mm:ss”,“yyyy-MM-dd hh”,“yyyy-MM-dd hh:mm”等等)如from_unixtime(1250111000,"yyyy-MM-dd") 得到2009-03-12
      bigint unix_timestamp() Gets current Unix timestamp in seconds.獲取本地時區下的時間戳
      bigint unix_timestamp(string date) Converts time string in format yyyy-MM-dd HH:mm:ss to Unix timestamp (in seconds), using the default timezone and the default locale, return 0 if fail: unix_timestamp(‘2009-03-20 11:30:01‘) = 1237573801将格式为yyyy-MM-dd HH:mm:ss的时间字符串转换成时间戳 如unix_timestamp(‘2009-03-20 11:30:01‘) = 1237573801
      bigint unix_timestamp(string date, string pattern) Convert time string with given pattern (see [http://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html]) to Unix time stamp (in seconds), return 0 if fail: unix_timestamp(‘2009-03-20‘, ‘yyyy-MM-dd‘) = 1237532400.将指定时间字符串格式字符串转换成Unix时间戳,如果格式不对返回0 如:unix_timestamp(‘2009-03-20‘, ‘yyyy-MM-dd‘) = 1237532400
      string to_date(string timestamp) Returns the date part of a timestamp string: to_date("1970-01-01 00:00:00") = "1970-01-01".返回時間字符串的日期部分
      int year(string date) Returns the year part of a date or a timestamp string: year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970.返回時間字符串的年份部分
      int quarter(date/timestamp/string) Returns the quarter of the year for a date, timestamp, or string in the range 1 to 4 (as of Hive 1.3.0). Example: quarter(‘2020-04-08‘) = 2.返回当前时间属性哪个季度 如quarter(‘2020-04-08‘) = 2
      int month(string date) Returns the month part of a date or a timestamp string: month("1970-11-01 00:00:00") = 11, month("1970-11-01") = 11.返回時間字符串的月份部分
      int day(string date) dayofmonth(date) Returns the day part of a date or a timestamp string: day("1970-11-01 00:00:00") = 1, day("1970-11-01") = 1.返回時間字符串的天
      int hour(string date) Returns the hour of the timestamp: hour(‘2009-07-30 12:58:59‘) = 12, hour(‘12:58:59‘) = 12.返回時間字符串的小時
      int minute(string date) Returns the minute of the timestamp.返回時間字符串的分鍾
      int second(string date) Returns the second of the timestamp.返回時間字符串的秒
      int weekofyear(string date) Returns the week number of a timestamp string: weekofyear("1970-11-01 00:00:00") = 44, weekofyear("1970-11-01") = 44.返回时间字符串位于一年中的第几个周内 如weekofyear("1970-11-01 00:00:00") = 44, weekofyear("1970-11-01") = 44
      int datediff(string enddate, string startdate) Returns the number of days from startdate to enddate: datediff(‘2009-03-01‘, ‘2009-02-27‘) = 2.計算開始時間startdate到結束時間enddate相差的天數
      string date_add(string startdate, int days) Adds a number of days to startdate: date_add(‘2008-12-31‘, 1) = ‘2009-01-01‘.從開始時間startdate加上days
      string date_sub(string startdate, int days) Subtracts a number of days to startdate: date_sub(‘2008-12-31‘, 1) = ‘2008-12-30‘.從開始時間startdate減去days
      timestamp from_utc_timestamp(timestamp, string timezone) Assumes given timestamp is UTC and converts to given timezone (as of Hive 0.8.0). For example, from_utc_timestamp(‘1970-01-01 08:00:00‘,‘PST‘) returns 1970-01-01 00:00:00.如果給定的時間戳並非UTC,則將其轉化成指定的時區下時間戳
      timestamp to_utc_timestamp(timestamp, string timezone) Assumes given timestamp is in given timezone and converts to UTC (as of Hive 0.8.0). For example, to_utc_timestamp(‘1970-01-01 00:00:00‘,‘PST‘) returns 1970-01-01 08:00:00.如果給定的時間戳指定的時區下時間戳,則將其轉化成UTC下的時間戳
      date current_date Returns the current date at the start of query evaluation (as of Hive 1.2.0). All calls of current_date within the same query return the same value.返回當前時間日期
      timestamp current_timestamp Returns the current timestamp at the start of query evaluation (as of Hive 1.2.0). All calls of current_timestamp within the same query return the same value.返回當前時間戳
      string add_months(string start_date, int num_months) Returns the date that is num_months after start_date (as of Hive 1.1.0). start_date is a string, date or timestamp. num_months is an integer. The time part of start_date is ignored. If start_date is the last day of the month or if the resulting month has fewer days than the day component of start_date, then the result is the last day of the resulting month. Otherwise, the result has the same day component as start_date.返回當前時間下再增加num_months個月的日期
      string last_day(string date) Returns the last day of the month which the date belongs to (as of Hive 1.1.0). date is a string in the format ‘yyyy-MM-dd HH:mm:ss‘ or ‘yyyy-MM-dd‘. The time part of date is ignored.返回這個月的最後一天的日期,忽略時分秒部分(HH:mm:ss)
      string next_day(string start_date, string day_of_week) Returns the first date which is later than start_date and named as day_of_week (as of Hive1.2.0). start_date is a string/date/timestamp. day_of_week is 2 letters, 3 letters or full name of the day of the week (e.g. Mo, tue, FRIDAY). The time part of start_date is ignored. Example: next_day(‘2020-01-14‘, ‘TU‘) = 2020-01-20.返回当前时间的下一个星期X所对应的日期 如:next_day(‘2020-01-14‘, ‘TU‘) = 2020-01-20 以2020-01-14为开始时间,其下一个星期二所对应的日期为2020-01-20
      string trunc(string date, string format) Returns date truncated to the unit specified by the format (as of Hive 1.2.0). Supported formats: MONTH/MON/MM, YEAR/YYYY/YY. Example: trunc(‘2020-03-17‘, ‘MM‘) = 2020-03-01.返回时间的最开始年份或月份 如trunc("2016-06-26",“MM”)=2016-06-01 trunc("2016-06-26",“YY”)=2016-01-01 注意所支持的格式为MONTH/MON/MM, YEAR/YYYY/YY
      double months_between(date1, date2) Returns number of months between dates date1 and date2 (as of Hive 1.2.0). If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise the UDF calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2. date1 and date2 type can be date, timestamp or string in the format ‘yyyy-MM-dd‘ or ‘yyyy-MM-dd HH:mm:ss‘. The result is rounded to 8 decimal places. Example: months_between(‘1997-02-28 10:30:00‘, ‘1996-10-30‘) = 3.94959677返回date1与date2之间相差的月份,如date1>date2,则返回正,如果date1<date2,则返回负,否则返回0.0 如:months_between(‘1997-02-28 10:30:00‘, ‘1996-10-30‘) = 3.94959677 1997-02-28 10:30:00与1996-10-30相差3.94959677个月
      string date_format(date/timestamp/string ts, string fmt) Converts a date/timestamp/string to a value of string in the format specified by the date format fmt (as of Hive 1.2.0). Supported formats are Java SimpleDateFormat formats –https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html. The second argument fmt should be constant. Example: date_format(‘2020-04-08‘, ‘y‘) = ‘2020‘.date_format can be used to implement other UDFs, e.g.:dayname(date) is date_format(date, ‘EEEE‘)dayofyear(date) is date_format(date, ‘D‘)按指定格式返回时间date 如:date_format("2016-06-22","MM-dd")=06-22
      6)字符函數
      eturn Type Name(Signature) Description
      int ascii(string str) Returns the numeric value of the first character of str.返回str中首個ASCII字符串的整數值
      string base64(binary bin) Converts the argument from binary to a base 64 string (as of Hive 0.12.0)..將二進制bin轉換成64位的字符串
      string concat(string|binary A, string|binary B...) Returns the string or bytes resulting from concatenating the strings or bytes passed in as parameters in order. For example, concat(‘foo‘, ‘bar‘) results in ‘foobar‘. Note that this function can take any number of input strings..對二進制字節碼或字符串按次序進行拼接
      array<struct<string,double>> context_ngrams(array<array>, array, int K, int pf) Returns the top-k contextual N-grams from a set of tokenized sentences, given a string of "context". See StatisticsAndDataMining for more information..與ngram類似,但context_ngram()允許你預算指定上下文(數組)來去查找子序列,具體看StatisticsAndDataMining(這裏的解釋更易懂)
      string concat_ws(string SEP, string A, string B...) Like concat() above, but with custom separator SEP..與concat()類似,但使用指定的分隔符喜進行分隔
      string concat_ws(string SEP, array) Like concat_ws() above, but taking an array of strings. (as of Hive 0.9.0).拼接Array中的元素並用指定分隔符進行分隔
      string decode(binary bin, string charset) Decodes the first argument into a String using the provided character set (one of ‘US-ASCII‘, ‘ISO-8859-1‘, ‘UTF-8‘, ‘UTF-16BE‘, ‘UTF-16LE‘, ‘UTF-16‘). If either argument is null, the result will also be null. (As of Hive 0.12.0.).使用指定的字符集charset将二进制值bin解码成字符串,支持的字符集有:‘US-ASCII‘, ‘ISO-8859-1‘, ‘UTF-8‘, ‘UTF-16BE‘, ‘UTF-16LE‘, ‘UTF-16‘,如果任意输入参数为NULL都将返回NULL
      binary encode(string src, string charset) Encodes the first argument into a BINARY using the provided character set (one of ‘US-ASCII‘, ‘ISO-8859-1‘, ‘UTF-8‘, ‘UTF-16BE‘, ‘UTF-16LE‘, ‘UTF-16‘). If either argument is null, the result will also be null. (As of Hive 0.12.0.).使用指定的字符集charset将字符串编码成二进制值,支持的字符集有:‘US-ASCII‘, ‘ISO-8859-1‘, ‘UTF-8‘, ‘UTF-16BE‘, ‘UTF-16LE‘, ‘UTF-16‘,如果任一输入参数为NULL都将返回NULL
      int find_in_set(string str, string strList) Returns the first occurance of str in strList where strList is a comma-delimited string. Returns null if either argument is null. Returns 0 if the first argument contains any commas. For example, find_in_set(‘ab‘, ‘abc,b,ab,c,def‘) returns 3..返回以逗號分隔的字符串中str出現的位置,如果參數str爲逗號或查找失敗將返回0,如果任一參數爲NULL將返回NULL回
      string format_number(number x, int d) Formats the number X to a format like ‘#,###,###.##‘, rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part. (As of Hive 0.10.0; bug with float types fixed in Hive 0.14.0, decimal type support added in Hive 0.14.0).將數值X轉換成"#,###,###.##"格式字符串,並保留d位小數,如果d爲0,將進行四舍五入且不保留小數
      string get_json_object(string json_string, string path) Extracts json object from a json string based on json path specified, and returns json string of the extracted json object. It will return null if the input json string is invalid. NOTE: The json path can only have the characters [0-9a-z_], i.e., no upper-case or special characters. Also, the keys *cannot start with numbers.* This is due to restrictions on Hive column names..从指定路径上的JSON字符串抽取出JSON对象,并返回这个对象的JSON格式,如果输入的JSON是非法的将返回NULL,注意此路径上JSON字符串只能由数字 字母 下划线组成且不能有大写字母和特殊字符,且key不能由数字开头,这是由于Hive对列名的限制
      boolean in_file(string str, string filename) Returns true if the string str appears as an entire line in filename..如果文件名爲filename的文件中有一行數據與字符串str匹配成功就返回true
      int instr(string str, string substr) Returns the position of the first occurrence of substr in str. Returns null if either of the arguments are null and returns 0 if substr could not be found in str. Be aware that this is not zero based. The first character in str has index 1..查找字符串str中子字符串substr出現的位置,如果查找失敗將返回0,如果任一參數爲Null將返回null,注意位置爲從1開始的
      int length(string A) Returns the length of the string..返回字符串的長度
      int locate(string substr, string str[, int pos]) Returns the position of the first occurrence of substr in str after position pos..查找字符串str中的pos位置後字符串substr第一次出現的位置
      string lower(string A) lcase(string A) Returns the string resulting from converting all characters of B to lower case. For example, lower(‘fOoBaR‘) results in ‘foobar‘..將字符串A的所有字母轉換成小寫字母
      string lpad(string str, int len, string pad) Returns str, left-padded with pad to a length of len..從左邊開始對字符串str使用字符串pad填充,最終len長度爲止,如果字符串str本身長度比len大的話,將去掉多余的部分
      string ltrim(string A) Returns the string resulting from trimming spaces from the beginning(left hand side) of A. For example, ltrim(‘ foobar ‘) results in ‘foobar ‘..去掉字符串A前面的空格
      array<struct<string,double>> ngrams(array<array>, int N, int K, int pf) Returns the top-k N-grams from a set of tokenized sentences, such as those returned by the sentences() UDAF. See StatisticsAndDataMining for more information..返回出现次数TOP K的的子序列,n表示子序列的长度,具体看StatisticsAndDataMining (這裏的解釋更易懂)
      string parse_url(string urlString, string partToExtract [, string keyToExtract]) Returns the specified part from the URL. Valid values for partToExtract include HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. For example, parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1‘, ‘HOST‘) returns ‘facebook.com‘. Also a value of a particular key in QUERY can be extracted by providing the key as the third argument, for example, parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1‘, ‘QUERY‘, ‘k1‘) returns ‘v1‘..返回从URL中抽取指定部分的内容,参数url是URL字符串,而参数partToExtract是要抽取的部分,这个参数包含(HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO,例如:parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1‘, ‘HOST‘) =‘facebook.com‘,如果参数partToExtract值为QUERY则必须指定第三个参数key 如:parse_url(‘http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1‘, ‘QUERY‘, ‘k1‘) =‘v1’
      string printf(String format, Obj... args) Returns the input formatted according do printf-style format strings (as of Hive0.9.0)..按照printf風格格式輸出字符串
      string regexp_extract(string subject, string pattern, int index) Returns the string extracted using the pattern. For example, regexp_extract(‘foothebar‘, ‘foo(.*?)(bar)‘, 2) returns ‘bar.‘ Note that some care is necessary in using predefined character classes: using ‘\s‘ as the second argument will match the letter s; ‘\s‘ is necessary to match whitespace, etc. The ‘index‘ parameter is the Java regex Matcher group() method index. See docs/api/java/util/regex/Matcher.html for more information on the ‘index‘ or Java regex group() method..抽取字符串subject中符合正则表達式pattern的第index个部分的子字符串,注意些预定义字符的使用,如第二个参数如果使用‘\s‘将被匹配到s,‘\s‘才是匹配空格
      string regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) Returns the string resulting from replacing all substrings in INITIAL_STRING that match the java regular expression syntax defined in PATTERN with instances of REPLACEMENT. For example, regexp_replace("foobar", "oo|ar", "") returns ‘fb.‘ Note that some care is necessary in using predefined character classes: using ‘\s‘ as the second argument will match the letter s; ‘\s‘ is necessary to match whitespace, etc..按照Java正则表達式PATTERN将字符串INTIAL_STRING中符合条件的部分成REPLACEMENT所指定的字符串,如里REPLACEMENT这空的话,抽符合正则的部分将被去掉 如:regexp_replace("foobar", "oo|ar", "") = ‘fb.‘ 注意些预定义字符的使用,如第二个参数如果使用‘\s‘将被匹配到s,‘\s‘才是匹配空格
      string repeat(string str, int n) Repeats str n times..重複輸出n次字符串str
      string reverse(string A) Returns the reversed string..反轉字符串
      string rpad(string str, int len, string pad) Returns str, right-padded with pad to a length of len..從右邊開始對字符串str使用字符串pad填充,最終len長度爲止,如果字符串str本身長度比len大的話,將去掉多余的部分
      string rtrim(string A) Returns the string resulting from trimming spaces from the end(right hand side) of A. For example, rtrim(‘ foobar ‘) results in ‘ foobar‘..去掉字符串後面出現的空格
      array<array> sentences(string str, string lang, string locale) Tokenizes a string of natural language text into words and sentences, where each sentence is broken at the appropriate sentence boundary and returned as an array of words. The ‘lang‘ and ‘locale‘ are optional arguments. For example, sentences(‘Hello there! How are you?‘) returns ( ("Hello", "there"), ("How", "are", "you") )..字符串str将被转换成单词数组,如:sentences(‘Hello there! How are you?‘) =( ("Hello", "there"), ("How", "are", "you") )
      string space(int n) Returns a string of n spaces..返回n個空格
      array split(string str, string pat) Splits str around pat (pat is a regular expression)..按照正则表達式pat来分割字符串str,并将分割后的数组字符串的形式返回
      map<string,string> str_to_map(text[, delimiter1, delimiter2]) Splits text into key-value pairs using two delimiters. Delimiter1 separates text into K-V pairs, and Delimiter2 splits each K-V pair. Default delimiters are ‘,‘ for delimiter1 and ‘=‘ for delimiter2..將字符串str按照指定分隔符轉換成Map,第一個參數是需要轉換字符串,第二個參數是鍵值對之間的分隔符,默認爲逗號;第三個參數是鍵值之間的分隔符,默認爲"="
      string substr(string|binary A, int start) substring(string|binary A, int start) Returns the substring or slice of the byte array of A starting from start position till the end of string A. For example, substr(‘foobar‘, 4) results in ‘bar‘ (see [http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr])..對于字符串A,從start位置開始截取字符串並返回
      string substr(string|binary A, int start, int len) substring(string|binary A, int start, int len) Returns the substring or slice of the byte array of A starting from start position with length len. For example, substr(‘foobar‘, 4, 1) results in ‘b‘ (see [http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr])..對于二進制/字符串A,從start位置開始截取長度爲length的字符串並返回
      string substring_index(string A, string delim, int count) Returns the substring from string A before count occurrences of the delimiter delim (as of Hive 1.3.0). If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. Substring_index performs a case-sensitive match when searching for delim. Example: substring_index(‘www.apache.org‘, ‘.‘, 2) = ‘www.apache‘..截取第count分隔符之前的字符串,如count爲正則從左邊開始截取,如果爲負則從右邊開始截取
      string translate(string|char|varchar input, string|char|varchar from, string|char|varchar to) Translates the input string by replacing the characters present in the from string with the corresponding characters in the to string. This is similar to the translatefunction in PostgreSQL. If any of the parameters to this UDF are NULL, the result is NULL as well. (Available as of Hive 0.10.0, for string types)Char/varchar support added as of Hive 0.14.0..将input出现在from中的字符串替换成to中的字符串 如:translate("MOBIN","BIN","M")="MOM"
      string trim(string A) Returns the string resulting from trimming spaces from both ends of A. For example, trim(‘ foobar ‘) results in ‘foobar‘.將字符串A前後出現的空格去掉
      binary unbase64(string str) Converts the argument from a base 64 string to BINARY. (As of Hive 0.12.0.).將64位的字符串轉換二進制值
      string upper(string A) ucase(string A) Returns the string resulting from converting all characters of A to upper case. For example, upper(‘fOoBaR‘) results in ‘FOOBAR‘..將字符串A中的字母轉換成大寫字母
      string initcap(string A) Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by whitespace. (As of Hive 1.1.0.).將字符串A轉換第一個字母大寫其余字母的字符串
      int levenshtein(string A, string B) Returns the Levenshtein distance between two strings (as of Hive 1.2.0). For example, levenshtein(‘kitten‘, ‘sitting‘) results in 3..计算两个字符串之间的差异大小 如:levenshtein(‘kitten‘, ‘sitting‘) = 3
      string soundex(string A) Returns soundex code of the string (as of Hive 1.2.0). For example, soundex(‘Miller‘) results in M460..將普通字符串轉換成soundex字符串
      7)聚合函數
      Return Type Name(Signature) Description
      BIGINT count(*), count(expr), count(DISTINCT expr[, expr...]) count(*) - Returns the total number of retrieved rows, including rows containing NULL values.統計總行數,包括含有NULL值的行count(expr) - Returns the number of rows for which the supplied expression is non-NULL.统计提供非NULL的expr表達式值的行数count(DISTINCT expr[, expr]) - Returns the number of rows for which the supplied expression(s) are unique and non-NULL. Execution of this can be optimized with hive.optimize.distinct.rewrite.统计提供非NULL且去重后的expr表達式值的行数
      DOUBLE sum(col), sum(DISTINCT col) Returns the sum of the elements in the group or the sum of the distinct values of the column in the group.sum(col),表示求指定列的和,sum(DISTINCT col)表示求去重后的列的和
      DOUBLE avg(col), avg(DISTINCT col) Returns the average of the elements in the group or the average of the distinct values of the column in the group.avg(col),表示求指定列的平均值,avg(DISTINCT col)表示求去重后的列的平均值
      DOUBLE min(col) Returns the minimum of the column in the group.求指定列的最小值
      DOUBLE max(col) Returns the maximum value of the column in the group.求指定列的最大值
      DOUBLE variance(col), var_pop(col) Returns the variance of a numeric column in the group.求指定列數值的方差
      DOUBLE var_samp(col) Returns the unbiased sample variance of a numeric column in the group.求指定列數值的樣本方差
      DOUBLE stddev_pop(col) Returns the standard deviation of a numeric column in the group.求指定列數值的標准偏差
      DOUBLE stddev_samp(col) Returns the unbiased sample standard deviation of a numeric column in the group.求指定列數值的樣本標准偏差
      DOUBLE covar_pop(col1, col2) Returns the population covariance of a pair of numeric columns in the group.求指定列數值的協方差
      DOUBLE covar_samp(col1, col2) Returns the sample covariance of a pair of a numeric columns in the group.求指定列數值的樣本協方差
      DOUBLE corr(col1, col2) Returns the Pearson coefficient of correlation of a pair of a numeric columns in the group.返回兩列數值的相關系數
      DOUBLE percentile(BIGINT col, p) Returns the exact pth percentile of a column in the group (does not work with floating point types). p must be between 0 and 1. NOTE: A true percentile can only be computed for integer values. Use PERCENTILE_APPROX if your input is non-integral.返回col的p%分位數
      8)表生成函數
      Return Type Name(Signature) Description
      Array Type explode(array<TYPE> a) For each element in a, generates a row containing that element.對于a中的每個元素,將生成一行且包含該元素
      N rows explode(ARRAY) Returns one row for each element from the array..每行對應數組中的一個元素
      N rows explode(MAP) Returns one row for each key-value pair from the input map with two columns in each row: one for the key and another for the value. (As of Hive 0.8.0.).每行對應每個map鍵-值,其中一個字段是map的鍵,另一個字段是map的值
      N rows posexplode(ARRAY) Behaves like explode for arrays, but includes the position of items in the original array by returning a tuple of (pos, value). (As of Hive 0.13.0.).與explode類似,不同的是還返回各元素在數組中的位置
      N rows stack(INT n, v_1, v_2, ..., v_k) Breaks up v_1, ..., v_k into n rows. Each row will have k/n columns. n must be constant..把M列轉換成N行,每行有M/N個字段,其中n必須是個常數
      tuple json_tuple(jsonStr, k1, k2, ...) Takes a set of names (keys) and a JSON string, and returns a tuple of values. This is a more efficient version of the get_json_object UDF because it can get multiple keys with just one call..從一個JSON字符串中獲取多個鍵並作爲一個元組返回,與get_json_object不同的是此函數能一次獲取多個鍵值
      tuple parse_url_tuple(url, p1, p2, ...) This is similar to the parse_url() UDF but can extract multiple parts at once out of a URL. Valid part names are: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO, QUERY:..返回从URL中抽取指定N部分的内容,参数url是URL字符串,而参数p1,p2,....是要抽取的部分,这个参数包含HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, USERINFO, QUERY:
      inline(ARRAY<STRUCT[,STRUCT]>) Explodes an array of structs into a table. (As of Hive 0.10.).將結構體數組提取出來並插入到表中
      9)其它函數
      collect

      Hive中collect相關的函數有collect_list和collect_set。
      它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重。还可以利用collect来突破group by的限制,Hive中在group by查詢的时候要求出现在select后面的列都必须是出现在group by后面的,即select列必须是作为分组依据的列,但是有的时候我们想根据A进行分组然后随便取出每个分组中的一个B,比如按照用户进行分组,然后随便拿出一个他看过的视频名称:

      select username, collect_list(video_name)[0] 
      from user_visit_video 
      group by username;
      

      注:與之對應的是explode,行轉列

      Lateral View

      lateral view是Hive中提供给表生成函數的结合,它可以解决表生成函數不能添加额外的select列的问题。
      lateral view其实就是用来和类似explode这种表生成函數函数联用的,lateral view会将表生成函數生成的结果放到一个虚拟表中,然后这个虚拟表会和输入行进行join来达到连接表生成函數外的select字段的目的。

      • 格式一
      lateral view udtf(expression) tableAlias as columnAlias (,columnAlias)*
      

      lateral view在UDTF前使用,表示连接UDTF所分裂的字段。

      UDTF(expression):使用的表生成函數,例如explode()。

      tableAlias:表示表生成函數转换的虚拟表的名称。

      columnAlias:表示虛擬表的虛擬字段名稱,如果分裂之後有一個列,則寫一個即可;如果分裂之後有多個列,按照列的順序在括號中聲明所有虛擬列名,以逗號隔開。

      eg:

      統計人員表中共有多少種愛好、多少個城市?

      select count(distinct(myCol1)), count(distinct(myCol2)) from psn

      LATERAL VIEW explode(likes) myTable1 AS myCol1

      LATERAL VIEW explode(address) myTable2 AS myCol2, myCol3;

      • 格式二
      from basetable (lateral view)*
      

      在from子句中使用,一般和格式一搭配使用,这个格式只是说明了lateral view的使用位置。
      from子句后面也可以跟多个lateral view語句,使用空格间隔就可以了。

      • 格式三
      from basetable (lateral view outer)*
      

      它比格式二只是多了一个outer,这个outer的作用是在表生成函數转换列的时候将其中的空也给展示出来,UDTF默认是忽略输出空的,加上outer之后,会将空也输出,显示为NULL。这个功能是在Hive0.12是开始支持的。

      7、窗口函數

      普通的聚合函數聚合的行集是组,窗口函数聚合的行集是窗口。因此,普通的聚合函數每组(Group by)只返回一个值,而窗口函数则可为窗口中的每行都返回一个值。简单理解就是对查詢的结果多出一列,这一列可以是聚合值,也可以是排序值。 窗口函数一般分为两类——聚合窗口函數和排序窗口函数。

      窗口函數的調用格式爲:

      函数名(列) OVER(选项)

      OVER 关键字表示把函数当成窗口函数而不是聚合函數。SQL标准允许将所有聚合函數用做窗口函数,使用OVER关键字来区分这两种用法。

      OVER()

      指定分析函數工作的數據窗口大小,這個數據窗口大小可能會隨著行的變化而變化;

      在over()裏面用的:

      ? CURRENT ROW:当前行;

      ? n PRECEDING:往前 n 行数据;

      ? n FOLLOWING:往后 n 行数据;

      ? UNBOUNDED:起点,

      ? UNBOUNDED PRECEDING 表示从前面的起点,

      ? UNBOUNDED FOLLOWING 表示到后面的终点;

      在over()前用的:

      ? LAG(col,n):往前第 n 行数据;

      ? LEAD(col,n):往后第 n 行数据;

      ? NTILE(n):把有序分區中的行分发到指定数据的组中,各个组有编号,编号从 1 开始,对于每一行,NTILE 返回此行所属的组的编号。注意:n 必须为 int 类型。

      聚合窗口函數
      SUM

      1.數據准備:

      cookie1,2020-04-10,1
      cookie1,2020-04-11,5
      cookie1,2020-04-12,7
      cookie1,2020-04-13,3
      cookie1,2020-04-14,2
      cookie1,2020-04-15,4
      cookie1,2020-04-16,4

      2.创建本地 business.txt,导入数据

      [chaos@hadoop102 datas]$ vi cookie1.txt

      3.创建 hive 表并导入数据
      create table cookie1(cookieid string, createtime string, pv int) row format delimited fields terminated by ‘,‘;
      load data local inpath "/opt/module/datas/cookie1.txt" into table cookie1;

      4.查詢示例

      select
      cookieid,
      createtime,
      pv,
      sum(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1,
      sum(pv) over (partition by cookieid order by createtime) as pv2,
      sum(pv) over (partition by cookieid) as pv3,
      sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4,
      sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5,
      sum(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6
      from cookie1;

      說明:

      pv1: 分组内从起点到当前行的pv累积,如,11号的pv1=10号的pv+11号的pv, 12号=10号+11号+12号
      pv2: 同pv1
      pv3: 分组内(cookie1)所有的pv累加
      pv4: 分组内当前行+往前3行,如,11号=10号+11号, 12号=10号+11号+12号, 13号=10号+11号+12号+13号, 14号=11号+12号+13号+14号
      pv5: 分组内当前行+往前3行+往后1行,如,14号=11号+12号+13号+14号+15号=5+7+3+2+4=21
      pv6: 分组内当前行+往后所有行,如,13号=13号+14号+15号+16号=3+2+4+4=13,14号=14号+15号+16号=2+4+4=10

      如果不指定ROWS BETWEEN,默认为从起点到当前行
      如果不指定ORDER BY,则将分组内所有值累加
      注:其他AVG,MIN,MAX,和SUM用法一樣

      AVG

      select
      cookieid,
      createtime,
      pv,
      avg(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
      avg(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
      avg(pv) over (partition by cookieid) as pv3, --分组内所有行
      avg(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3行
      avg(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1行
      avg(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
      from cookie1;

      MIN

      select
      cookieid,
      createtime,
      pv,
      min(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
      min(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
      min(pv) over (partition by cookieid) as pv3, --分组内所有行
      min(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3行
      min(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1行
      min(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
      from cookie1;

      MAX

      select
      cookieid,
      createtime,
      pv,
      max(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
      max(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
      max(pv) over (partition by cookieid) as pv3, --分组内所有行
      max(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3行
      max(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1行
      max(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
      from cookie1;

      排序窗口函數(序列函數)

      表示根据COL1分组,在分组内部根据COL2排序, 而此函数计算的值就表示每组内部排序后的顺序编号 (该编号在组内是连续并且唯一的)。

      注意: 序列函数不支持WINDOW子句。(ROWS BETWEEN)

      NTILE

      NTILE(n),用于將分組數據按照順序切分成n片,返回當前切片值
      NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid ORDER BY createtime ROWS BETWEEN 3 PRECEDING AND CURRENT ROW)
      如果切片不均勻,默認增加第一個切片的分布

      eg:

      select
      cookieid,
      createtime,
      pv,
      ntile(2) over (partition by cookieid order by createtime) as rn1, --分组内将数据分成2片
      ntile(3) over (partition by cookieid order by createtime) as rn2, --分组内将数据分成2片
      ntile(4) over (order by createtime) as rn3 --将所有数据分成4片
      from cookie.cookie2
      order by cookieid,createtime;

      統計一個cookie,pv數最多的前1/3的天

      select
      cookieid,
      createtime,
      pv,
      ntile(3) over (partition by cookieid order by pv desc ) as rn
      from cookie.cookie2;

      --rn = 1 的记录,就是我们想要的结果

      ROW_NUMBER

      ROW_NUMBER() –从1开始,按照顺序,生成分组内记录的序列
      ROW_NUMBER() 的应用场景非常多,再比如,获取分组内排序第一的记录;获取一个session中的第一条refer等。

      eg:

      -- 按照pv降序排列,生成分组内每天的pv名次

      select
      cookieid,
      createtime,
      pv,
      row_number() over (partition by cookieid order by pv desc) as rn
      from cookie.cookie2;

      -- 所以如果需要取每一组的前3名,只需要rn<=3即可,适合TopN

      RANK/DENSE_RANK

      —RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位
      —DENSE_RANK() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位

      eg:

      select
      cookieid,
      createtime,
      pv,
      rank() over (partition by cookieid order by pv desc) as rn1,
      dense_rank() over (partition by cookieid order by pv desc) as rn2,
      row_number() over (partition by cookieid order by pv desc) as rn3
      from cookie.cookie2
      where cookieid=‘cookie1‘;

      結果:

      rn1 rn2 rn3
      1 1 1
      2 2 2
      3 3 3
      3 3 4
      5 4 5
      6 5 6
      7 6 7

      ROW_NUMBER、RANK和DENSE_RANK的區別

      row_number: 按顺序编号,不留空位
      rank: 按顺序编号,相同的值编相同号,留空位
      dense_rank: 按顺序编号,相同的值编相同的号,不留空位

      實例:

      1.數據准備:

      name,orderdate,cost

      jack,2021-01-01,10

      tony,2021-01-02,15

      jack,2021-02-03,23

      tony,2021-01-04,29

      jack,2021-01-05,46

      jack,2021-04-06,42

      tony,2021-01-07,50

      jack,2021-01-08,55

      mart,2021-04-08,62

      mart,2021-04-09,68

      neil,2021-05-10,12

      mart,2021-04-11,75

      neil,2021-06-12,80

      mart,2021-04-13,94

      2.创建本地 business.txt,导入数据

      [chaos@hadoop102 datas]$ vi business.txt

      3.创建 hive 表并导入数据

      create table business(name string, orderdate string, cost int)

      ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘;

      load data local inpath "/opt/module/datas/business.txt" into table business;

      4.按需求查詢數據

      (1)查詢在 2020年 4 月份购买过的顾客及总人数

      (2)查詢顾客的购买明细及月购买总额

      (3)上述的场景,要将 cost 按照日期进行累加

      (4)查看顧客上次的購買時間

      (5)查詢前 20%时间的订单信息

      關于hive核心

      標簽:編程   mod   ini   not work   表達式   分區   numbers   效率   安全   

      原文地址:https://www.cnblogs.com/dachaos/p/15054914.html

      (0)
      (0)
         
      舉報
      評論 一句话評論(0
      登录后才能評論!
      蘭亭集智   國之畫   百度統計   站長統計   阿裏雲   chrome插件   新版天聽網
      ? 2014 mamicode.com 版權所有  聯系我們:gaon5@hotmail.com
      迷上了代碼!
      "I acquaint the inhabitants of Liège of this, that they may understand what fate threatens them if they should assume a similar attitude. A raiding party of hostiles had passed near the fort, and had killed, with particular atrocity, a family of settlers. The man and his wife had been tortured to death, the baby had had its brains beaten out against the trunk of a tree, a very young child had been hung by the wrist tendons to two meat hooks on the walls of the ranch-house, and left there to die. One big boy had had his eyelids and lips and nose cut off, and had been staked down to the ground with his remains of a face lying over a red-ant hole. Only two had [Pg 196]managed to escape,—a child of ten, who had carried his tiny sister in his arms, twenty miles of ca?ons and hills, to the post. Every engine of the English Court was put in motion to prevent the Electoral Prince from coming. Oxford had an interview with Schutz, in which he repeated that it was his applying for the writ to the Lord Chancellor instead of to the queen that had done all the mischief; that her Majesty, had it not been for this untoward incident, would have invited the Prince to come over and spend the summer in England—forgetting, as Schutz observed, that the minute before he had assured him that the queen was too much afraid of seeing any of that family here. He advised Schutz—who could not be convinced that he had done anything irregular in his application, quoting numerous proofs to show that it was the accustomed mode of applying for writs—to avoid appearing again at Court; but Schutz, not seeming disposed to follow that advice, immediately received a positive order to the same effect from the queen through another channel. Schutz, therefore, lost no time in returning to Hanover to justify himself. At the same time, Lord Strafford was instructed to write from the Hague, blaming the conduct of Schutz in applying for the writ in the manner he did, as disrespectful to the queen; for, though strictly legal for an absent peer to make such application, the etiquette was that he should defer it till he could do it personally. Strafford ridiculed the idea of any movement being afoot in favour of the Pretender, and observed that, as to sending him out of the Duke of Lorraine's territory, it was not practicable, because the French king maintained that he had fulfilled the treaty, Lorraine not being any part of France. On the other hand, there were striking signs that the cause[17] of Hanover was in the ascendant. Men who watched the course of events decided accordingly. Marlborough, who so lately had been making court to the Pretender, now wrote from Antwerp, urging the House of Hanover to send over the prince without delay to England; that the state of the queen's health made prompt action necessary; and that the presence of the prince in London would secure the succession without risk, without expense, and without war, and was the likeliest measure of inducing France to abandon its design of assisting the Pretender. Shorty had been frantically trying to catch the Deacon's eye, and was making all manner of winks and warning gestures without avail, for the Deacon answered frankly: "Sure you do," Dodd said, and his voice began to rise. He went to the bed, walked along its length to the window, as he talked, never facing Albin. "You know how to make me feel just fine, no worries at all, no complications, just a nice, simple life. With nothing at all in it, Albin. Nothing at all." J. O., I mean it. "Good-bye, my Bluebell, farewell to you, "Cudn't spare one hand to fetch over fifteen—that's a valiant idea. Now d?an't go loitering; fetch out your cattle afore they're roast beef, git out the horses and all the stock—and souse them ricks wot ?un't burning yit." "Do you know my voice?" asked one of Wells's companions. HoME亚洲春色欧美激情 ENTER NUMBET 0010cityzm.com.cn
      coxing.com.cn
      www.cxwasd.org.cn
      elgc.com.cn
      www.jiuzhu.org.cn
      taodream.com.cn
      www.ukjokes.org.cn
      www.zgxxmz.com.cn
      www.zhidfapk.com.cn
      www.zxubijun.com.cn
      云南润竿 黑女孩超级人体艺术 幼女乱伦电影 日本韩国女优三级片 欧美中年女性与黑人性事 上了同事强奸小说 上海公园裸体婚照论坛 阿片网在线观看无插件 雯雅婷30p 被大黑鸡巴狂操的大奶子 玩夜蒲网站 四女人体艺术照片曝光 插揷插综合 美女罗体和阴比 mywife 50p 阿姨和岳母的性爱 和丰满淫荡大妈做爱 biantaicaobitupian 都市激情系列片 儿子操女儿视频 av亚洲av 国产三级成人先峰 激情禁片视频 小泽玛利亚av人体艺术图片 白虎裸体艺术 成人激悁大?6?4 和丈母娘小姨子五月天 舟山日报艳照门 亲吻干妈的丝袜脚 美女服务过程图片 石小琳人体 五月天欧美亮女 日本色网站有哪些 北川景子绯闻 成人色色动漫网 日韩拳头塞逼快播 公公用力操媳妇 爱人体快播 女优3pav 奇米抄阴道大图片 欧美无码巨大奶子 性交 qvod 88by88中国 安藤沙耶香露点图 欧美女生种子 深夜五月激情 日本美女私处图组 这么青纯美女不多见了 为什么没有操逼图片 WWW_333388_COM 淫荡之穴 嫩人妻p 蹂躏后妈视频 嫩女嫩b嫩鲍12p 色网快播哥哥去干姐姐 丰满少妇给我足交 什么样的女人最性服 男阴茎 干奶子做爱图片 夏目奈奈经典电影 法牛母狗求配种 苍井空p小穴 深田恭子爽片 在线成人自拍bt论坛 淫骚色小说 caoavnet 进入 李宗瑞哪里又看 偷拍自拍欧洲色图 翔田千里 无码片 李嘉欣骚逼 性感美女性交setu 完全免费在线视频 华为网盘狠虐奴 衅逼色图 色蝎子 交换妻子米奇影视成人社区百度影音 松岛枫人体艺术 社区 论坛 成人 伦里小说全文阅读 日本女优性侵艳照门图片 太太刘小敏 白妇教师和黑人学生 色爱成人网 japanese free 18明星淫乱 干美艳丈母娘 360黄色的小说 用力操逼撸撸网 兽皇哪部最好看 鸡巴操穴潮喷图p 媛媛19人体艺术 快播265 舔妹妹的b 小说乱伦xiaosuo 咪咪导航农夫导航 波多野结衣背操图片 大牛av影院 大陆美女裸体艺术 骚美少妇 骚穴痒吃肉棒轮奸 婷婷五夜 阿姨的诱惑亚洲色图 工作时间干炮吃了播放 激情五夜天电影 荡妇放荡乱伦淫欲操逼小说 骑姐姐免 大奶控嫩穴控福音 最新与岳母乱伦小说 日本拳交迅雷 幼幼在线电影幼 操了老婆的穴 司万忠的大屌 性感的护士小姐做爱 抽插 小姐 浅川花里子 8片论坛 首页 母兽知我心 人妻波大穴紧口活好 按摩成人电影 我爱大学生无码迅雷下载 WWW_321GAN_COM xxxsexeurpe 老色哥西西 色妹妹乱伦网 迷奸幼幼小说 动漫西西人体技术 春暖花开影视性吧 快播刺激网址 caobywamg 表姐给我舔鸡巴 和小姐尻穴 陈丽佳大胆的人体艺术照 岳父鸡巴 极度兽性未删减 大鸡巴插破阴道 母亲与儿子乱伦文字片段 杨丽萍dedianying 黑人内射亚洲少妇 woyaocaozhangmuniangxiaoshuo 人体艺术91 超巨臀巨乳做爱 韩国色美女视频 快播色13名站导航 爆菊 女秘书 逼逼套图片 漫画美人上床 滛荡阿姨的诱惑漫画 全乳人体艺术 欧美免费黄色网 处女日逼留血图 成人动漫哥哥射 丁香激情五月动漫图 草逼经典 欧美女人和狗性交手机视频 欧美强奸老熟女有哪些电影 三级淫荡教师 小五月天影院 苍井空护士水蓝色裤袜全集 欧美性交图五 jiaojiaose 裸照最多的电影 缴丝旁四画的字有那些 非艺术美女图片 大尺度少妇人体艺术 国模巴拉拉大胆人体艺术图片 日女儿的嫩逼 彩金风暴仓井空 欧美孕妇性交成人网 快播美女色色色 airi44 李小璐被迷强奸 WWW_QQQ2222_COM 最原始的欲望强奸少妇淫乱情人篇 14岁美女做爱穴嫩的受不了 极品美女做爱在线视频 1_LIANYEXIUCHANG_CC 人妻性感按摩系列 快播 幼撸狗 张筱雨卜体艺术摄影 奸妈妈合集 亚洲无毒色 色网操逼视频播放 我想日死你 贱货 97se鈥唖ese鈥唖e japanmom9 女明星艳门照有哪些人 肥熟胖骚15p 群交 强奸 乱伦 幼齿 明星性爱快播 WWW_60JJJJ_COM 大学生做爱自拍快播 擦女人逼生值器 大鸡鸡插小屁眼水真多 日本gv男优香月凉 无马赛克做爱图 变态肛交性爱小说 小女孩小穴图片集 我爱肏屄图 人人色色专业成人电影网 毛毛片性爱做爱视频 美女野外操逼图片 操熟妇的浪穴 chenrentupia 苍井空彻底成为你的玩具 操逼无止境 裸模骚逼美眉 黑道是玩的 蔡俊涛 拱北在哪里 柯震东母亲 痴汉电车男下载 鹦鹉女神第二季 许易萍 3ipad 董璇和高云翔 张兆盼 f12012赛程 常熟零距离论坛 df25 金正昆社交礼仪 河北乡村医生 水果连连看小游戏 钢铁侠1国语 潮喷内射电影网站 少妇鲍鱼 4v5v94 av色人谷 真实h录音网 9517电影网 巨大的阳具百度影音 色即是空种子 校园春色小说网色妹妹 在线成人综合导航 � 极品人妖做爱bt 阴茎shejingtu 69色色图 空间中有很骚的照片的女生 骚女的大洞 亚洲图区屄 男性 中国大胆人体露阴写真 父女欢爱怀孕长篇小说 97电影色老头影院 谁有那种偷拍的图片网站 婷婷四房激情 丝袜大腿交ed2k 奇米第四色幼女 羽田未来第一会所 吉尺明步 我的性感表姐 迅雷影音成人 人体西西人体 佐佐木心音百度影音 欧美女裸体视频 日本学生妹自拍偷拍尿尿 mp4xxoo 漂亮的美女又遭内射了15p 乱伦操姐姐逼网 撸撸村大妈 sesese91网站luanlunxiaoshuo 韩国人体意思 欧美人艺术日本人体 电视剧激情图 欧美美女大胸图片 女人与兽性小说成人 张悠雨媚惑大胆图 欧美成人动漫图片网站 47人体艺术真实 nvyushitoupai 美女清纯校园春色黄色小说 网吧包间淫荡女孩 玩处女 巨乳公交快播 WWW_5666895_CN 成人网黄色网影音先锋 人人体 操少妇网站 俄罗斯美眉的逼 裸体美女自慰图 四间房 WWW_1100_LA 三级片免费在线观看 a欧美大胆艺术 av图片合成 大胆欧美艺术露b 暴力强奸无码 母子乱伦影片 姐姐丝袜12p 妈妈和儿子的三级电影 pron国产自拍 男用壮阳喷剂 日本阴部漫画美女邪恶图裸体护士美女露阴部 堤莎也加祼体 法国rtys 日本性感大鸡巴 日本幼女写真艺术 图片区电影区小说区动漫亚洲 成人综合色淫网 依娃没穿内裤 男女乱操 性爱录音吧 7788sec0m 哥哥干安区路 tangjiali人体 噢没骚逼 口爆qovd 国模局部高清人体 大奶瑶瑶性爱片这外流 多毛的屄影音先锋 巴士超短摩擦色网 最为经典的人体艺术 美国狠狠橹性交乱伦小说网 淫骚女裸体 � ribenchengrenxiaoshuo 如何看苍井空 大奶裸体人体图片 人体艺术图片bb图片大全 大肉棒干儿子的骚洞 四十路熟女快播 迷奸妹妹影院 亚洲电影欧美电影大陆三级偷拍自拍 大胆自拍人体艺术网 云欲轨道舒淇 变态sm 操腚视频 超酷网页视频播放器苍井空av 色书成人网 进进出出的少女阴道 美国十次啦宜春院影音先锋 欧美sese大图 室里美女人体艺术照片 抽插熟女撸 爱鸡巴的小穴 中国性交图片44p 骚五月二站 WWWFHXSCOM 日本av女星北条麻纪 老姐视频合集 女人手淫百度亚洲美女清晰穴嫩 肛交的女性多吗 欧美美女15p色 高潮叫床声骚歌曲试听 先锋影音欧美按摩 小说教师丝袜熟淫妈 杂交小说网盘分享 5555hh 男教师与木女学生小说 亚洲天堂av久草在线视频 青青绿色草在线视频 快播无毒在线看理论片 欧美色亲片 天天好比 就去色云播新闻 丝袜强奸系列 夫妻偷拍自拍快播 日本很唯美的成人片叫什么 色系军团张柏芝阴道图片 少女与猪 15p做爱动态图 铃木麻奈美 欧美情人操比图 小色哥独家提供快播 我插妈妈故事 淫射11p 90成人导航 666abcdbom 黄色性交录像片 激情五月tv 骚骚骚逼快播 美国女犯人监狱中的性交 怡红院头衔微信 在线观看 石井麻奈美是城下洋子吗 和美女主持人性爱故事 木耳已黑赤裸15p 搜索www99mmnncom 乱伦插九岁痛死我了好舒服 WWW278HHCOM 美教师人体艺术 鸡巴插逼自拍av bt成人种子免费下载 妞妞基地激情图片 操邻居少妇的大屁股 欧美女人露下沟图 做爱视频人人网人人摸 欧美肛交新视频 美袍人体 看母亲把小穴给儿子狠操 偷拍自拍成人摸 baiduse 汤芳人体艺术综合网 丈母娘用阴道满足我 沙耶香29p亚洲色图 能看见奶子的美国电影 踩踏影院网址 肥佬能看什么黄片 WWW266DDCOM 超嫩逼逼的少d自拍 pornstarpomvideo 香港男女性交生活 日韩性爱日韩成人 爱av性爱在线电影 班主任的小嫩穴 日本无码qvod 大色会操 人体bi WWWSXTAIDACOM 肉丝袜美女被摸小鸡鸡 va看逼 我操你了视频在线 play视频海量AV资源 偷拍一对农村老夫妻操 欧美承认视频 2014人妻成人小说 和小姨子乱伦性爱故事 那里被塞香蕉的小说片段 快播qvod犬交 欧美性爱绿岛快播影院 美女尤裸体阴道 真宫梨沙子兽王 哟女逼逼 黑人干少女屁眼 欧美性爱第1页妹妹要 50熟女控相片 日本女星美津纪的人体艺术写真 先锋强奸美女 日本护士女仆写真 骚妇为我口交 男人和女人上床睡觉视频 97gao新地址 傣族孔雀舞在线视频 少女被干影片 空色视频 恩啊大鸡巴插得我好爽啊 和同事操出白浆 百色操逼网 爽撸图片 模特姐姐勾引我 我轮着操了两个女学生 成人性爱图片网址 先峰亚洲图片 苍井空ed2k华为 操孕妇逼故事 qvodav护士 恨恨撸大鸡吧 女人和猴子交配视频美女 大鸡吧人体艺术偷拍 色图97 外国女人和大公狗做视频 欧美色图大奶牛肥骚p 丁香五月亚洲色坉 免费播放夫妻爱爱视频在线 爱操操欧美 女人撒尿大全 极品少妇黑穴 快播无码美女 乱伦自拍国产 美女战黑人大鸟五月 高跟鞋交种子 与苏鱼姐做爱 亚洲操逼辣图 河北传媒北区偷拍 美国十次啦978图片 都去哪里下载毛片 万众瞩目李宗瑞影视先锋 我与妈妈做爱抽插操逼 日本性感美女阴部性交 性爱大片视频 美女激情视频自拍 护士穿着丝袜被操 哪里有看a片的纲址 少妇无码自拍在线播放 打电话无码 yui度人体艺术图片 黄色美女黑木茸图片 强奸熟母 公媳交换乱伦 强奸乱轮日韩 成人在线小树林里操逼视频 欧激情美 快播操大奶熟女 儿子肏老妈 nu欧洲人兽交 WWWXXXJAPANCOM 公公与媳妇偷情作爱 与小姑激情性爱 新视觉影院电影大全亮剑 偷拍自拍性爱在线观看 wwwavav588comjguochan 我要看男人真鸡巴 张柏芝的黑木耳删除 丰满西洋女小说 操妹子图库 偷拍自拍亚洲图小说迅雷下载在线电影 金钟国qq号是多少 欧美色星天天排行网 欧美色图咪咪淫 什么舞最色 男人阴茎实图高清 大色狗导航快播 山村干幼女 亚洲色图婷婷色图 百度大尺度美女图片 幼女淫妹小说 口交乳交兽交 爱好群交的丝袜 萝莉啪啪啪jp www夜色资源 龙珠久久 变态操逼摸奶 人体艺EEcom 干美女网站 87福利偷拍 下流表演magnet 兽交电影国外 日嗷嗷啪动漫 欧美lesh百度网盘 高中女友小雯辣文网 乱伦小说乱伦电影网 37tpaaa 图片小说电影综合网www6xnxncom wwwb9999aaccom 美女拍肉穴 好看的小说黄色片段 白洁少妇绿帽风云 老鸡巴干小逼 ooxx黄色 西欧足球宝贝裸图 强奸乱伦变另类 丁香花六月www371uucom 青青草在线视频免费路线 黄色一级电影年轻的婶婶免费观看 厕所偷拍公开视频在线观看 亚洲欧美丝袜自拍变态 12p欧美女 成人丝袜美女美腿服务 用自慰器猛烈的抽插 电影妓女地狱动态图 av丝袜教师手机天堂 操逼在线赌博视频 女体色色 旗袍丝袜少妇大尺度图片 法人蝴蝶照 tteast东方 黑丝avi码合集 监禁强奸女大学生 嫩幼女人久久姓爱综合网 色色温 世界上被操最多的女的 亚洲播播wwwywbobocom 色妹妹ppp dizhi99两男两女 狂日空姐15p 母子乱伦快碰视频 欧美成人教育片巨乳wwwmjlnihydbufcn 情人淫电影 天天干狠狠日狠狠射小说eg43com xxooll电影 刘嘉玲h视频 kokeshi影音先锋 黄片少女网红 成人快播免看 肉欲强暴小说 妈妈的屁眼15p 新加坡小姐啪啪网站 突然被母亲以骑乘位 各种明星被调教的软件 人与动物成人电影东京热 人兽做爱的黄片 现实生活中制服丝袜美女 kusekucim 八哥夜夜操操操 cf禁处 144n人体艺术摄影 性奴表嫂调教 东方捆绑录2 www2211bocn 网友自拍色先锋影音 偷拍宾馆男女做爱图片 治疗的按摩女在线看 人与狗性小说 专门看黄色图片的网站有吗 姐姐干姐姐撸wwwhh5666com 青春草草草视频在线 露出内裤全力诱惑的妹妹黄色视频 haodiaoren 沙滩裸模 久久精品水原梨花视频 银色世纪银龄狠健 女调教阴茎 美国娱乐风流 qvod乱伦短篇小说 美国乱伦xxoo sese97快播成人电影片 俄罗斯毛逼性爱 都市激情欧美色图武侠古典都市 狂插骚逼嫩穴 成人怏播tom 求个网址人与动物 母乳喷射少女 2017av伦理片免播放器wwwganckcom 642ca路c0m 慰妻日本 欧美的AV番号哪里找 阿姨帮我吹小鸡 插B美妇在线 苏州制服熟女 人与兽性爱亚洲视频 受孕系列av 全裸高清Av艺术 日美淫乱小说 偷拍自拍撸撸撸插插插 有黑先生的小说 类似于虐待的网站 恋夜秀场房间电影 日本美女天天射 屄战小说 撸人妻色图 曰本成人视频奶子公主在线观看 欧美a片神鬼战士 动漫色图fatet本子亚洲色图 超碰公开乱伦人妻免费 爽插女大学生15p 快播a海量资源 wwwnimasecon 免费在线看黑种人与日本女优电影 强奸短裙少妇 av播放网页版 baidu性爱做爱过程小说 淫香操b网 曰本老熟女乱伦电影 成人卡通xp123影院 人畜小说magnet 淫乱圣母院 wwwabc388sscom 现代激情卡通 500人大群交组图 yunfile尺度 lulutv 做爱美女性感动态图 日本AV电影白百合 欧美老草系列 岛国系列福利 另类图片卡通动漫火影 太太被奸的动漫 免费网站看AV片无需插件 色奶奶成人avpy173com aolasoohpnbcn 激情五月播播播 乱伦做爱159p 欧色美奸 第33部中国第一SM女神首次全程做爱露脸 高嫁继母在线 大爷操网站 yiwilaisese 宝贝开心成人 怡红院AVmangent WWW3344BH 日本吃精射精颜射在线视频观看 全球影视帮 人妻野外调教小说 日日撸的新网址 草留社区五月天 btbt666亚洲电影 陈冠希艳照视频云盘分享 和好看网类似的影院 wwwjiuseng japanese人妻videos2 wwwsa008commagnet 日向雏田的阴唇 有个电影里有个战斗雄鸡 xiangganghuangyeluotimeinu 亚州空姐偷拍 少妇淫小说 操模特18p 俺去也五月婷婷48gaocom ssss成人片 馨雅惠现场视 亚洲色图欧美动漫妹妹 先锋影音少妇色图 porn365tvIJapanese 久久嫩屄在线 德国幼童AV网站 链変釜缃戠珯鍙玼jzz 迷人的保姆理论 少女学生一级黄色电影做爱好好操 看真人黄色性交大片 wwwtdgwwwgzxydlcomwwwseabcdcomwww55bteuwww11sa 1234caoprn 亚洲天堂美国 萝莉av厕所强推 家庭伦乱校园春色武侠古典 让公狗插进逼了 一级做爱无需播放器 撸管出品 亚洲最大无码黄色网站影音先锋资源站 www992ZyZC0m资源 www502日本少妇com 亚洲图片五月天20p 玖玖成年网 日本黄色电影两个父亲 兴化狼友论坛 水岛津实兽皇 木瓜奶美女人体艺术 翘屁股欣欣 肥逼干不动了 脱裤子摸阴蒂 爱艳艳色片 狂操幼儿园的学生 第一放映室网址 WWWSHOPCOM 调教女犬视频 怡春分院 豪放女大兵种子地址 招工体检抽插巨乳少女在线av播放 图文秀色小说 肏了小骚屄 谁有成人影音先锋网站 丰满肉体小说 爱乃由奈全部电影 西方人与狗性交片 合家乱伦成人电影 尻逼逼影院 偷偷干狠狠干艺术 仓井空片子 看了就想操的片子迅雷下载 亚洲色图色撸撸 韩国av视频 苍井空的蓝色天空 家庭乱伦之人妻 成人会动的图片 最新国模人体艺术 干美女狗趴 日本偷拍人体艺木 艳姆爱上色妹妹 三级电影xxx 乱伦成人故事 丰满大嫂 就爱操逼录音 色中色影音先锋三级片 第一次挨操感觉 人体赵唯依 天天好逼a 性交47p 真正爱幼女 早川濑里无码全集 caobizhan 8O后爱操B 美女交配做爱片 美女自慰丁字裤 www99re久久热获取 大鸡巴操淫荡性感美女 特级的A片动漫 成人在线免费观看肛交电影 7777撸 谁有免费不用注册观看的爱爱视频 强奸乱伦好老婆 wwwtiantiansheconm 姐姐骚奇奇 久久热哥哥久久色 欧美大图卡通动漫 好屌色啊32 亚洲姐弟撸 新密白寨拆迁 家庭乱伦+校园春色 搜索www95paocom 全国最大AV网站-百度 日韩苍井空 亚洲图片色网 色图片图片区 丝袜制服偷拍自拍亚洲色图 国内成人偷拍电影院 嫂子轮奸丝袜 家庭乱伦制服丝袜 WWWLSN97COM 可下载的av 黄色片子视平- 校园春色影音先锋伦理 第九月激情网yuyongniancom 美熟妇荣唐枫 超碰sm免费公开成人视频 无码专区国产 阴布图片大全 5566xxnt 国产自拍亚洲av泷泽萝拉 久久3p小视频网站 在线口爆偷拍视频 wwwsusu75cim 在线拳交免费视频 嗷嗷综合 japanese妈妈乱Videosmsexoxxxcowwwvervideosxcomwwwtxxxcom 97gan西瓜影音 女人被男人滋润黄片 www2016fvcom 搜索人妻熟女ccchnyav 家庭强奸伦理电影 www550ai30in 女大学生被插逼 少女小阴鲍p 淫色淫香人人影视 刘涛杨幂明星色图 wwwxx1818com ho930com www255lucno 在线播放bbb39卡顿无需播放器 爱撸吧小说 IPZ383 WWWABC300CON 欧美肛交视频超碰在线视频 搜索姐姐骚五月丁香成人激情网 biaoch 世界成人av在线 aluoli5社区 亚洲自拍在线观看 www射逼 澳门赌场 白白xxxx 校花跟我xxx 制服丝袜图片网站 5555she zzzz24com 汇聚精彩的制服丝袜大全 阴囊dizhi99 玩3p者 先锋资源在线国产自拍 我的娇妻被别人玩 av视频日本免费高清 成人电影偷拍自拍亚洲图片成人电影偷拍自拍亚洲图片 看日本一级大片软件 色色成人Cy视频 527电影网 任逍遥社区 强奸幼女开苞小说 校园春色偷拍自拍快播 大奶子少妇被强奸 在线观看的h站 超碰视频公开 ssvipshipincom 草三八 映像av加勒比先锋影音 色聚阁 少妇熟女15 成人快播女优 295cccom 强奸乱伦手机网站 华人av偷拍视频在线 15p美性中文网 成人嫩白美女被操视频 免费成人电影网站排行榜 凸凹蝌蚪窝 寡妇轮流抽插 日韩拳交av视频 偷窥自拍欧美色图在线播放 七龙珠h在线 亚州女性自慰视频wwwjiujiu6pcom 久久资源magnet 磁力链接幼女 艾艾影视 操逼人表演 色妞妞五月丁香 爱爱打炮影院ftp wwwxindz4 色图777 老大妈性爱视频 色姐姐找我解决 www5858Pcom 白色爽pP948C0m 日韩欧美乱伦 重口味变态另类第1页 偷拍自拍做爱小说 青青草草视频在线播放 色老2图片 撸撸色xfplay 91porm自拍视频 能看AV的电视台 亚洲图片偷拍视频区avav78com 久草热av在线小说 求插逼尺度大的电影 jiqing五月天迅雷下载 hentaixxx少女 北条麻妃亚洲无码 午夜剧场一级日本片 哥也爱导航 插我的小tube 97爱爱 三级成人在线视频网站 姐姐爱爱集 青青草999 操妈妈大白屁眼 欧洲一级性爱图片 成人裸体赌场 av女友精选亚洲激情 220hh怎么看不了了 n0015叶丽美先锋影音 少妇XX 欧美铯图片11p 超碰米奇在线视频人人 老头熟女 日本骚妞性交视频 www十八色图cn www234luus路com wwwxp6655com 意淫强奸校园春色强奸乱伦 欧美日韩在线超碰 人体艺术图片亚洲色图 熟女88亚洲AV色色王国 亚洲色精品图另类wwwavtt02com 插菊花综合网日韩 444cv 大奶d 女神遥手机在线播放 两性的技巧演示 民间小调小姨子黄色 影音先锋ye321最新地址 卫生纸福利在线网站 草榴免费视频 私色坊台湾 欧美gift动图 淫荡骚熟妇图片 色五月丝袜小说 克米亚洲 www3247bbC0m 世界大逼免费视频 奇米影视播放器手机版 学妹丝袜在线视频 校园春色888aaa 操儿媳av wwwADY映画com 火影纲手15p 美国发布站新站 wwwnntt999com 5533tcom AV视频插进去 色妹妹在线 父女刺激在线视频 在线播放国产偷拍 李宗盛三级片 草榴掰阴偷拍自拍 日本黄色We 快播性爱激情电影 久久国产视频精品大全wwwciweisuapicom 曰木av快播 超碰91祀频 gegesesediguo 1122在线ocm 撸少女在线视频 lululuAV 人兽性爱欧美三级片 李成敏操逼 97色色下载 琪琪20岁视频在线观看 人妖当着妈妈和爸爸 www698论坛 高跟黑丝做爱国产 色城文学 丁香成人社区妞妞基地 银虎聚色导航 国产免费性爱免费 狼人干干综合网新址 妹逼A∨ 极品少妇三级视频免费观看 女性淫 性爱技巧校园春色小说 sff636com 葡京成人视频 久草下一篇 8aame东方在线 肉棒乳沟亚洲图区 50p免费激情视频 色忧忧av国产 狠干干magnet 高跟鞋肉丝袜黄色网站 久草撸撸 无码日本系列校园春色 唐伯虎点秋香h版在线 www725bb 97资源中文版巨乳 清纯留学生的爱爱纪录片在线AV免费观看 亚洲熟女无码区 快播伧理 厕拍小处女 人人看79dycom 东北汉子换妻 宋佳magnet 老熟女操逼 圆脸50p 台湾佬中文网娱乐网手机版 亚洲色图欧美色图丰乳肥臀色图 77pian_com 儿媳妇的阴毛小说 电影韩国天堂的卧室 台湾洪爷乱伦小姨子小说 哦哦叉叉 av大帝在线nncao3com 色色夜午大片 监狱里的大鸡巴 成人手机网站你懂得 av7766com 伊人网伊人影院在线 啊好爽哦嗯视频电影 www撸撸av在线 35。con 太太是个学生妹 插妹妹2017 狼人综合干社区 色即是空自拍欧美 偷拍自拍丁香婷婷色色 欧美av88titlecn88首页 淫色网站www5xnxncom 麻生希人妻 古典武侠校园春色明星合成 高中生18p下 www560 丁香成人四房色 撸撸撸管 台北妹网 rr6080 97色播五月 搜索亚洲av一兰桂坊成人 云插 涶色网 骚鸡鸡 www7xpxpcomftp 东洋精品Av 搜索www5555dkcom 美国新农夫综合 激情五月天四房插放 龙虎豹成人图片美女 wwwcu82comwww 美女裸b艺术照片 亚州偷拍福利av狠狠撸 妈妈这样对我欧美 WWW960UUCOM 狠狠的干射在里面 上了室友的女友佩臻 www969ppcom百度 fupapacn wwwjr733 妈妈被我t 乳逼打包下载 136SAO 第一百书楼 制服丝袜影音先锋处女 姐夫日淫荡的小姨子乱伦小说网站 173影院 黄色图片小说 啊肉棒鸡巴猛的进了骚穴 鸣人和小樱h漫 欧美熟妇成人 想看看狗日人 国产区 日本av女wwwc5508com 宅男在线播放 变态另类成人电影 swww218ddcom 超碰在人人看青娱乐 都市激情乱伦小说在线看 色七七原址 少女秘宝馆宫地奈 爆操死小?臀 淫荡中年孕妇插穴 色博士导航 人奶少妇人体 54avav我爱avha0seav wwwnncao5com 成人片hd 淫舅母 wwwaaaaccm 狠狠搞影音先锋 久草在线男女XXX 另类在线先锋 日韩久久热 色人阁色播 欧美人天天草 葡京国产母子视频 欧美少妇阴户 强暴乱伦在线观看 影音先峰资源vs 亚洲熟女bbA 成人三级片mp4 高跟鞋射精爽 母女当厕奴 撸馆必备最新39yeCn老司机找不到好看的可不行保证能看哦不用谢 青青草婷婷修电脑 制服诱惑丝袜美腿成人自慰 乱伦l第一页 日韩成人大片 重口味电影院 动漫啪福利 影音先锋手机琪琪 caopornwwwyjizz0com A片视频韩国西瓜影音 男女草草视频在线观看wwwsowo999com 武侠校园亚洲欧美 小色哥大色姐 女王女奴 japanyellowmovie 无码在线va日韩 www47hhcom 人兽片AV百度云 奥特之母动漫黄片 操微信少妇丝袜15p 日本黄色动漫ed2k 唯美欧美内射magnet 操日韩女优 痴汉电车av无码 波多野结衣的逼图无码 那些年朋友母亲的屁眼 www5656ab ★幼幼导航●全部是精品★ 大鸡吧在线av 白色乱伦片 丁婷婷丁香五月 鲁啊鲁午夜成人小说 清纯唯美五月四房色 成人感恩节巴士之旅在线观看 日本av女优日本成人动漫 g片毛片免费观看网址 妞干网2015版www003hhhcom 熟女加勒比www040avcom 激情丝袜快播 亚洲AV满嘴射 wwwdyaxycomwwwdyaxycom 老少配影音先锋 日本色电影图 夜夜骑夜夜射视频在线wwwtjbattlecomwww18zlcomwww9333hcom 日本少女激情电影兽欲 先锋便器变态 9191自拍网 147艺体www147yscom 萝莉美女综合网 97bbeecem 视频男同av电影 WWW22KKMMCOM 都市激情校园春色古典武侠先锋影音 身穿民族服饰的中国少数民族漂亮美女大胆人体艺术7国内 小嫩淫水 加勒比女海盗2伦理完整版 rr150c0m av在线观看不用播放器 欧美兽交在线视频网站 强奸乱伦公公儿媳无码 黑人大鸡巴干美女屁眼 jjzzxxoo 奇米影视色五月婷 Av情人天堂 西瓜播放器看丝袜美腿 幼种子6到10岁真插xxxxnxxmoviescom kk615 西洋女人白虎色花逼图 我与美女楔做爱的故事 快播影院初次做爱的嫩模 Av乱论在线东方 丁香五月婷婷人与兽 成年人在级片 夜夜撸发发操 欧美亚洲成人最新伦理电影 哥哥干音影先锋欧美 人妻白领 亚洲狠狠五月丁香婷婷五月65xvcomwwwgushugecom 骑姐姐操屄 神奇的鲍鱼AVI 被迫子宫内射 亚洲色图↙ 乡下厕所偷拍下载 色和尚在线天堂 色木木cao 亚洲铯网 狠狠日狠狠爱色小姐 草裙性生活视频 WWW48com 与女大学生操逼 sihump4 免插件伦理张柏芝 美女丝袜激情图 swww222dzcom 奇米姐姐骚免费视频在线观看 黄色电视剧magnet 夜夜久久 超碰泰国妹02 www2345dywcom 尤物公开社区免费在线 色哥中文网在线 3DFALA 中国无码网 vvvv900 草榴社区香港 sm色电影视频三级片在线电影 雨霏私拍伊人写真 色色色性 厦大偷拍在线 wwwavtb678com改成什么 奇米影视4色下载 惹火尤物劳拉无插件511 和姐夫做爱吸乳 在线sesese 非常色的软件下免费看 少妇嫩p图片 丝袜舅妈撸撸 就去去 sssaoinfo 欧美激情性爱电影观看 能在迅雷播放的黄色电影网站 好屌日53公公儿媳 色综合网伊人综合网 红杏新芽图片 用手指插老婆肛门视频 韩国成人电影magnet 色四月激情五月婷婷33bbkkcom 欧美日韩裸体美女 欧美淫淫 母子浴室乱交淫姐姐影院 965paocnm 东亚av视频 979vvcom 操b电影五月天 韩国夫妻爱爱 淫乱市长夫人 xoxo教学 露脸丈母娘勾引女婿正在播放 日本伦理片侵入者 度巴拉斯电影在线观看 aiss熟女丝袜阿姨 人人摸人人干人人搞 日本春梦少妇 福利影院ssy7cn 情论坛 国产大妈性爱视频 幸福男友双飞姐妹花影音先锋 日本极品大胆私阴艺术 偷拍女子放尿 夜勤病h全集图片库 一女二男性爱图 快播成人电影爱爱 苍井空插穴图片hha6 操姐吧图片欣赏 女人屄有的有毛也有设有毛 白虎小穴被早 撸网快播 147大胆西西人人艺术 西西大胆美穴 熟女bb被操 瑜伽裸体艺术图片 sm熟女揭示版 插入人体阴道艺术 姊妹50p jinvwang 武汉18中教师门 www撸去也 嗯好爽插死我 了 十七岁逼图片 兔妹妹成人 进进出出美少女 黑丝大逼逼 chengshushaofudesaobi 亚洲色妻网 操逼操删除 白白色激情网 章子怡拍过哪些黄色 18av爽片 人妻女教师? 韩国三级片网址 俄罗斯兽幼成人社区 renasawaki 影音先锋70岁老太太和孙子做爱 俄罗斯幼网站 东莞扫黄女子图片 欧美大娘们走光 我爱性交xxx bt种子综合网 伦理东京热 另类伦小说区 亚洲专区 滛漫画 和媛媛乱轮 操性感白领少妇小说 bbb77wang 热香屄 成人视频鲁大妈 淫色黄色性交 范冰冰艳照门全图 狗口活1级 为什么我喜欢让情人操我 宾馆里偷拍夫妇做爱毛片 蜜桃成熟 骚货 迅雷亚洲资源 李宗瑞迷案 日韩超大胆美乳人体艺术 熟成人电影 禁片僵尸 淫贱女星卖逼图 有很多做爱过程的视频 逼嫩骚操在线视频 好色淫荡妻 冰莲人体 十圣广濑 jj插逼逼夜夜撸视频 苍井空色色电影先锋 人妖与黑人性爱图 欧美强奸无码 欧美性爱哥哥射综合图片区 悠惠美图片 操姐姐的bb 淫荡骚美女视图 wwwxxx580 绑起来干33p 黑人操逼偷拍自拍 角落里操学生妹 人老逼不老16p 镞ユ湰a钬唙 爱唯侦查成人小说 逍遥电影三级 成人无码图 红果56女生七七视频做情 狠狠色欧美色图 进爆欧美性爱 激情人体艺术图 色美女自拍偷拍 把鸡巴插入国模的逼里 外国大香蕉 肏小孩儿 哦美性爱伦理快播 WWW_888ZZZ_COM 台湾av论坛下载 日本av电影bt哪里下 第4色婷婷快播 123美女se图 骚货浪母 快播电影红楼淫梦 美女的那个部位 人体艺术照 我日姐妹阴道相片 动漫美女老师h图片 姓感美女人淫色 美女自拍小穴图片 恶狠狠黄色图 插入少妇的穴20p 妹骚逼电影 我干美女老师做爱 meisedianyingxiazai 147大胆美女人体艺术图片 波多野结衣作品吉吉影音 七哥哥色图 高清无码区 女孩放尿 wwwav777con 金卡戴珊 体操美女之性生活 操菊图 俄罗斯白虎妹妹 菊本舞做爱 色快播美女瑶瑶 高树三姐妹txt小说 千草忠夫 色妇女艺术中心 一级黄色动态爽的 性小说少女 国产父亲插女儿视频 人体美女捆缚艺术 夫妻交换明星色图 90后很萌女孩上课前被男友搞了一炮她还说快点要迟到了国语对白迅雷下载 huangse爱情游戏 吴丹岳母 韩国女人下体大胆裸体图 日本极限拳交qvod 李宗瑞快播2 美国美女被插 外国爱爱片 韩国青草视频快播 秀美网大尺度美女三级明星人体艺术图片 国模人体艺术大全 日本骚女14p 肉丝袜老婆被别人操了 乱伦家庭故事母子小说 威海老熟女 夜撸撸老年女人口交做爱 牛仔裤美女视频网盘 穿上内衣挺丰满脱了就平了 日本无码社区 爱撸成人激情网站 huangguangwangsequ 幸田莉莎 我要性 爱网 欧洲妹妹av视频 欧美辣妹炮图 丝袜淫穴脚交 日韩美女套图pp大胆图片3k少女玉体妖妖销魂大图优优人体艺术亚洲人体艺术俄 dn成人春色图片网 朝仓凉子的口交 阎学晶逼被谁强奸 网友自拍偷拍下载 侵犯苍井优 9bca8465000159f6 人与动物的色站 爆乳ol加班强 女教师轮奸强奸苍井空網止 è?cls.ftp.cc è? 中国最大胆顶级人体图片99 av女明星做爱的图片 公交车上的激情臀交 插隔壁少妇 成人dvdnet 快播摞摞 大胭人体艺术 欧美色图视频60p 黑白大战第一会所 百性阁撸撸侠 我想看黄片大全 大妈人体图片网 嫩抽插 小泽玛丽亚电影全集 各种门迅雷种子 斗战神猴子棍系加点 排舞月下凝望 雪绒花中文歌词 parks 哪种网站你懂的 中国电力投资 dm直投 梨梨衣 太监为什么要净身 淘宝游戏交易网 杨紫的男朋友 机构改革 十大使徒 piaoliannurenchunguan 8090鲁鲁 WWWWXRBCOM 韩国学生美少女人体艺术 二姨的高潮 吉吉影音资源网站 女人裸体阴部带血图片 亚州人曽性吧无码区干1930视频 欧美肏狗thunderftp 颾女被艹视频 求求欧美avtb 骚屄伦伦 俄罗斯另类人妖 五月天艳照图 性教育在线视频 色救救综合网 欧美黑丝骚女 在哪里找川星演出 五色天偷拍自拍 操国产老淑女 性爱图片亚洲图片 影音先锋息子 阴道极限虐待 兽交播放欧美撸撸色 多老女人照片的网站 乱伦熟女学生激情 色去吧橙子影院 宝妈给个操逼网址 www09kkk 女同性恋强奸图片 宋祖英操屄合成 好看的av成人网站 韩国女主播那个地方 肥婆a片在线 色清wang 幼嫩萝莉系列av 性爱av亚洲色图 亚洲动漫迅雷下载 大便系列种子 幼女片导航 李宗瑞在线免费视频 大屌黑屄电影系列 舒淇裸体写真 旗袍少妇做爱爽 苍井空的肉摸 关于由纪和木村的黄色小说 亚洲荡妹子性爱爆菊内射快播 seqingshi频 偷窃自拍 医生迷昏超碰视频 920hot在线视频 影音先锋法国妻子出轨 爱北京熟女 高坂越老师照片 吃逼小说 动态裸体美女大全 男强奸女做 老师是个小骚逼 人体艺体术图片扒开下体 淫荡少妇的骚穴亚洲美图 WWWMCOMYOUJJ 11sss小说 什么品种狗适合和女人性交 搜索www975bbcom 成人偷拍厕所视频 WWWHUANGSE0COM 妹妹色色亚洲偷拍 谁的qq空间有朴妮唛视频 芭芭拉人体艺术第一季 成人吉色 沧澜曲百度云 性淫乱人体图片 丽水的骚逼 成人交换 小岳母的淫水 兽交精彩片段2集wkanmin 有一个网站叫什么姐姐 国民党将领在大陆后代p02210102 波多结衣在线无播放器 迅雷性吧 妹妹吹箫色图 亚洲大奶狠狠射 色天使论坛官网 激情夜色 美女爱肏屄吗 偷拍自拍成人五月天 WWWWW99VVCOM 草原上的幸福欧美人体模特 外国3级片在线观看 快播成人片母子 肏小姨子肥屄的感觉 WWW81SESECOM 姐的乳尖 天天操丰满肥熟女人 最薄马赛克佐藤江梨花 痴汉在电影院强奸电影 欧美裸体漏阴图 日本少女大但人体艺术 美少妇故事 WWWHAOLE09COM 日本xxo淫荡 omeichengrenwang 非洲裸体海滩登陆 f05bbd3e00007510 慢慢插网 日本冲气人体艺术 屄图俄罗斯 夫妻互换淫动小说 网店欧美风的拍照 ah442百度影院 女人的阴部被尻图 中国竟然撤离了黄岩岛p02210102 姐姐是我的av梦工厂 女生殖器的合格标准图 qianjgjianluanlunzaixianshipin 黄色小说叫床声 超级巨根欧美淫片 少妇影音先锋 WWWID8888COMYKT 操屄裸体色图网 曰韩美女写真l 济宁大地影院今日影讯 与冷艳且高贵姨妈的激情性事 男女做那件事 人体大胆走光 杭州94年嫩mm厕所里 bt亚州色图 想尻刘亦菲 苍井空aob 腐女爱色网 我老婆睡觉好卷腿 插学妹穴在线 丝袜成人网站 高潮喷水电影 国产强奸幼幼逼 日本香艳美女阴户 快播大胆女人屁股bb图片 李宗瑞迷案女主角主图 劲片吉吉影音 操逼高潮呻吟 黄色glf 淫荡淫贱淫奴淫穴 骚屄潮喷 WWWMOYUCOM 日本美女奶子艺术照 人体艺术摄影百度视频 吸奶中文小说网 大鸡巴插我小穴图片 无毛性爱 熟女伦理网站鲁鲁 ddd42影音先锋播放 岩佐あゆみ吉吉语音 4444kk撸 美女下身人体艺术 韩国网站导航 色图操事露逼 妹妹视 色偷拍自拍和尚 wwwsex123 西西人体艺术私阴照片 立川明日香代表作 非洲大胖逼 9月天成人激情 70后骚女人图片 快播色青片大全电影网站 哥哥插我大肉棒 wwwxyx77com 图解av女主 苍空井阴图 不用快播网页在线a片 乱伦事丶我与二个女人的性福 乡村操嫩逼小说 大波人体摄映 18岁人体艺术亚洲 免费av成人电影 香港掰穴 女人屄露阴毛 撸撸中文字幕qvod 日本护士激情片段 大鸡巴插嫩逼 韩日人体艺术摄影 偷拍妈妈上厕所 白嫩美女做爱全图片 黑寡妇黄色小说 就要操电影院 我爱考逼21 我要播波 色女老师快播 儿子操妈妈熟女操逼 模特老婆被公公上 人妻被公公操的动漫 美国黄色人兽a片 日本人父亲插女儿逼 色妹妹激情放荡网 熟女少妇微信号码 欧洲母亲ed2k 撸波波rrr777 成人美女视频免费wwwlu2310com 新葡京久久热 乌克兰俄罗斯AV 时越芙美江AV图片 丰满的中国模特苏蕾 男s调教女m视频在线 艳母呱呱影院 卡通色图亚洲色图 黄色乱伦影音 成人影片人人插人人搞 平冢结衣卫生间 朋户区av视频 美女与野兽h小说 3e电影下载 伊藤高史 鹿城亚洲图片 亚洲流出小说 saiavloanmagnet 撸撸撸两炮 街拍偷拍自拍哺乳论坛 逍遥社区亚洲图片区 手机伦理激情网成人五月怡春院怡春院 人与动物解网址 残酷乳房200针 变态儿子强奸乱伦图 公司新来的女18p 操猎狐者 mcc色斗破 爱情做爱舔逼日记故事 我x你综合网百度 熟女妈妈淫水 亚洲快播6eeeeecom 孕妇91pro 兰栏坊野战 22xxtt 妹乳房久草淫淫 真实牛仔裤美女 色哥哥哥哥色狠狠咻狠射 abq姑娘 透明人变态强奸小说 娇妻被征服故事 怡春院弟一色院 西藏四级片 清纯唯美四月五月 我被大叔插漫画 刺激五月天 44dcdc怡春院 fulilt水仙 人妖激情床戏 岛国按摩推油gif 超乳美女 群交电影一本道 狠狠射性感美女屁股图片 我色我色开心播播网wwwdd0044com 空姐淫色内射图片 苍井空图片图片图片 欧美A片大香蕉wapdplqqmen 直播成人狼友电影 WWWWEIBOCOM 插妹妹黄色网站 亚洲人成图片成人电影色站导航 强奸三部曲小说 插吧插吧网65xvcom 俄罗斯每少女鲍15p 人与兽狠狠操 玩少妇自拍 嗯啊大鸡吧操骚货粗口 红色一级录像 千人斩制服丝 类似古丽阁网站 老婆和老头在楼梯间 电影和外国女人干一夜 熟妇日逼小说在线 妈妈教我进入她下体 欧美色吧美女艺术照 久久视频女生自慰视频过程 亚洲制服丝袜av电影网站 教育妈妈a足交 欧美激情淫荡熟妇 办公室绳结调教老师 热热爱久久热视频精品 伊人香蕉网WWWtr668com se成人文学色sese 摩擦鲍鱼 加小妹 淫乱炮图 37tp大胆美女私处 肉弹爽歪歪 日本熟女黄色 带字幕的黄片 看英国美女毛逼 百度影音bt下载17p 韩国爷爷和孙女电影在线 wwwcaonila 琪琪四色格原色网站 湾夏美女 欧美色图EY男人天堂 韩国电影密穴 屄里流水 炮机操逼视频 はたのゆい嫩穴 日本操逼录像 韩国黄色网站点击进入 宅宅动漫网乳母 迷奸大姐姐 网友俞拍大香蕉 无毛鸡巴图片 Asia666 东方AV若努 唐嫣av视频magnet 女王性虐 欧洲母子乱轮小说 得得啪线传承文化在线 久草热这里只有精品网 亚洲影院频道节目表 www玖玖热情com 狼老公吃老婆类奶子爸爸 白虎女骚逼 ggbb日本一级黄色操逼 欧美色中赴 欧美发发操 色尼玛性爱 明星门 wwwsaolaomeicom 我与奶奶的性爱故事 超碰夜射猫狠狠干 蜜桃女王 javhq成人 偷拍我跟美女在树林偷情图最新 陵川贴吧张国文 超碰日日嫂嫂 洞房花烛夜A片 下载邪恶姐弟小说 1024手机看片你懂的啊kxw8com 杂志性福 妈妈与儿子性交冴岛香织qvod 妖怪黄色小说 希望笑纳^0^ 草莓妹妹视频在线观看 av在线人妖和美女 日本妹子做爱见下阴图片 se妹妹影视 国产熟女露脸自mmm 日本胖女人视频 澳门新葡京国外在线视频 韩国裸体美女国 玉蒲团淫女 wwwhhmmnn AV调教男奴 另类乱伦类小说 东京热女优登育中图片 激情波客下载 印度艳情小说 AA妖妖 美女少妇自慰舌舔自慰 日本电影私处下载 酒神有声小说 狼群有声小说 都市极品风水师有声小说 星辰变有声小说原野 有声性小说 罗宫春色 爱春色 春色天成语 春色大路 樱井莉亚学生bt 红花樱井莉亚 樱井莉亚跳舞 樱井莉亚天空 小泽玛利亚电影照 小泽玛利亚短裙 波多野结衣bt 男人用品 最大的h网 电脑h网 可以上的h网 不要加www www淘宝骊威内饰 www南昌演唱会 开心五月天最新网址 四方伯伯开心五月天 东京热快播播放 东京热2009 东京热jpg 东京热0108 东京热wumaonvmishu 五月酒色网 四房色播酒色网 男色女色网酒色网 爱看黄片 手机上怎样看黄片 现在用什么播放器看黄片 女性看黄片 mian看黄片 啥样看黄片 女喜欢看黄片 哪里可以看黄色小说 有没有好看的黄色小说 黄色小说群 黄色小说论坛 oumeixingai 毛片网站 我和嫂嫂 皇家礼炮 九妹娱乐 快播影院 妹妹爽图 欧美短片 色哥导航 色男色女 色色小说 色舞综合 性感内裤 丫客帝國 夜色贵族 av淫色园 干老师电影 色+1影院 夜色火导航 淫色汤综合 做爱电影网 SKBB浪女 tv69在线 艾奇成人社区 高清做爱图片 极品少女电影 迷奸强奸电影 女主播色电影 色狼巴士电影 色咪咪娱乐网 色色激情影院 寻找一夜激情 24video 高清无缓冲影院 院浪妹爱动导航 久久热 噜噜色 日日啪 同涩网 哥哥she 色无极影院 就去撸 寂处阁 yeye撸 夜色阁 色青片大全电影网站 美女色图片 江苏卫视在线直播网 777米奇影视第四色 影音资源vr。色 345亚洲在线 汤姆影院色 成人教育av区 百度影音喜爱夜蒲1 在哪里找成人网 天海翼av高清无码下载下载 cqant 喷奶无码在线观看 grch在线观看 理黄色片219 Jordan Carver AV 日本av电影搬运工 avhd110 91原创视频网站 www9920j 哥哥宗合 聊斋艳谭17影院 人人操人人看人人摸 ssni 322在线 五十路中文字幕在线 真爱色色 四虎东方a在线男人天地 wwwbu996con xo三级片试看 91后视频 噜噜色噜噜巴噜噜网 美国十次啦在线揸b揸b 喵咪app官网任天堂 微兔影院 国产人人凹凸干久 一起去吃拉面吗k8经典 小明看看永久局域首页免费 香港黄页农夫与乡下妹 希岛爱理作品电影豆瓣 古墓丽影h版香奈儿第一集 av74 纱奈链接 日本操逼大毛片 亚洲图片强奸乱伦 五月综合激情视频 国产自拍换 夜色妹子 乱伦黄色电视小说 亚洲情侣自拍 新亚洲视频福利 比比资源365稳定更新 国产高清无码自拍做爱视频 女优磁力链接在线观看 高清黄色视频处女 欧美资源楼 在哪里能看到稚女av 2017人和动物乱能伦理片 李菡黑丝 福利大师www av88org 欧美色aⅴ 国产群交分类在线视频 密爱韩国电影128分钟 自拍艾滋在线 快舔揉捏我奶头我要 VTT644 性交视频p卩网 侵犯巨乳人妻同学在线 热舞自拍福利hd 青鱼视频色视频 秋霞伦理拍拍视频 秋霞三人做爱视频 小泽玛利亚成人在线视频 秋霞视频理论韩国英美 小影视频啪啪的那种 邪恶操逼片3 强行插入小穴视频 亚洲阿v天堂在线2017 青青草公开视频 请鬼有没三级镜头 青青草原在线观看色币 青青草吐痰推荐萌白酱 翘臀性感蕾丝兔 拳交无码免费视频 日本无码av不卡视频 约到D奶少妇酒店啪啪啪 两只大奶不断的甩脸 日本在线va无卡无码 日本全彩巨乳喷奶 幼幼操吧 日本情爱电影 日本骚黄视频 在线福利视频 日本人xoxo视频 日本偷拍公厕自慰小视频 日韩小视频无遮挡 淫乱DVD 日本啪啪在线福利 日本一级持黄片免色 日女人下面有声视频 日本骚黄黄色色淫淫A片 日本深夜激情插逼视频 日逼吗 西瓜影音 爆草黑丝 国内公厕偷拍 女生被操的喷奶 AV日本电影 美女自拍福利视频 教师妈妈A片 白丝在线播放 凹凸国产在线 亚洲 欧美 自拍 在线 天噜啦精品在线播放 va片 歪歪电影6080院黄 老熟女视频色偷偷 春野樱黄 性爱自拍直播视频 骑兵在线区2012 任你爽歪歪在线视频 日本夫妻生活片 国产番号 kk被窝电影网 七色影视鸭王 中文字幕高清无码三级动漫 神马电影dy888午夜4k4k 加勒比dvd在线播放 1122tn,co∩ 松下美雪在想观看 三上悠亚snis872在线 苍井空裸阴 16974视频观看 2ol8亚洲男人天堂网 阿v影音在线观看 奇热成人日韩影院 亚洲成人网2019 caoporw 610pp magnet 偷拍网友成人视频 靠死我,舔我比视频 在线处女巨乳口爆舔逼 明星强奸片 magnet v2pom国产 超碰美女色色视频 动感之星福利视频高清 噜噜色午夜影院 1无码舔足视频 快播大香蕉福利影院 3d美女动漫视频福利 爱色b 爱草123免费视频 美女肏屄视频短片 狼友 国庆 福利 提示:点开黑屏或白屏缓冲五秒 [红包] 福利免费视频 [红包] ht 小操黄色免费管看视频网址 456国产在线 迅雷网红刘婷 亚洲国产自拍线观看 昭和性事 亚洲做爱视频无码 2018在线国产偷拍视频迷奸 俄罗斯女兵电影伦理 美熟少妇++国产激情 奇奇影院月光下野兽 荷兰免费成人电影 免费一级毛片超级秀惑 佐山爱bt蚂蚁 六度影院韩国午夜手机视频 和隔壁女大学生做爱磁力下载。 天堂素人视频在线观看 提提热日本手机短视频在线看 cbinese home made video 无法隐藏的本能偷拍神马 冷火情人 aul player 何家驹肉铺 激情文学视频区 亲亲班草国产偷拍自拍 东京熟女aav 黄片国产在线 蓝沢润在线无码AV 黄色网站小视频手机版 外国a片 ftp 夜射鲁 艾小青福利视频 人人约人人操 韩国女主播无码 磁力链接 韩国jav STAR-663百度网盘 DVDES-668 老湿影视小视频 伦理片巨乳后母 公众号nqq499霸片 熟女 国产自拍 欧美激情 97伦理福利影院 年轻漂亮的后母伦理视频 0 福利大鸡吧 中文字幕青青草免费视频 内地福利自拍 大鸡巴插小嫩逼里面视频 A片种子下载 av高清無碼 777福利导航 三邦车视97神马电影 四虎影院试看体验区下体 在线偷拍自拍视频在线播放 激情做爱故事 91王老吉珠海在线视频 灌满了男人们的浓浆 姿势强化操视频 最新艺术片快播 十九禁止无遮无拦电影 一色屋任你搞经典免费视频 www,bbb807,com 日本阿v网站天堂2018 红楼78电影网 5000影院福利 福利影院怎样做爱 839bb路com 邪琉璃神社里番 洋大葱露脸 av淘宝欧美 校花女神肛门自慰视频 女奥待曼被怪兽侮辱 抖音茶茶轩轩骗小学生钱吗? 白丝在线网站 国产综合另类在线 蝌蚪窝人人操岳云鹏 303 德国电影 在线 7色伦久久 maxi 247 hime r任你日 免费手机AV网站 伦理片黑丝名字 828vv类似平台 爱上av 色琪琪影院网2018在 污网站试看 激情 欧美 亚洲 清纯 色呢子网站 色小说综合网 yuseid新地址 天天插 尹 人 三佳购物 假货 濑亚美莉 在线 童妓男网 美丽妇人理论 加勒比:一夲到东京热高清视频 丝袜惊艳李采潭 ed2k 韩日明星性爱视频自拍免费看。 小比动态视频 大香蕉久久精品热2019 口述雪萍 美颜巨乳 发育伦理电影 美腿丝袜 清纯唯美 亚洲 丝袜教师 caoporn下 2018婷婷七月综合 piczz漫画 百度埃及三级片在线观看 wwwlianxiu848 欧美AV小说在线 希咲彩大战黑人 WWWW色戎网站 十八禁网站试看 冲田杏梨无码流出 成人影院a在线看网址jajjaatat 天龙影院 magnet 影音资源羽田真理 类似4438的网站大全 play视频在线提供好看的无码AV在线观看和在线播放,更有大量经典无码AV高清无 桃色地球 ipz-771手机观看 咸涩网址大全 成人 社 app影院 蕾丝的诱惑xoxoxoxoxo 偷拍类av a牛影院 Caoporon最新视频ss AV的秘密 mp4 亚洲av大桥未久 霸天影院 神马超神电影午夜dy888马 日本2017三级456在线 无码校园贷陈思思 亚洲天堂v在线电影 韩国电影在线无码 阿v天堂2014手机在a 色插影院 人人深人人看免费 原千岁中文幕在线播放 浮利影院在线播放地址 夫の上司に犯迅雷中文 吃奶还摸下面影院 yy6080偷情视频 滴蜡 奴隶人形 福利资源 yy84毛片 出差保定带新同事一起出差洗完澡来我房间要求教她报票乘机把她搞了 斗鱼小Thirteener x91毛片 磁力链接美女 XXOO动态图午夜影院 xxoo视频射精 带情节故事的超碰在线视频看看 东方在线Va观看 东方在线aav视频 吃大鸡巴在线视频 大香蕉伊人在钱255 东北可爱小骚妻又一次3p娇小身材力战大屌-9 福利影视合集156 东方在线无码亚洲日韩 五月婷婷开心中文字幕加勒比 玩弄巨乳女邻居在线 正在播放伦理片女人做鸡 嘶哩嘶哩怎么看里番 012512_262-1pon 宝马女公园露出自拍 1314 magnet 日本性高潮yes视频 片趣app看片111 熟女三通 日本一级色片 好屌操好屌操好屌操 福利黄片无码 迅雷岛国种子 自拍偷拍 p A片连接 国产偷拍人妻自拍 免费色系视频二十多分钟 火影之艳色火影txt观看 狠狠烽 久久热在线视频国产91大神熊哥 澳门成人视频 亚洲AV最新百度地址 任你爽视频这里只有精免费 小电影在线成人 rion在线播放player 日本娇喘 另类AV777 7755gp 优女色奶 色四月婷婷网五月天手机在线电影 在线天堂avttnet 4438X全国最大电影 SNIS604在线 桃谷绘里香观看快播 任你爽精品在线播放一色屋 XRW-424在线 成人在线视频超碰福利视频 WwwBB62cD ckplayer菠萝影院 国产片少妇的密秘 成人免费一级视频a动漫片 552kkm视屏 免费高清无码dvd yyy323,com 真实偷拍视频磁力下载 水果湾 韩国 韩国伦理肉色丝袜诱惑 大乳性感美女视频 制服诱惑 种子 蛋蛋国产自拍 粉嫩美穴 揉乳呻吟 显b影院 欧美成人图片线视频 野战门主播磁力 magnet 抽插嗯嗯啊啊 青青草免费公开视频a 好美性交视频 曰本久久大香蕉在线观看 bibi影院福利 大屁股迅雷下载 1国产偷拍导航大全 fuli centeri 欧美兽交在线高清视频 曰美女图曰女性交打炮抽插进去啪啪啪图片 japanese julia nurse 日日本少妇小逼视频 AU自拍偷拍视频 日本做爱偷拍 91在免费线观华人4 宝贝啊慢点好深视频 偷拍av视频在线播放 2018老鸭窝老司机精品a毛 东方影库,东方在线av观看 q游览器下载的视频 坏木木漫画 女优雨田桃子IBW248 hnd416在线播放 MDG-166在线 谷露影院免费视频97 人人日,人人看,人人操 2016久久精品在线观看 va午夜男人 日本电影100禁手机在线观看 人人操人人热 4438x3全国 酒色tt婷婷 色狗影院新址 光棍影院手机里色 2000天天射天天日天天啪 父女福利影院 sdde398手机观看 8484aiai 宅宅网色av吧 美女主播磁力 啪啪啪1000部视频18岁 天海翼视频 91国产福利在线观看 咸漫在线 美拍上尺度大的id 中文字幕母亲和孩子 做爱短片 3p美女拍拍 484tv类似网站 人兽视频在哪里看 a4u第一全集在线观看 97mm美女福利视频 东京热网站 地址 午夜av影院 手机版 百条麻妃在线观看 秀彬开球剥衣无码迅雷 少妇流淫水视屏 可以免费看到美女在酒吧里被色狼泡的黄片 正在播放 国模雅雅片段1 片名:[有码中文]禁断介护 绀野ひかる状 手机免费视频在线观看 苍井空无码 av资源百度云 不要种子 78电影福利网 高跟丝袜影音 jjj激情播 邱淑贞番号种子 拉屎视频偷拍百度云 人妻偷拍在线观看 东京热一本遒 亲亲草色琪琪影院 51zhiyuan 东京热一本道视频人妻 越南午夜伦理影院 李小璐21视频在线福利 女教师自拍在线观看 欧洲操逼黄片 色先锋下药迷晕美女视频 日本成人做爱视频在线手机 快播母子乱伦小说 女郎狂濡 番号 青女成人免费自拍视频 丝袜磁力magnet合集 亲亲鸡鸡 赶尸艳谈 ed2k 四级xf 欧美无码av先锋影音 射MM 亚洲图片欧美色图卡通动漫 mo015天堂网影音先锋 91福利社试看片一分钟 色站导航丁香色 xx eeuss12电影在线观看 色噜噜一级综合 超碰页面60down 火 爆 巨 乳、护 士+超 市 少 妇、快 乐 的 寡 妇,高质量片,错过别后悔,让你 成人秒播 ww,199accom 华夏av在线 人人大香蕉淘宝av 当色和尚2017最新综合在线 777米奇影院国产情侣 棚户区卖暗视频 播放 91国产自拍在线观看 嗯……嗯的视频 色婷婷综合网 久久的色偷偷 校园贷10g资源在线观看 PR社福利姬美女 蛇信子姐姐百度云资源 约炮学生妹视频 高雄十八招台湾电影无删减 96嫂子水真多视频 vlook福利视频 99gmailco 极品家丁西瓜影院 1314不用播放器看a片 亚卅日韩影院在线 萝莉让爸爸艹 极品F罩杯二次元狂热少女女生寝室场景视角自拍视频 一本道青青草 1313电影网韩国演义圈 play海量视频sss 日本体内射精视频 白洁 王申 艾薇资源共享吧 淫色人妻dushijiqing 小清新午夜色视频 学生与老师操逼的视频 现在能看黄色视频的播放器 性爱大鸡吧直插 性直播在线视频bbb 小苹果色视频在线观看 小暮花恋迅雷链接 magnet 学生妹papapapa视频免费全 性小视频在线观看 性爱骚逼 香港三级裕子 先锋种子资源在线 向井蓝av无码 mp4在线 星川光希跟波多野结衣在线观看 小骚货福利视频 先锋影音里番 最新丝袜电影 重金新购豪门女厕偷拍系列制服美眉用验孕棒反复检测自己的尿液[6:00] 色和尚成人电影处女最新丝袜电影 周晓琳合集在线播放 拉脱维亚熟女的诱惑 网友自拍 手机另类 明日花绮罗生531在线观看 513hot热点福利网 2018最新美女视频大全 百姓福利导航 岛国少妇视频 日韓影院 中国男同志与男同志 在线看片h站免费 在线播放 湿滑 bl插插电影 鬼父百度链接迅雷下载 自慰小视屏免费 鲁尔山国内外亚洲成人电影 超碰任你干免费在线 小穴 波多野 大鸡吧插小姐免费视频 FC2 PPV 732746 岛国苍井空视频 日本高清视频www153 女人与女人滋力连接 ftp 北条麻妃在线AV 91porm国内自拍app 亚洲 偷拍99ses 午夜经典性三级 日本成人做爱老湿影院 88资源总站 刚参加工作的还有点稚嫩的女友酒店开房露脸/刚参加工作的还有点稚嫩的女友酒店开 湿妹影院播放器毛片 先锋 洋土豪米糕 寄宿公寓本子 日本AV开机是老虎 欲色影视小视频tv 2828555毛片 邪恶少漫画大全439 在线美女性交视频免费试看吗 明星级性感美女与公司领导酒店 pissing wc直播 做爱尻逼神器视频 免费下载A片的链接 何悦曦 久久超碰成人在线视频 - 百度 饭冈加奈子的在线视频 老乌龟在线视频丝袜 91视频日本啪啪啪 色ⅩXⅩⅩ 性爱无遮挡影院 av美女做爱视频 做爱视频AA 吃下面的视频 mp4 日本学生丝袜被操视频 强奸乱伦亚洲视频在线播放 婷婷福利老司机最全在线 澳门葡京在线视频成人 舞帝影音 大奶集中营 视频在线观看 日本素人秘书 超级诱惑 mp4 番性奴 拳交肛门塞瓶视频 大奶国语 magnet sm老爹影院 guoneizaixianxiaoshipin 黑屌免费视频 倫理片在線 黄色乱伦小说视频 99琪琪影院 露脸超嫩的UU7后萌萌脸美女 在沙发上被大鸡巴不停抽插 炮图 穴 美国美女被中国大鸡巴插逼视频 手机看片1240 阿力沙在线网站 一级毛片牛牛 綜合淫妻 人人澡人人漠大学生 sm乐园 868 秋霞电影网偷拍网 放课后的教室小明看看 百性阁 综合另类酷文 怡春院怡红美国十次综合 很像杨颖的无码av 台湾成人漫画 莲实克蕾儿ecr 大香伊蕉人在线播放 国产偷搞自拍视频区 苍井优一本道在线 苍井空公主视频全集 被小肉棒插入视频 操少妇13p可乐操 波多野结衣xXx视频 苍井空三级的电影全集14集8k 艹逼福利视频在线观看 韩国vikv视频 操B直播软件 草穴喷水在线观看 操女神完整视频分享【约啪看涧介 国产自拍偷情做爱 爆乳国模少妇梅馨 屄视频欧美 操老妇女视频网站 国产自拍VR 5548x 狠狠 婷婷丁香五月 校园性爱伦理 无码小说伦理电影图片 av色影院 丁香五月经典有声 色搜在线播放 祼体剧场 洪荒魂巫 东凛伦理电影手机在线 4438成人网官网 苍老师护士AV 42 avcom 丁香茶五月天 猫咪av影院 乱伦人人操 4088青苹果电影院 群p欧美 thunder av网址站 008精品视频在线 ww178nn 神秘看片官网 丁香五月武侠 磁力链 接三级片 紫竹铃第11期炮机实验 东方伊圃园在线观看 飞鹰4800影院 亚洲aV电影天堂 苍老师在线55集 手机在线观看美祢藤 人人可夫的女人 夜色邦 波多 两根插口嚼~h高午夜电影 淫贱老师公共则所 52avh 长泽梓AV在哪看 协和手机在线播放 肉嫁高柳 magnet 美国华裔张丽HD 碰超首页公开 超黄毛片 wtfpass按摩 sm美女视频在线 超碰在线免费看视频100 qvod日本一本道夫 百度云我弟弟的女朋友资源 操b狐狸视频 暴风影音 暴强国产自拍 超碰成年福利 必看福利电影网 成人 tokyohothd在线播放 超碰在线AV qingyuie 操bxx 被窝福利九州 v ip eeusssvv 国产小视频网站 西瓜影音 久久爱兔费高清一视频 小米粒自拍在线 射逼tv 光棍推荐y1111 铃木里美在线ck观看 早早去第一亚洲视频网站 一色屋免费成人在线视频 长安欧尚X70A 长安欧尚X70A" (805) -(乡土)" 91做爱爱视频 人人;YVV 夜夜 成人 自拍 猛虎影视库 av star 色悠悠,综合鬼8 小池里奈 av无码磁力 水岛津实三部曲在线观看 国产精品男女爱爱视频 熟女人妇 西瓜影音 xiaocaoshipinwang 珙琪影视在线观看 我们立足于美利坚合众国,在线 色青青在线播放 流仪系列在线观看 黄片BiBi小岛 百影库 青娱乐精品快播 黄片巨乳老师 cbcb66不能进了 色色男女免费视频 喷水日B轮奸在线看 做爱视频鸡吧插的好舒服啊 啪啪成人影院动漫 亚洲肥胖熟妇视频 日BiBi手视频 口交肛交啪啪啪视频 千寻鲁 男人影院在线观看视频播放-搜索页 ckplayer 资源网 hhl7878 爽爽色视频 丝袜三级网站 淫会影片 午夜影院男人舔逼 竹内纱里奈 bt 一本道 东京热 成人资源 噜噜吧老司机免费影院 944ee 熟女乱伦 自拍偷拍 AV骚逼视频 电车激情之前a片 欧美足交磁力 下载 哥干美女l2b 黄片91福利 小骚娃 午夜老司机美日视频 操小比比视频 tokyohot加勒比一本道吉吉影音 出租屋激情视频播放器 咪咪爱影视 巨乳空姐在线播放 免费无码在线播放dvd ffee11 西红柿福利直播 玉兔miki热舞视频 成人电彲网 wavr黄色 操逼视频草榴影院 网友侵入自拍 韩国美女性解放与性交视频 国语免费做爱视频 厕所自慰中国hd 肏我在线播放 草机巴视频下载 苍井优福利片 爆菊花福利视频在线观看 藏花阁网页视频 不用VIP看操女人 不知火舞和三个男儿公园全彩 不需要播放器的三级片视频 厕所偷拍在线观看 草色屋 国产中国在线观看 本庄玲 中文 不用播放器的手机在线视频无码av 操苍 滨田范子无码在线 果哥陈怡曼 草草草福利导航 主播票在线播放 宾馆夫妻干活偷拍视频 色色的动漫视频 日本电影表哥可以控制人心 电脑版免费A片 www,fac,58,C0M 528我爱52avhaose1 一本道免费视频,一本道影院 艹逼九九视频 欧美萝莉自慰视频 中国人做爱百度云资源 韩国女主播伦理ck在线观看 圣窝美女受拘束 神马影院3P 日本mmm视频频 pp6s视频 东方伊av码在线影院 爱人天堂bt 亚洲av在线播放人妻 grch260种子 988大鸡巴插美女大逼视 80看av 31fxzy 强奸抄 dd444444 成人黄色毛片1级 老司机午夜福利放松剧场 越南自拍 成年影片影院免 大菊花视频福利在线 琪琪see色原站东京热 伊人亚洲综合网色 另类图片亚洲地图 正在播放爱泽花梨教室 任你干在线视频观 hhhh84 露脸偷情45岁少妇 ak级毛片 segui77最新网站sxj 男人的午夜福利 足交射精视频在线看 97成人做爱视频 动漫自拍 苍井空无码 mp4 ckck伦理 鬼父有无码版的吗 性感美臀自拍偷拍在线观看 99自拍在线国产视频 696人体 乱辈通奷在线视频 日本阿v网站在线观看 - 在线视频亚洲系列中文字幕 女优脚趾番号出处 午夜福利视频自拍偷拍 济南谭崔 91自拍原创申请区精华 水朝阳野下马 小姐偷拍自拍口爆 学生自拍片黄片 wwwXXwXXX 哪个一播放器有自拍内衣 楼梯小姐在线观看 迅雷幼 色偷偷97视频在线 色天使之手机在线 美女pp小黄视频 神马福利747视频 美脚踩茎 毛片黄色午夜啪啪啪 乱伦无码电影 伦理电影自拍福利 麻仓忧 吉吉影音 龙泽 mp4 漏点写真视频合集 色久优优 商机创业网 伦理片 熟女 美国女人操穴视频 六月丁香手机在线观看 毛片福利社 秋霞好嫂子 禁忌成人剧场 求全是女厕偷拍的网站 活春宫磁力下 mp4 加贺雅哪能看 气质漂亮的美女少妇和闺蜜男友宾馆私会开房偷情时被偷拍2人如胶似漆的缠绵后撕破 情欲丛林电影免费播放 家政熟女在线观看 极速在线 青春草夜恋视频 簧片小视频包你射 极品人妻mp4百度云下载 家里女优在线 精品福利软件下载 人妻堕落1234 咪咪上有纹身的高颜值大奶靓妹被猛男按在床上狂草,好像还是黑社会大哥的马子, rosi恋恋红尘 国产色爱网站 网络色色Av新片 丘关工三X 自拍 偷拍 国产 五码 国产女主sm调教视频 偷拍 亚洲 在线 电影 乱伦 小说 西瓜 谷露影院 日韩 电影 炮广西妹子Tawtaw这妹子有点像那 完全没费在线av rhj-073 007kkk 婷婷大香蕉伊人线 性激情影院 韩国主播青草 西瓜影音 日本三级456重口味 玖玖操四虎视频 啪啪永久免费网 luoli hmanh 狠狠轮免费视频 国产另类自拍亚洲 东京干手机福利七个链接 吉泽明步无码snis 一838 花社资源 www,323hs,com 与不懂是的女同学一起同居的h生活 求直接看片网站你懂的 偷拍女大学生上厕所在线播放 台湾一级古装大全 借宝贷视频大全在线 亚洲国产在线自拍 大美女上厕所各种视频 福利所第一绿色导航_绿色小导航网址_绿色小导航你懂得 黄色影院福利区免费无需下载在线试看。 后入翘屁丝袜少妇小说 欧美在线AV 很污的黄网站免费视频湿妹影院 好看的网站 黄瓜视频网站在线播放 黄片国产免费的完整 欧美 制服丝袜 影音先锋 女同性恋做激情视频 漂亮丰满的车模口交口技绝对千锤百炼。 黑人大鸡巴抽女人小穴视频 黑哥tv登录740 湖力影院 欧美色欲影视 泡个大学妹子脸蛋漂亮性欲强酒店操完逼射嘴里吃了 横山美雪视频在线观看 黄色A片直播 黑丝奈奈 mp4 嗨碰牛牛午?成人视频 黑人的大j吧xoxo 欧美视频干西方国家红灯区老鸡视频 中文字幕强奸乱伦视频 人体芝术导航90 男女上床尻屄视频 日本jjzz视频在线观看 川a8x555玛莎拉蒂 ribenglilunpian 伤情影院日本va视频 小芹肉肉棒影院 夫妻一级黄色录像片子 短篇黄文超污多肉 天天干天天啪美女护士 东北大炕自拍在线 日本乱伦电影网盘 国产自拍 - 吹雪琦玉认真活塞式 av视费影院 亚浙洲乱伦 国产自拍女友在线 国产成人基地 jaVHD longteng xiaishuo 亚洲性爱直播 女神Alicia土豪玩地下恋性爱视频 疯狂做爱 偷拍,自拍,啪啪 色福利亦航 美女丼 邪恶道全彩悦影院 1501634395重口味 迷奸XXXⅩ 日本巨乳人妻 日本巨乳熟妇视频 换妻3P玩的正激烈中途接电话的时候还在继续抽插超刺激 佐伯ほのか 巨乳美女扮秘書ol 肉色無痕絲襪自摸特別挑 初二女生全身光子视频 91四虎 胶袜 里番 国产在线资源稳定 叶儿影院 2015av 罗马电影 日本一本道官方网 JSU字幕组波多野结衣 大成爰色狠爽 青娱乐久久在线极品乐盛宴 波多和老人在线 色老板移动影院 2018韩国新毛片基地 青青草原视频av 欧美亚洲图区另类国产第一页 AV日产 37papa 快乐毛片 亚洲上床接吻视频 网红主播影音先锋在线视频 捏胸的动漫视频 俄罗斯骚逼在线 露奶露阴毛全裸乳神 1024人妻你懂得 歴代豊滿巨乳大人気女優 手机av福利网站导航 黑丝美女美腿诱惑视频 办公室肉丝白衬衣无码 a片电影在线 番号无码最新 青草青无码最新视频 嘻嘻嘻69日本 998自拍视频在线观看 黑人大战白人妹子在线33视频 国产主播户外视频磁链接 下载 国产自拍17啪啪啪 国内自拍青青20186 国内自拍啪啪久久网 国产主播模特偷拍在线手机视频 免费私密福利小视频 好大不要嗯啊抽插高潮 国内真实偷拍 手机在线 国产中年肥女人做爱视频 男女互插视频2018 男人部落网每日免费的视频 国内偷拍 李宗瑞 韩国喷奶视频网站 国产自拍黄色三集片 免费人妖肛交视频 永久站国内会所厕所偷拍视频 tear 福利视频 人体府 自拍妻 火影忍者剧场版色色 先锋 校园chunse tpzp 成人电影群发话术 国产成人在线自拍偷拍 港台A片 下载 2射雕英雄传黄色视频 V丨P视频免费看 国内自拍九月天 网红福利共享网 3视频凹凸 睌晚干免费视频 y0ujⅰzz 口爆片在线看完 国产母畜 ×x免费 C仔跪着颜射的海津晶子,美女外围女超爽服务 一本道色月影院 国产自拍正在播放在线 anquyer 伊人大香蕉欧美性交电影 大咪咪琪琪色影院 jizzrontn国语 s8girl微杏 成人狂欢福利网 爱爱喷潮呻吟视频 日韩学生姝美 女三级伦理福利大香 高清幼女网站 俄罗斯毛片基地 小视频黄网 HEYZO-1489 一射入魂 偷拔套套肏到射好射滿 9 – 朝川心實(中文字幕) 武藏 网红萝莉自慰视频网站 三客优午夜伦理 《影》抢先版MP4播放器在线观看 中文欧美目韩亚洲在线 安卓成人電影 av主播国产 滨崎真绪在线 一个色论坛 A片人人日 日本女孩午夜福利剧场 晚娘钟缇丽在线观看 677rr mp4 激情午夜夭 白商海 三里屯优衣库在线 亚洲 无码 自拍 午夜色和尚视频 av男人小视库 唐人街拍安卓二免费观看 樱木凛在线种子 91天堂号码 成人区 第五季 2017日本三级48天 ffeevieofas性欧美群交 yeyehei改为什么网址 午夜片神马影院福利1000集 奸轰片 十八禁黄片儿大全在线免费 一道本加勒比在线视频 雨芳恋歌西瓜影音 偷拍大陆侣激情手机在线观看 snis071 图片伦理视频小说偷拍 虎牙高管潜规则视频 图片区成人福利 日子献精无码视频 强奸美女视频在线看 白洁和孙俪 柳岩床震视频百度云 酒店喝醉被下药被上福利视频 花蜜性爱小说 WWW_74188_COM 插美女的逼欧美 少妇奶孑 超清晰性爱图片 大奶子性爱影片 李宗瑞不雅视频 草漂亮熟女 有声huangse小说 男女尻屄网 人妖性行为大全 女人操逼打炮 日本偷拍自拍色中色成人电影影音先锋观看 大黑鸡巴猛插骚逼 全裸体日本女优大胆人体艺术 日本人体大胆诱惑 熟女伦乱下一页 美女肏皮 电车家庭教师苍井空 大屌插屄视频 天天操欧美图片 性感香港嫩模特写真 兽交偷拍自拍 裸体妹子图片高清 一个白虎嫩少女自拍 美女最好看的逼 亚洲高清内射 男的下面插女的下面视频 nbadapiguqizi 亚洲色图欧美色图另类色图 不用下载的裸聊真 色色bt下载 百度成人电影 强奸片快播下载 浪女日屄 欧美口交足交 偷拍熟女被操 黄昏去操全国 溪流中的美女人体 教师诱惑电影波野波多结衣 美国13名站导航啦 女同性小说 超碰子码 欧美色成人导航 强奸楔琦琦 影音先锋模特迷奸 玉木宏ins 国亩欢大胆露阴毛 一本道熟女俱乐部 丰满淫荡女 操少女小说 妹妹小学好多水 巨乳shufu 有能看外国成人娱乐节目的 裸聊影音先锋 皇瑟网址大全 佐佐木心音影音先锋 干一干妹妹四第四色死 猛男女在野外激情性交视频 男友第一次亲吻我的阴部 日本90后美女操p WWW_551AA_COM 欧美第1页苍井空 父女做爱电影快播 骚货荡妇肥逼 国产偷拍自拍先锋 亚洲包射网34页 乱伦熟女肥穴淫娃思 WWW_STVDVD_COMDYHTM 大黑鸡巴华人骚妹 色熟妇网 淫b内射纲电影 欧美美女动态玩屄 俺去也亚洲色图 快播988 鸳鸯秘谱真人 大咪图 妹子干绘合 早上鲁中午鲁晚上鲁777免播器 性爱图片20p小姐