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

利用 MapReduce分析明星微博數據實戰

大數據
互聯網的飛速發展本身也造就了一批互聯網明星,這些人借助新的手段,最大程度發揮了粉絲經濟的能量和作用,在互聯網時代賺得盆滿缽滿。正是基于這樣一個大背景,今天我們做一個分析明星微博數據的小項目

互聯網時代的到來,使得名人的形象變得更加鮮活,也拉近了明星和粉絲之間的距離。歌星、影星、體育明星、作家等名人通過互聯網能夠輕易實現和粉絲的互動,賺錢也變得***的簡單。同時,互聯網的飛速發展本身也造就了一批互聯網明星,這些人借助新的手段,***程度發揮了粉絲經濟的能量和作用,在互聯網時代賺得盆滿缽滿。

正是基于這樣一個大背景,今天我們做一個分析明星微博數據的小項目。

1、項目需求

自定義輸入格式,將明星微博數據排序后按粉絲數關注數 微博數分別輸出到不同文件中。

2、數據集

明星 明星微博名稱 粉絲數 關注數 微博數

俞灝明 俞灝明 10591367 206 558

李敏鎬 李敏鎬 22898071 11 268

林心如 林心如 57488649 214 5940

黃曉明 黃曉明 22616497 506 2011

張靚穎 張靚穎 27878708 238 3846

李娜 李娜 23309493 81 631

徐小平 徐小平 11659926 1929 13795

唐嫣 唐嫣 24301532 200 2391

有斐君 有斐君 8779383 577 4251

3、分析

自定義InputFormat讀取明星微博數據,通過自定義getSortedHashtableByValue方法分別對明星的fan、followers、microblogs數據進行排序,然后利用MultipleOutputs輸出不同項到不同的文件中

4、實現

1)、定義WeiBo實體類,實現WritableComparable接口

  1. package com.buaa; 
  2.  
  3. import java.io.DataInput; 
  4. import java.io.DataOutput; 
  5. import java.io.IOException; 
  6.  
  7. import org.apache.hadoop.io.WritableComparable; 
  8.  
  9. /**  
  10. * @ProjectName MicroblogStar 
  11. * @PackageName com.buaa 
  12. * @ClassName WeiBo 
  13. * @Description TODO 
  14. * @Author 劉吉超 
  15. * @Date 2016-05-07 14:54:29 
  16. */ 
  17. public class WeiBo implements WritableComparable<Object> { 
  18.     // 粉絲 
  19.     private int fan; 
  20.     // 關注 
  21.     private int followers; 
  22.     // 微博數 
  23.     private int microblogs; 
  24.      
  25.     public WeiBo(){}; 
  26.      
  27.     public WeiBo(int fan,int followers,int microblogs){ 
  28.         this.fan = fan; 
  29.         this.followers = followers; 
  30.         this.microblogs = microblogs; 
  31.     } 
  32.      
  33.     public void set(int fan,int followers,int microblogs){ 
  34.         this.fan = fan; 
  35.         this.followers = followers; 
  36.         this.microblogs = microblogs; 
  37.     } 
  38.      
  39.     // 實現WritableComparable的readFields()方法,以便該數據能被序列化后完成網絡傳輸或文件輸入 
  40.     @Override 
  41.     public void readFields(DataInput inthrows IOException { 
  42.         fan  = in.readInt(); 
  43.         followers = in.readInt(); 
  44.         microblogs = in.readInt(); 
  45.     } 
  46.      
  47.     // 實現WritableComparable的write()方法,以便該數據能被序列化后完成網絡傳輸或文件輸出  
  48.     @Override 
  49.     public void write(DataOutput out) throws IOException { 
  50.         out.writeInt(fan); 
  51.         out.writeInt(followers); 
  52.         out.writeInt(microblogs); 
  53.     } 
  54.      
  55.     @Override 
  56.     public int compareTo(Object o) { 
  57.         // TODO Auto-generated method stub 
  58.         return 0; 
  59.     } 
  60.  
  61.     public int getFan() { 
  62.         return fan; 
  63.     } 
  64.  
  65.     public void setFan(int fan) { 
  66.         this.fan = fan; 
  67.     } 
  68.  
  69.     public int getFollowers() { 
  70.         return followers; 
  71.     } 
  72.  
  73.     public void setFollowers(int followers) { 
  74.         this.followers = followers; 
  75.     } 
  76.  
  77.     public int getMicroblogs() { 
  78.         return microblogs; 
  79.     } 
  80.  
  81.     public void setMicroblogs(int microblogs) { 
  82.         this.microblogs = microblogs; 
  83.     } 

2)、自定義WeiboInputFormat,繼承FileInputFormat抽象類

  1. package com.buaa; 
  2.  
  3. import java.io.IOException; 
  4.  
  5. import org.apache.hadoop.conf.Configuration; 
  6. import org.apache.hadoop.fs.FSDataInputStream; 
  7. import org.apache.hadoop.fs.FileSystem; 
  8. import org.apache.hadoop.fs.Path; 
  9. import org.apache.hadoop.io.Text; 
  10. import org.apache.hadoop.mapreduce.InputSplit; 
  11. import org.apache.hadoop.mapreduce.RecordReader; 
  12. import org.apache.hadoop.mapreduce.TaskAttemptContext; 
  13. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 
  14. import org.apache.hadoop.mapreduce.lib.input.FileSplit; 
  15. import org.apache.hadoop.util.LineReader; 
  16.  
  17. /**  
  18. * @ProjectName MicroblogStar 
  19. * @PackageName com.buaa 
  20. * @ClassName WeiboInputFormat 
  21. * @Description TODO 
  22. * @Author 劉吉超 
  23. * @Date 2016-05-07 10:23:28 
  24. */ 
  25. public class WeiboInputFormat extends FileInputFormat<Text,WeiBo>{ 
  26.  
  27.      @Override 
  28.      public RecordReader<Text, WeiBo> createRecordReader(InputSplit arg0, TaskAttemptContext arg1) throws IOException, InterruptedException { 
  29.           // 自定義WeiboRecordReader類,按行讀取 
  30.           return new WeiboRecordReader(); 
  31.      } 
  32.  
  33.      public class WeiboRecordReader extends RecordReader<Text, WeiBo>{ 
  34.             public LineReader in;  
  35.             // 聲明key類型 
  36.             public Text lineKey = new Text(); 
  37.             // 聲明 value類型 
  38.             public WeiBo lineValue = new WeiBo(); 
  39.              
  40.             @Override 
  41.             public void initialize(InputSplit input, TaskAttemptContext context) throws IOException, InterruptedException { 
  42.                 // 獲取split 
  43.                 FileSplit split = (FileSplit)input; 
  44.                 // 獲取配置  
  45.                 Configuration job = context.getConfiguration(); 
  46.                 // 分片路徑  
  47.                 Path file = split.getPath(); 
  48.                  
  49.                 FileSystem fs = file.getFileSystem(job);  
  50.                 // 打開文件    
  51.                 FSDataInputStream filein = fs.open(file); 
  52.                  
  53.                 in = new LineReader(filein,job);  
  54.             } 
  55.  
  56.             @Override 
  57.             public boolean nextKeyValue() throws IOException, InterruptedException { 
  58.                 // 一行數據 
  59.                 Text line = new Text(); 
  60.                  
  61.                 int linesize = in.readLine(line); 
  62.                  
  63.                 if(linesize == 0)  
  64.                     return false;  
  65.                  
  66.                 // 通過分隔符'\t',將每行的數據解析成數組 
  67.                 String[] pieces = line.toString().split("\t"); 
  68.                  
  69.                 if(pieces.length != 5){   
  70.                     throw new IOException("Invalid record received");   
  71.                 }  
  72.                  
  73.                 int a,b,c; 
  74.                 try{   
  75.                     // 粉絲   
  76.                     a = Integer.parseInt(pieces[2].trim()); 
  77.                     // 關注 
  78.                     b = Integer.parseInt(pieces[3].trim()); 
  79.                     // 微博數 
  80.                     c = Integer.parseInt(pieces[4].trim()); 
  81.                 }catch(NumberFormatException nfe){   
  82.                     throw new IOException("Error parsing floating poing value in record");   
  83.                 } 
  84.                  
  85.                 //自定義key和value值 
  86.                 lineKey.set(pieces[0]);   
  87.                 lineValue.set(a, b, c); 
  88.                  
  89.                 return true
  90.             } 
  91.              
  92.             @Override 
  93.             public void close() throws IOException { 
  94.                 if(in != null){ 
  95.                     in.close(); 
  96.                 } 
  97.             } 
  98.  
  99.             @Override 
  100.             public Text getCurrentKey() throws IOException, InterruptedException { 
  101.                 return lineKey; 
  102.             } 
  103.  
  104.             @Override 
  105.             public WeiBo getCurrentValue() throws IOException, InterruptedException { 
  106.                 return lineValue; 
  107.             } 
  108.  
  109.             @Override 
  110.             public float getProgress() throws IOException, InterruptedException { 
  111.                 return 0; 
  112.             } 
  113.              
  114.         } 

3)、編寫mr程序

  1. package com.buaa; 
  2.  
  3. import java.io.IOException; 
  4. import java.util.Arrays; 
  5. import java.util.Comparator; 
  6. import java.util.HashMap; 
  7. import java.util.Map; 
  8. import java.util.Map.Entry; 
  9.  
  10. import org.apache.hadoop.conf.Configuration; 
  11. import org.apache.hadoop.conf.Configured; 
  12. import org.apache.hadoop.fs.FileSystem; 
  13. import org.apache.hadoop.fs.Path; 
  14. import org.apache.hadoop.io.IntWritable; 
  15. import org.apache.hadoop.io.Text; 
  16. import org.apache.hadoop.mapreduce.Job; 
  17. import org.apache.hadoop.mapreduce.Mapper; 
  18. import org.apache.hadoop.mapreduce.Reducer; 
  19. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 
  20. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 
  21. import org.apache.hadoop.mapreduce.lib.output.LazyOutputFormat; 
  22. import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs; 
  23. import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; 
  24. import org.apache.hadoop.util.Tool; 
  25. import org.apache.hadoop.util.ToolRunner; 
  26.  
  27. /**  
  28. * @ProjectName MicroblogStar 
  29. * @PackageName com.buaa 
  30. * @ClassName WeiboCount 
  31. * @Description TODO 
  32. * @Author 劉吉超 
  33. * @Date 2016-05-07 09:07:36 
  34. */ 
  35. public class WeiboCount extends Configured implements Tool { 
  36.     // tab分隔符 
  37.     private static String TAB_SEPARATOR = "\t"
  38.     // 粉絲 
  39.     private static String FAN = "fan"
  40.     // 關注 
  41.     private static String FOLLOWERS = "followers"
  42.     // 微博數 
  43.     private static String MICROBLOGS = "microblogs"
  44.      
  45.     public static class WeiBoMapper extends Mapper<Text, WeiBo, Text, Text> { 
  46.         @Override 
  47.         protected void map(Text key, WeiBo value, Context context) throws IOException, InterruptedException { 
  48.             // 粉絲 
  49.             context.write(new Text(FAN), new Text(key.toString() + TAB_SEPARATOR + value.getFan())); 
  50.             // 關注 
  51.             context.write(new Text(FOLLOWERS), new Text(key.toString() + TAB_SEPARATOR + value.getFollowers())); 
  52.             // 微博數 
  53.             context.write(new Text(MICROBLOGS), new Text(key.toString() + TAB_SEPARATOR + value.getMicroblogs())); 
  54.         } 
  55.     } 
  56.      
  57.     public static class WeiBoReducer extends Reducer<Text, Text, Text, IntWritable> { 
  58.         private MultipleOutputs<Text, IntWritable> mos; 
  59.  
  60.         protected void setup(Context context) throws IOException, InterruptedException { 
  61.             mos = new MultipleOutputs<Text, IntWritable>(context); 
  62.         } 
  63.  
  64.         protected void reduce(Text Key, Iterable<Text> Values,Context context) throws IOException, InterruptedException { 
  65.             Map<String,Integer> map = new HashMap< String,Integer>(); 
  66.              
  67.             for(Text value : Values){ 
  68.                 // value = 名稱 + (粉絲數 或 關注數 或 微博數) 
  69.                 String[] records = value.toString().split(TAB_SEPARATOR); 
  70.                 map.put(records[0], Integer.parseInt(records[1].toString())); 
  71.             } 
  72.              
  73.             // 對Map內的數據進行排序 
  74.             Map.Entry<String, Integer>[] entries = getSortedHashtableByValue(map); 
  75.              
  76.             for(int i = 0; i < entries.length;i++){ 
  77.                 mos.write(Key.toString(),entries[i].getKey(), entries[i].getValue()); 
  78.             }                
  79.         } 
  80.  
  81.         protected void cleanup(Context context) throws IOException, InterruptedException { 
  82.             mos.close(); 
  83.         } 
  84.     } 
  85.      
  86.     @SuppressWarnings("deprecation"
  87.     @Override 
  88.     public int run(String[] args) throws Exception { 
  89.         // 配置文件對象 
  90.         Configuration conf = new Configuration(); 
  91.          
  92.         // 判斷路徑是否存在,如果存在,則刪除 
  93.         Path mypath = new Path(args[1]); 
  94.         FileSystem hdfs = mypath.getFileSystem(conf); 
  95.         if (hdfs.isDirectory(mypath)) { 
  96.             hdfs.delete(mypath, true); 
  97.         } 
  98.          
  99.         // 構造任務 
  100.         Job job = new Job(conf, "weibo"); 
  101.         // 主類 
  102.         job.setJarByClass(WeiboCount.class); 
  103.  
  104.         // Mapper 
  105.         job.setMapperClass(WeiBoMapper.class); 
  106.         // Mapper key輸出類型 
  107.         job.setMapOutputKeyClass(Text.class); 
  108.         // Mapper value輸出類型 
  109.         job.setMapOutputValueClass(Text.class); 
  110.          
  111.         // Reducer 
  112.         job.setReducerClass(WeiBoReducer.class); 
  113.         // Reducer key輸出類型 
  114.         job.setOutputKeyClass(Text.class); 
  115.         // Reducer value輸出類型 
  116.         job.setOutputValueClass(IntWritable.class); 
  117.          
  118.         // 輸入路徑 
  119.         FileInputFormat.addInputPath(job, new Path(args[0])); 
  120.         // 輸出路徑 
  121.         FileOutputFormat.setOutputPath(job, new Path(args[1])); 
  122.          
  123.         // 自定義輸入格式 
  124.         job.setInputFormatClass(WeiboInputFormat.class) ; 
  125.         //自定義文件輸出類別 
  126.         MultipleOutputs.addNamedOutput(job, FAN, TextOutputFormat.class, Text.class, IntWritable.class); 
  127.         MultipleOutputs.addNamedOutput(job, FOLLOWERS, TextOutputFormat.class, Text.class, IntWritable.class); 
  128.         MultipleOutputs.addNamedOutput(job, MICROBLOGS, TextOutputFormat.class, Text.class, IntWritable.class); 
  129.          
  130.         // 去掉job設置outputFormatClass,改為通過LazyOutputFormat設置   
  131.         LazyOutputFormat.setOutputFormatClass(job, TextOutputFormat.class);  
  132.          
  133.          //提交任務   
  134.         return job.waitForCompletion(true)?0:1; 
  135.     } 
  136.      
  137.     // 對Map內的數據進行排序(只適合小數據量) 
  138.     @SuppressWarnings("unchecked"
  139.     public static Entry<String, Integer>[] getSortedHashtableByValue(Map<String, Integer> h) {   
  140.         Entry<String, Integer>[] entries = (Entry<String, Integer>[]) h.entrySet().toArray(new Entry[0]);   
  141.         // 排序 
  142.         Arrays.sort(entries, new Comparator<Entry<String, Integer>>() { 
  143.             public int compare(Entry<String, Integer> entry1, Entry<String, Integer> entry2) { 
  144.                 return entry2.getValue().compareTo(entry1.getValue()); 
  145.             }  
  146.         }); 
  147.         return entries;   
  148.     } 
  149.      
  150.     public static void main(String[] args) throws Exception { 
  151.         String[] args0 = { 
  152.                 "hdfs://ljc:9000/buaa/microblog/weibo.txt"
  153.                 "hdfs://ljc:9000/buaa/microblog/out/"  
  154.         }; 
  155.         int ec = ToolRunner.run(new Configuration(), new WeiboCount(), args0); 
  156.         System.exit(ec); 
  157.     } 

5、運行結果

 

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

2011-12-20 09:54:43

微博

2012-02-07 16:20:55

訊飛語音

2024-10-14 14:19:02

2017-03-13 09:48:26

pysparkhive數據

2013-04-27 13:55:34

大數據全球技術峰會

2013-04-23 14:36:54

2016-04-06 10:02:23

手機微博運維監控

2011-08-30 14:48:02

2013-09-13 13:35:41

微淘微信微博

2020-02-20 10:45:51

Python數據疾病

2012-06-14 10:22:21

網易微博HTML5開發

2021-11-08 14:38:50

框架Scrapy 爬蟲

2021-11-09 09:46:09

ScrapyPython爬蟲

2012-06-18 14:22:09

HTML5

2014-10-15 16:32:43

MapReducehadoop

2009-04-17 10:07:42

2011-04-21 15:25:48

微博管理方案發帖審計

2011-04-21 14:47:52

微博管理方案用戶識別

2015-11-24 09:43:37

微博Docker混合云

2011-10-21 09:43:28

Python
點贊
收藏

51CTO技術棧公眾號

神马久久久久久久久久久| 国产精品沙发午睡系列| 亚洲爱爱综合网| 亚洲一区自拍| 久久精品久久久久| www.555国产精品免费| www.日韩| 一区二区三区四区激情| 久久精品国产美女| 国产男男gay网站| 亚洲一区日韩| 操日韩av在线电影| 国产精品无码久久久久一区二区| 国产精品白丝久久av网站| 亚洲成年人网站在线观看| 色婷婷精品国产一区二区三区| 国产av无码专区亚洲av麻豆| 日韩一区欧美二区| 97国产在线视频| 日本激情视频一区二区三区| 亚洲小说图片| 精品日韩在线观看| 亚洲va在线va天堂va偷拍| 最新欧美色图| 午夜欧美一区二区三区在线播放| 日本韩国精品一区二区在线观看| 亚洲国产精品人人爽夜夜爽| 中文字幕亚洲乱码| 自拍视频在线看| 亚洲国产一二三| 久久国产精品免费观看| 在线免费看av| 国产三级精品三级| 九九九九九精品| 亚洲精品免费在线观看视频| 精品一区二区免费视频| 日本中文字幕成人| 国产情侣在线视频| 狠狠综合久久av一区二区老牛| 久久精品91久久久久久再现| 国产精品久久久视频| 久久99国内| 亚洲男人第一网站| 青青草视频成人| 天海翼精品一区二区三区| 欧美精品一区二区三区在线| 日韩成人av影院| 9l亚洲国产成人精品一区二三| 欧美一级搡bbbb搡bbbb| 久久精品国产露脸对白| 国产一区二区色噜噜| 91成人免费在线| www.色偷偷.com| 国产情侣一区二区三区| 欧美欧美欧美欧美首页| 日本国产一级片| 欧美视频精品全部免费观看| 日韩午夜小视频| 国产无套精品一区二区三区| 精品国产亚洲一区二区在线观看 | av在线不卡电影| 九九热久久66| 国产有码在线| 国产精品久久久久一区二区三区 | 亚洲国产精品小视频| 男男做爰猛烈叫床爽爽小说| 日本韩国欧美超级黄在线观看| 日韩av最新在线| 魔女鞋交玉足榨精调教| jlzzjlzz亚洲女人| 精品国产一区av| 欧美日韩人妻精品一区二区三区| 亚洲视屏一区| 日本一区二区在线免费播放| 五月天中文字幕| 国产呦萝稀缺另类资源| 国产传媒一区| 欧美成人片在线| 亚洲欧洲成人av每日更新| 欧美少妇在线观看| 小视频免费在线观看| 欧美日韩日本视频| 中文字幕天堂av| 激情五月综合| 欧美精品生活片| 国产精品视频免费播放| 蜜桃视频在线观看一区| 99在线国产| 国产一二在线观看| 亚洲综合色自拍一区| 亚洲五月天综合| 日韩高清二区| 在线观看日韩www视频免费| 亚洲熟女www一区二区三区| 日韩午夜高潮| 成人精品网站在线观看| 视频午夜在线| 亚洲欧美区自拍先锋| 免费黄色福利视频| 精品视频一区二区三区| 亚洲乱亚洲乱妇无码| 欧美日韩在线视频免费| 丝袜亚洲精品中文字幕一区| dy888夜精品国产专区| 国产精品秘入口| 今天的高清视频免费播放成人| 欧洲女同同性吃奶| 国产免费不卡| 日韩午夜激情视频| 九九九视频在线观看| 欧美视频久久| 成人美女av在线直播| 亚洲 另类 春色 国产| 中文字幕亚洲视频| 国内外免费激情视频| 丁香婷婷成人| 久热国产精品视频| 在线观看毛片av| 久久久www成人免费毛片麻豆| www.亚洲成人网| 中文字幕综合| 一区二区三区国产在线观看| 日韩乱码一区二区| 国产精品88888| 中文精品一区二区三区| 日韩漫画puputoon| 亚洲欧美国产va在线影院| 国产精久久久久久| 国产91精品久久久久久久网曝门| 亚洲视频sss| 桃子视频成人app| 精品一区二区三区四区| 久久狠狠高潮亚洲精品| 粉嫩一区二区三区在线看| 公共露出暴露狂另类av| 欧美天堂在线| 最新69国产成人精品视频免费| 青娱乐在线免费视频| 久久久亚洲高清| 日韩欧美精品在线观看视频| 人人精品亚洲| 欧美专区第一页| 青青草观看免费视频在线 | 久久精品欧美一区二区| 国产99久久精品| 日本黄色片一级片| 9999久久久久| 91av福利视频| 免费动漫网站在线观看| 色呦呦国产精品| 精品无人区无码乱码毛片国产| 男人的天堂亚洲在线| 日本高清视频一区二区三区| 综合在线影院| 一区二区三区精品99久久| 日韩欧美国产另类| 成人免费小视频| 亚欧美一区二区三区| 欧美日韩免费| 久久精品日产第一区二区三区| 欧美电影网址| 日韩网站免费观看| 国产黄色一区二区| 亚洲3atv精品一区二区三区| 久久久久国产精品区片区无码| 久久精品一本| 午夜一区二区三区| 欧美午夜网站| 欧美中文在线观看国产| youjizz在线播放| 欧美日韩高清一区二区三区| 国模无码国产精品视频| 波多野结衣一区二区三区| 成人免费观看视频在线观看| 不卡视频在线| 1卡2卡3卡精品视频| 国产在线精彩视频| 一区二区三区高清国产| 国产极品久久久| 欧美午夜电影在线| 丝袜美腿小色网| 久久看人人爽人人| 91精品国产三级| 国产精品久久久久毛片大屁完整版| 水蜜桃一区二区| 免费精品一区| 琪琪第一精品导航| 成人看片免费| 精品亚洲精品福利线在观看| 一区二区三区精| 婷婷六月综合网| 国产精品久久国产精麻豆96堂| 粉嫩高潮美女一区二区三区| 亚洲人成无码www久久久| 综合天堂av久久久久久久| 免费试看一区| 91麻豆精品激情在线观看最新| 国产精品免费一区| 国产粉嫩在线观看| 久久在线免费视频| 免费国产在线观看| 精品av综合导航| 一级片在线观看视频| 欧美日韩精品中文字幕| 国产极品国产极品| 国产日韩亚洲欧美综合| 精品1卡二卡三卡四卡老狼| 老司机精品视频在线| 日韩网站在线免费观看| 91精品国产成人观看| 免费99视频| 粉嫩精品导航导航| 91亚色免费| 日韩一区中文| 国产精品mp4| 涩涩视频在线免费看| 欧美国产日韩一区二区在线观看 | 欧美激情免费观看| 欧美成年黄网站色视频| 亚洲四色影视在线观看| 欧美熟妇另类久久久久久不卡| 欧美精选午夜久久久乱码6080| 亚洲国产精品无码久久久| 五月天国产精品| 久久激情免费视频| 亚洲免费av网站| 亚洲少妇xxx| 欧美激情一区在线| 欧美大波大乳巨大乳| 26uuu亚洲综合色欧美| 少妇一级淫片免费放播放| 懂色av中文字幕一区二区三区| 国产无遮挡猛进猛出免费软件 | 日韩a在线观看| 精品国产精品网麻豆系列| 99久久精品日本一区二区免费| 在线不卡一区二区| 一区二区的视频| 91精品国产黑色紧身裤美女| 中文字幕在线观看精品| 欧美日韩一卡二卡三卡| 中文字幕在线日亚洲9| 欧美色综合久久| 中文字幕日本人妻久久久免费 | 欧美亚州一区二区三区| 久久男人av资源站| 欧美与黑人午夜性猛交久久久| 超碰99在线| 91av成人在线| 久久天堂av| 国产精品揄拍一区二区| 六九午夜精品视频| 91亚洲精品在线| 18国产精品| 久久久福利视频| 免费看成人吃奶视频在线| 日韩免费电影一区二区三区| 大片网站久久| 中文字幕一区二区三区最新| 欧美黄免费看| 久久成人福利视频| 在线精品观看| 国产精品99久久免费黑人人妻| 日本最新不卡在线| 久久久精品视频国产| 成人少妇影院yyyy| 欧美特黄一区二区三区| 国产精品污污网站在线观看| 亚洲视频重口味| 亚洲高清免费在线| 欧美一级淫片免费视频黄| 欧美三级资源在线| 亚洲AV无码乱码国产精品牛牛| 日韩国产高清污视频在线观看| 丁香婷婷在线观看| 久久成年人视频| yellow字幕网在线| 国产精品亚洲第一区| 午夜日韩影院| 欧美日韩系列| 欧美fxxxxxx另类| 欧美日韩亚洲一| 激情文学综合丁香| 国产成人精品无码片区在线| 国产精品美女久久久久久久久久久| 欧美高清视频一区二区三区| 欧美日韩综合视频| 国产免费黄色大片| 亚洲精品天天看| 国产在线一区二区视频| 日本久久久久久久久| 精品一区二区三区中文字幕视频| 欧美12av| 欧美日本国产| 成人亚洲精品777777大片| 成人高清视频在线| 亚洲精品自拍视频在线观看| 精品福利樱桃av导航| 国产一区二区在线视频聊天| 日韩av在线资源| 黄色成年人视频在线观看| 国产成人亚洲综合91| 成人动态视频| 一区二区三区一级片| 三级一区在线视频先锋 | 亚洲欧洲日韩综合一区二区| 久久亚洲天堂网| 欧美猛男男办公室激情| 黄视频在线观看免费| 欧美激情成人在线视频| 91视频亚洲| 特级西西444www大精品视频| 91久久黄色| 无码人妻一区二区三区一| 国产精品久久久久久久浪潮网站| 国产精品视频一区在线观看| 亚洲爱爱爱爱爱| 中文字幕在线三区| 国产欧美精品一区二区三区介绍 | www.亚洲一区二区| 日韩国产精品大片| 国产特黄级aaaaa片免| 性欧美疯狂xxxxbbbb| 亚洲伦理在线观看| 色综合久久久久久中文网| 综合久草视频| 中文字幕欧美人与畜| 日本欧美韩国一区三区| 午夜理伦三级做爰电影| 欧美日韩国产激情| 欧美在线 | 亚洲| 欧美激情精品久久久久久蜜臀 | 中文字幕 在线观看| 精品国产一区二区三区四区精华| 好吊日精品视频| 国产精品亚洲一区二区无码| 亚洲综合成人在线| 高清一区二区三区四区| 久久久久久18| 国内自拍欧美| 老太脱裤子让老头玩xxxxx| 床上的激情91.| 日韩免费观看一区二区| 亚洲电影免费观看高清| 韩日毛片在线观看| 美日韩免费视频| 久热精品在线| 国产真人真事毛片视频| 欧美日高清视频| 国产在线高潮| 国产高清在线一区| 国产视频一区三区| 日本乱子伦xxxx| 91精品国产一区二区三区香蕉| 91高清在线观看视频| 懂色一区二区三区av片| 在线亚洲国产精品网站| 日韩人妻无码一区二区三区| 91成人在线观看喷潮| 网友自拍视频在线| 97碰碰视频| 亚洲一区久久| 中文字幕乱码av| 精品人在线二区三区| 少妇视频一区| 一区二区在线高清视频| 国产精品一品二品| 日韩在线视频免费播放| 在线性视频日韩欧美| 精品国产鲁一鲁****| 全黄性性激高免费视频| 国产亚洲成aⅴ人片在线观看| 亚洲精品国产精品国自产网站按摩| 久久精品国产欧美激情| 农村少妇一区二区三区四区五区| 日韩精品一区二区三区不卡| 亚洲啪啪综合av一区二区三区| 神马久久久久久久久久| 国产精品爽爽ⅴa在线观看| 欧美日本免费| 亚洲色图 激情小说| 欧美大片在线观看| 欧美不卡高清一区二区三区| 日本一道在线观看| 久久亚洲欧美国产精品乐播| 91精品视频免费在线观看| 久久免费国产视频| 色135综合网| 欧亚乱熟女一区二区在线| 欧美日韩精品一区二区天天拍小说 | 亚洲激情第一区| 欧美一区二区三区少妇| 91在线视频导航| 久久精品在线| 久久成人国产精品入口| 中文字幕亚洲激情| 日本成人7777| 初高中福利视频网站| 在线观看欧美精品| www.综合网.com|