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

Hadoop偽分布配置與基于Eclipse開發環境搭建

大數據 Hadoop
最近一直在摸索Hadoop2的配置,因為Hadoop2對原有的一些框架API做了調整,但也還是兼容舊版本的(包括配置)。像我這種就喜歡用新的東西的人,當然要嘗一下鮮了,現在網上比較少新版本的配置教程,那么下面我就來分享一下我自己的實戰經驗,如有不正確的地歡迎指正。

1、開發配置環境:

開發環境:Win7(64bit)+Eclipse(kepler service release 2)

配置環境:Ubuntu Server 14.04.1 LTS(64-bit only)

輔助工具:WinSCP + Putty

Hadoop版本:2.5.0

Hadoop的Eclipse開發插件(2.x版本適用):http://pan.baidu.com/s/1eQy49sm

服務器端JDK版本:OpenJDK7.0

以上所有工具請自行下載安裝。

2、Hadoop服務端配置(Master節點)

最近一直在摸索Hadoop2的配置,因為Hadoop2對原有的一些框架API做了調整,但也還是兼容舊版本的(包括配置)。像我這種就喜歡用新的東西的人,當然要嘗一下鮮了,現在網上比較少新版本的配置教程,那么下面我就來分享一下我自己的實戰經驗,如有不正確的地歡迎指正:)。

  假設我們已經成功地安裝了Ubuntu Server、OpenJDK、SSH,如果還沒有安裝的話請先安裝,自己網上找一下教程,這里我就說一下SSH的無口令登陸設置。首先通過

  1. $ ssh localhost 

測試一下自己有沒有設置好無口令登陸,如果沒有設置好,系統將要求你輸入密碼,通過下面的設置可以實現無口令登陸,具體原理請百度谷歌:

  1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
  2. $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 

其次是Hadoop安裝(假設已經安裝好OpenJDK以及配置好了環境變量),到Hadoop官網下載一個Hadoop2.5.0版本的下來,好像大概有100多M的tar.gz包,下載 下來后自行解壓,我的是放在/usr/mywind下面,Hadoop主目錄完整路徑是/usr/mywind/hadoop,這個路徑根據你個人喜好放吧。

解壓完后,打開hadoop主目錄下的etc/hadoop/hadoop-env.sh文件,在最后面加入下面內容:

  1. # set to the root of your Java installation  
  2.   export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64  
  3.     
  4. # Assuming your installation directory is /usr/mywind/hadoop  
  5. export HADOOP_PREFIX=/usr/mywind/hadoop 

為了方便起見,我建設把Hadoop的bin目錄及sbin目錄也加入到環境變量中,我是直接修改了Ubuntu的/etc/environment文件,內容如下:

  1. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-openjdk-amd64/bin:/usr/mywind/hadoop/bin:/usr/mywind/hadoop/sbin" 
  2. JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64" 
  3. CLASSPATH=".:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" 

也可以通過修改profile來完成這個設置,看個人習慣咯。假如上面的設置你都完成了,可以在命令行里面測試一下Hadoop命令,如下圖:

假如你能看到上面的結果,恭喜你,Hadoop安裝完成了。接下來我們可以進行偽分布配置(Hadoop可以在偽分布模式下運行單結點)。

接下來我們要配置的文件有四個,分別是/usr/mywind/hadoop/etc/hadoop目錄下的yarn-site.xml、mapred-site.xml、hdfs-site.xml、core-site.xml(注意:這個版本下默認沒有yarn-site.xml文件,但有個yarn-site.xml.properties文件,把后綴修改成前者即可),關于yarn新特性可以參考官網或者這個文章http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/。

首先是core-site.xml配置HDFS地址及臨時目錄(默認的臨時目錄在重啟后會刪除):

  1. <configuration> 
  2.     <property> 
  3.         <name>fs.defaultFS</name> 
  4.         <value>hdfs://192.168.8.184:9000</value> 
  5.          <description>same as fs.default.name</description> 
  6.     </property> 
  7.      <property> 
  8.        <name>hadoop.tmp.dir</name> 
  9.        <value>/usr/mywind/tmp</value> 
  10.         <description>A base for other temporary directories.</description> 
  11.      </property> 
  12. </configuration> 

然后是hdfs-site.xml配置集群數量及其他一些可選配置比如NameNode目錄、DataNode目錄等等:

  1. <configuration> 
  2.      <property> 
  3.         <name>dfs.namenode.name.dir</name> 
  4.         <value>/usr/mywind/name</value> 
  5.         <description>same as dfs.name.dir</description> 
  6.      </property> 
  7.      <property> 
  8.         <name>dfs.datanode.data.dir</name> 
  9.         <value>/usr/mywind/data</value> 
  10.         <description>same as dfs.data.dir</description> 
  11.      </property> 
  12.      <property> 
  13.         <name>dfs.replication</name> 
  14.         <value>1</value> 
  15.         <description>same as old frame,recommend set the value as the cluster DataNode host numbers!</description> 
  16.      </property> 
  17. </configuration> 

接著是mapred-site.xml配置啟用yarn框架:

  1. <configuration> 
  2.     <property> 
  3.         <name>mapreduce.framework.name</name> 
  4.         <value>yarn</value> 
  5.     </property> 
  6. </configuration> 

最后是yarn-site.xml配置NodeManager:

  1. <configuration> 
  2.  <!-- Site specific YARN configuration properties -->   
  3.   <property>   
  4.          <name>yarn.nodemanager.aux-services</name>   
  5.          <value>mapreduce_shuffle</value>   
  6.   </property>   
  7. </configuration> 

注意,網上的舊版本教程可能會把value寫成mapreduce.shuffle,這個要特別注意一下的,至此我們所有的文件配置都已經完成了,下面進行HDFS文件系統進行格式化:

  1. $ hdfs namenode -format 

然后啟用NameNode及DataNode進程:

  1. $ start-yarn.sh 

然后創建hdfs文件目錄

  1. $ hdfs dfs -mkdir /user  
  2. $ hdfs dfs -mkdir /user/a01513 

注意,這個a01513是我在Ubuntu上的用戶名,最好保持與系統用戶名一致,據說不一致會有許多權限等問題,我之前試過改成其他名字,報錯,實在麻煩就改成跟系統用戶名一致吧。

然后把要測試的輸入文件放在文件系統中:
 

  1. $ hdfs dfs -put /usr/mywind/psa input 

文件內容是Hadoop經典的天氣例子的數據:

  1. 12345679867623119010123456798676231190101234567986762311901012345679867623119010123456+001212345678903456  
  2. 12345679867623119010123456798676231190101234567986762311901012345679867623119010123456+011212345678903456  
  3. 12345679867623119010123456798676231190101234567986762311901012345679867623119010123456+021212345678903456  
  4. 12345679867623119010123456798676231190101234567986762311901012345679867623119010123456+003212345678903456  
  5. 12345679867623119010123456798676231190201234567986762311901012345679867623119010123456+004212345678903456  
  6. 12345679867623119010123456798676231190201234567986762311901012345679867623119010123456+010212345678903456  
  7. 12345679867623119010123456798676231190201234567986762311901012345679867623119010123456+011212345678903456  
  8. 12345679867623119010123456798676231190501234567986762311901012345679867623119010123456+041212345678903456  
  9. 12345679867623119010123456798676231190501234567986762311901012345679867623119010123456+008212345678903456 

把文件拷貝到HDFS目錄之后,我們可以通過瀏覽器查看相關的文件及一些狀態:

http://192.168.8.184:50070/

這里的IP地址根據你實際的Hadoop服務器地址啦。

好吧,我們所有的Hadoop后臺服務搭建跟數據準備都已經完成了,那么我們的M/R程序也要開始動手寫了,不過在寫當然先配置開發環境了。

3、基于Eclipse的Hadoop2.x開發環境配置

關于JDK及ECLIPSE的安裝我就不再介紹了,相信能玩Hadoop的人對這種配置都已經再熟悉不過了,如果實在不懂建議到谷歌百度去搜索一下教程。假設你已經把Hadoop的Eclipse插件下載下來了,然后解壓把jar文件放到Eclipse的plugins文件夾里面:

重啟Eclipse即可。

然后我們再安裝Hadoop到Win7下,在這不再詳細說明,跟安裝JDK大同小異,在這個例子中我安裝到了E:\hadoop。

啟動Eclipse,點擊菜單欄的【Windows/窗口】→【Preferences/首選項】→【Hadoop Map/Reduce】,把Hadoop Installation Directory設置成開發機上的Hadoop主目錄:

點擊OK。

開發環境配置完成,下面我們可以新建一個測試Hadoop項目,右鍵【NEW/新建】→【Others、其他】,選擇Map/Reduce Project

輸入項目名稱點擊【Finish/完成】:

創建完成后可以看到如下目錄:

然后在SRC下建立下面包及類:

#p#

以下是代碼內容:

TestMapper.java

  1. package com.my.hadoop.mapper;  
  2.     
  3. import java.io.IOException;  
  4.     
  5. import org.apache.commons.logging.Log;  
  6. import org.apache.commons.logging.LogFactory;  
  7. import org.apache.hadoop.io.IntWritable;  
  8. import org.apache.hadoop.io.LongWritable;  
  9. import org.apache.hadoop.io.Text;  
  10. import org.apache.hadoop.mapred.MapReduceBase;  
  11. import org.apache.hadoop.mapred.Mapper;  
  12. import org.apache.hadoop.mapred.OutputCollector;  
  13. import org.apache.hadoop.mapred.Reporter;  
  14.     
  15. public class TestMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {  
  16.          private static final int MISSING = 9999;  
  17.          private static final Log LOG = LogFactory.getLog(TestMapper.class);  
  18.     
  19.           public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output,Reporter reporter)  
  20.                throws IOException {  
  21.              String line = value.toString();  
  22.              String year = line.substring(1519);  
  23.              int airTemperature;  
  24.              if (line.charAt(87) == '+') { // parseInt doesn't like leading plus signs  
  25.                airTemperature = Integer.parseInt(line.substring(8892));  
  26.              } else {  
  27.                airTemperature = Integer.parseInt(line.substring(8792));  
  28.              }  
  29.              LOG.info("loki:"+airTemperature);  
  30.              String quality = line.substring(9293);  
  31.              LOG.info("loki2:"+quality);  
  32.              if (airTemperature != MISSING && quality.matches("[012459]")) {  
  33.                LOG.info("loki3:"+quality);  
  34.                output.collect(new Text(year), new IntWritable(airTemperature));  
  35.              }  
  36.            }  
  37.     

TestReducer.java

  1. package com.my.hadoop.reducer;  
  2.     
  3. import java.io.IOException;  
  4. import java.util.Iterator;  
  5.     
  6. import org.apache.hadoop.io.IntWritable;  
  7. import org.apache.hadoop.io.Text;  
  8. import org.apache.hadoop.mapred.MapReduceBase;  
  9. import org.apache.hadoop.mapred.OutputCollector;  
  10. import org.apache.hadoop.mapred.Reporter;  
  11. import org.apache.hadoop.mapred.Reducer;  
  12.     
  13. public class TestReducer extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {  
  14.     
  15.          @Override 
  16.            public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output,Reporter reporter)  
  17.                throws IOException{  
  18.              int maxValue = Integer.MIN_VALUE;  
  19.              while (values.hasNext()) {  
  20.                maxValue = Math.max(maxValue, values.next().get());  
  21.              }  
  22.              output.collect(key, new IntWritable(maxValue));  
  23.            }  
  24.     

TestHadoop.java

  1. package com.my.hadoop.test.main;  
  2.     
  3. import org.apache.hadoop.fs.Path;  
  4. import org.apache.hadoop.io.IntWritable;  
  5. import org.apache.hadoop.io.Text;  
  6. import org.apache.hadoop.mapred.FileInputFormat;  
  7. import org.apache.hadoop.mapred.FileOutputFormat;  
  8. import org.apache.hadoop.mapred.JobClient;  
  9. import org.apache.hadoop.mapred.JobConf;  
  10.     
  11. import com.my.hadoop.mapper.TestMapper;  
  12. import com.my.hadoop.reducer.TestReducer;  
  13.     
  14. public class TestHadoop {  
  15.            
  16.          public static void main(String[] args) throws Exception{  
  17.                      
  18.                    if (args.length != 2) {  
  19.                          System.err  
  20.                              .println("Usage: MaxTemperature <input path> <output path>");  
  21.                          System.exit(-1);  
  22.                        }  
  23.                    JobConf job = new JobConf(TestHadoop.class);  
  24.              job.setJobName("Max temperature");  
  25.              FileInputFormat.addInputPath(job, new Path(args[0]));  
  26.              FileOutputFormat.setOutputPath(job, new Path(args[1]));  
  27.              job.setMapperClass(TestMapper.class);  
  28.              job.setReducerClass(TestReducer.class);  
  29.              job.setOutputKeyClass(Text.class);  
  30.              job.setOutputValueClass(IntWritable.class);  
  31.              JobClient.runJob(job);  
  32.          }  
  33.            

為了方便對于Hadoop的HDFS文件系統操作,我們可以在Eclipse下面的Map/Reduce Locations窗口與Hadoop建立連接,直接右鍵新建Hadoop連接即可:

連接配置如下:

然后點擊完成即可,新建完成后,我們可以在左側目錄中看到HDFS的文件系統目錄:

這里不僅可以顯示目錄結構,還可以對文件及目錄進行刪除、新增等操作,非常方便。

當上面的工作都做好之后,就可以把這個項目導出來了(導成jar文件放到Hadoop服務器上運行):

點擊完成,然后把這個testt.jar文件上傳到Hadoop服務器(192.168.8.184)上,目錄(其實可以放到其他目錄,你自己喜歡)是:

  1. /usr/mywind/hadoop/share/hadoop/mapreduce  

如下圖:

4、運行Hadoop程序及查看運行日志

當上面的工作準備好了之后,我們運行自己寫的Hadoop程序很簡單:

  1. $ hadoop  jar  /usr/mywind/hadoop/share/hadoop/mapreduce/testt.jar com.my.hadoop.test.main.TestHadoop   input  output 

注意這是output文件夾名稱不能重復哦,假如你執行了一次,在HDFS文件系統下面會自動生成一個output文件夾,第二次運行時,要么把output文件夾先刪除($ hdfs dfs -rmr /user/a01513/output),要么把命令中的output改成其他名稱如output1、output2等等。

如果看到以下輸出結果,證明你的運行成功了:

  1. a01513@hadoop :~$ hadoop jar /usr/mywind/hadoop/share/hadoop/mapreduce/testt.jar                                                                              com.my.hadoop.test.main.TestHadoop input output  
  2. 14/09/02 11:14:03 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0                                                                             :8032  
  3. 14/09/02 11:14:04 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0                                                                             :8032  
  4. 14/09/02 11:14:04 WARN mapreduce.JobSubmitter: Hadoop command-line option parsin                                                                             g not performed. Implement the Tool interface and execute your application with                                                                              ToolRunner to remedy this.  
  5. 14/09/02 11:14:04 INFO mapred.FileInputFormat: Total input paths to process : 1  
  6. 14/09/02 11:14:04 INFO mapreduce.JobSubmitter: number of splits:2  
  7. 14/09/02 11:14:05 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_14                                                                             09386620927_0015  
  8. 14/09/02 11:14:05 INFO impl.YarnClientImpl: Submitted application application_14                                                                             09386620927_0015  
  9. 14/09/02 11:14:05 INFO mapreduce.Job: The url to track the job: http://hadoop:80                                                                             88/proxy/application_1409386620927_0015/  
  10. 14/09/02 11:14:05 INFO mapreduce.Job: Running job: job_1409386620927_0015  
  11. 14/09/02 11:14:12 INFO mapreduce.Job: Job job_1409386620927_0015 running in uber mode : false  
  12. 14/09/02 11:14:12 INFO mapreduce.Job:  map 0% reduce 0%  
  13. 14/09/02 11:14:21 INFO mapreduce.Job:  map 100% reduce 0%  
  14. 14/09/02 11:14:28 INFO mapreduce.Job:  map 100% reduce 100%  
  15. 14/09/02 11:14:28 INFO mapreduce.Job: Job job_1409386620927_0015 completed successfully  
  16. 14/09/02 11:14:29 INFO mapreduce.Job: Counters: 49  
  17.         File System Counters  
  18.                 FILE: Number of bytes read=105 
  19.                 FILE: Number of bytes written=289816 
  20.                 FILE: Number of read operations=0 
  21.                 FILE: Number of large read operations=0 
  22.                 FILE: Number of write operations=0 
  23.                 HDFS: Number of bytes read=1638 
  24.                 HDFS: Number of bytes written=10 
  25.                 HDFS: Number of read operations=9 
  26.                 HDFS: Number of large read operations=0 
  27.                 HDFS: Number of write operations=2 
  28.         Job Counters  
  29.                 Launched map tasks=2 
  30.                 Launched reduce tasks=1 
  31.                 Data-local map tasks=2 
  32.                 Total time spent by all maps in occupied slots (ms)=14817  
  33.                 Total time spent by all reduces in occupied slots (ms)=4500  
  34.                 Total time spent by all map tasks (ms)=14817  
  35.                 Total time spent by all reduce tasks (ms)=4500  
  36.                 Total vcore-seconds taken by all map tasks=14817 
  37.                 Total vcore-seconds taken by all reduce tasks=4500 
  38.                 Total megabyte-seconds taken by all map tasks=15172608 
  39.                 Total megabyte-seconds taken by all reduce tasks=4608000 
  40.         Map-Reduce Framework  
  41.                 Map input records=9 
  42.                 Map output records=9 
  43.                 Map output bytes=81 
  44.                 Map output materialized bytes=111 
  45.                 Input split bytes=208 
  46.                 Combine input records=0 
  47.                 Combine output records=0 
  48.                 Reduce input groups=1 
  49.                 Reduce shuffle bytes=111 
  50.                 Reduce input records=9 
  51.                 Reduce output records=1 
  52.                 Spilled Records=18 
  53.                 Shuffled Maps =2 
  54.                 Failed Shuffles=0 
  55.                 Merged Map outputs=2 
  56.                 GC time elapsed (ms)=115  
  57.                 CPU time spent (ms)=1990  
  58.                 Physical memory (bytes) snapshot=655314944 
  59.                 Virtual memory (bytes) snapshot=2480295936 
  60.                 Total committed heap usage (bytes)=466616320  
  61.         Shuffle Errors  
  62.                 BAD_ID=0 
  63.                 CONNECTION=0 
  64.                 IO_ERROR=0 
  65.                 WRONG_LENGTH=0 
  66.                 WRONG_MAP=0 
  67.                 WRONG_REDUCE=0 
  68.         File Input Format Counters  
  69.                 Bytes Read=1430 
  70.         File Output Format Counters  
  71.                 Bytes Written=10 
  72. a01513@hadoop :~$ 

我們可以到Eclipse查看輸出的結果:

或者用命令行查看:

  1. $ hdfs dfs -cat output/part-00000 

假如你們發現運行后結果是為空的,可能到日志目錄查找相應的log.info輸出信息,log目錄在:/usr/mywind/hadoop/logs/userlogs 下面。

好了,不太喜歡打字,以上就是整個過程了,歡迎大家來學習指正。

原文鏈接:http://my.oschina.net/lanzp/blog/309078

責任編輯:林師授 來源: loki_lan的博客
相關推薦

2009-06-10 16:30:05

基于Eclipse的PWindows

2017-10-25 18:25:40

Hadoop偽分布式環境部署

2011-09-13 17:15:58

Eclipse And

2013-06-13 10:39:54

Hadoop2.0.4

2011-09-14 15:41:05

Android SDK

2013-06-08 14:34:42

Hadoop 2.0

2015-10-16 13:30:59

EclipsePython開發環境

2012-06-05 01:23:14

Ubuntueclipse

2011-04-02 14:14:19

Android SDKEclipse

2012-02-28 10:33:27

Eclipse 3.7Android環境

2010-08-05 09:13:22

EclipseFlexBuilder

2010-09-25 09:31:27

EclipseAndroid

2011-09-13 18:14:23

Android SDK

2013-07-29 14:23:55

Eclipse開發環境Eclipse開發環境

2012-07-03 08:37:24

Hadoop集群

2010-06-04 15:44:06

Hadoop偽分布

2010-05-12 16:24:32

Black Berry

2009-06-10 16:38:24

EclipsePydevDjango

2011-06-03 16:05:20

IOS 環境搭建

2011-06-03 15:08:09

IOS 環境搭建
點贊
收藏

51CTO技術棧公眾號

精品久久久久久久久中文字幕| 久久久午夜影院| а√天堂资源在线| 一区二区美女| 奇米色一区二区| 5月丁香婷婷综合| 欧美日韩高清在线一区| 久久久久久福利| 久久精品国产福利| 91小视频免费观看| 欧美激情在线有限公司| 九九九九九伊人| 成人欧美亚洲| 欧美激情影院| 亚洲图片有声小说| 97超碰人人看人人| 免费看一级大片| 久久精品97| 午夜亚洲国产au精品一区二区| 97神马电影| 五月婷婷六月婷婷| 国产一区二区三区电影在线观看 | 国产精品免费看| 欧美一区二区三区视频免费 | 先锋资源久久| 欧美丝袜自拍制服另类| 欧美日韩在线精品| 午夜精品小视频| 麻豆91在线播放免费| 中国人与牲禽动交精品| av在线无限看| 黄色av免费在线看| 日韩av在线播放中文字幕| 欧美激情久久久久| 无码任你躁久久久久久老妇| 岛国毛片av在线| 成人在线综合网| 91精品国产乱码久久久久久久久| xxxx黄色片| 91av亚洲| 中文字幕精品综合| 成人免费高清完整版在线观看| 91九色丨porny丨极品女神| 91精品国产色综合久久不卡粉嫩| 亚洲欧美国产高清| 91精品综合久久久久久五月天| 欧美在线视频第一页| 成久久久网站| 91精品国产欧美日韩| 欧美精品无码一区二区三区| 免费在线观看黄| 国产在线精品一区二区夜色| 欧美高清在线视频观看不卡| 永久免费看片直接| 粉嫩的18在线观看极品精品| 疯狂欧美牲乱大交777| 日日噜噜噜噜夜夜爽亚洲精品| 91超薄丝袜肉丝一区二区| 亚洲精品a级片| 日韩视频免费在线观看| 国产69视频在线观看| 久久视频免费| 一本色道久久综合亚洲精品按摩 | 欧美大片aaaa| 日韩一区二区免费电影| 91免费视频网站在线观看| 亚洲1卡2卡3卡4卡乱码精品| 国产一区二区三区免费播放| 91老司机精品视频| 精品人妻一区二区三区三区四区| 国产激情视频一区二区在线观看 | 蜜桃在线一区二区| 影音先锋中文字幕一区二区| 亚洲欧洲日本专区| www.亚洲自拍| 正在播放日韩精品| 中文字幕一区二区三区四区| 2022国产精品| 亚洲经典一区二区| 久久99热这里只有精品| 青青久久av北条麻妃黑人| 国产一区二区播放| 欧美日本三区| 中文字幕亚洲欧美| 久久嫩草捆绑紧缚| 国产综合久久| 中文字幕国产日韩| 男人的午夜天堂| 亚洲网站在线| 国产精品久久久久久一区二区| 日韩精品国产一区二区| 成人在线丰满少妇av| 色七七影院综合| 瑟瑟视频在线观看| 亚洲一区二区三区日本久久九| 欧美亚洲精品一区| 特黄特黄一级片| 亚洲国产91视频| 欧洲激情一区二区| 男人靠女人免费视频网站| 男女黄床上色视频| 国产精品系列视频| 久久综合伊人| 亚州成人av在线| 欧美成人黄色网| 亚洲精品久久久| 2025国产精品视频| 日本中文字幕在线免费观看| 日本成人中文字幕| 99久久精品久久久久久ai换脸| 97超碰国产在线| 成人av在线一区二区| 高清一区二区三区视频| 国产叼嘿视频在线观看| 久久99精品久久久| 精品国产91亚洲一区二区三区www| 亚洲第一免费视频| 久久久久九九视频| 久久99精品国产99久久| 成人午夜免费福利| 成人美女视频在线看| 欧美一区少妇| 黄色av网站在线免费观看| 亚洲欧洲另类国产综合| 色噜噜狠狠一区二区三区| 日本高清成人vr专区| 久久精品视频一区二区三区| 黄色片免费在线观看视频| 欧美草逼视频| 欧美日韩成人激情| 亚洲精品第三页| 亚洲精品中文字幕99999| 欧美尺度大的性做爰视频| 青青草激情视频| 亚洲电影影音先锋| 国产成人精品日本亚洲专区61| 中文字幕在线观看视频免费| 日本少妇一区二区| 久久手机视频| 女海盗2成人h版中文字幕| 色菇凉天天综合网| 色免费在线视频| 豆花视频一区| 亚洲国产精品人久久电影| 超碰97人人干| 国产精品主播| 欧美 日韩 国产在线| 91青青在线视频| 亚洲欧美偷拍三级| 青青草成人免费在线视频| 竹内纱里奈兽皇系列在线观看 | 国产精品亚洲lv粉色| 国产精品午夜电影| 日本激情综合网| 精品91福利视频| 久久久国产影院| 日韩av一二三区| 成人综合婷婷国产精品久久蜜臀 | 午夜在线视频一区二区区别| 国产成人高潮免费观看精品| 日本韩国一区| 亚洲乱码中文字幕综合| 在线能看的av网站| 婷婷精品在线观看| 久久久精品国产| 国产三级伦理片| 久久久久久久久久久久久久久99 | 国产高清亚洲| 欧美激情亚洲另类| 日韩午夜影院| 欧美日韩综合一区| 国产在线不卡av| 免费在线观看成人av| 四虎永久在线精品免费一区二区| 成人在线免费| 日韩激情视频在线播放| 日本一二三区在线观看| 国产伦精品一区二区三区免费| 久久国产精品亚洲va麻豆| 久久uomeier| 日韩中文在线观看| 亚洲精品无amm毛片| 欧美视频一二三| 在线观看免费看片| 日韩国产综合| 秋霞av国产精品一区| av网站在线播放| 日韩精品中午字幕| 国产成人综合在线视频| 成人国产精品视频| 五月天婷婷激情视频| 欧美国产专区| 91夜夜未满十八勿入爽爽影院| 欧美xxxx免费虐| 亚洲人成人99网站| www.黄色av| 欧美综合一区二区| 黄网站免费在线| 国产成人在线视频播放| 精品人妻一区二区三区四区在线| 日韩在线观看| 国产一区免费| a级大胆欧美人体大胆666| 欧美电影免费提供在线观看| www.色国产| 久久精品在这里| 手机看片国产精品| 日韩精品乱码av一区二区| 欧美日韩国产免费一区二区三区| av在线成人| 国产成人综合亚洲| 19禁羞羞电影院在线观看| 伊人一区二区三区久久精品 | 欧美区在线观看| 天天操天天干视频| 成人免费观看视频| 色片在线免费观看| 欧美亚洲三区| 蜜臀精品一区二区| 91成人入口| 成人h猎奇视频网站| 日韩大片欧美大片| 在线播放日韩av| 深夜影院在线观看| 在线观看亚洲专区| 五月天婷婷丁香| 亚洲精品久久嫩草网站秘色| 少妇伦子伦精品无吗| 在线精品亚洲| 真人做人试看60分钟免费| 欧美日韩直播| 99高清视频有精品视频| а天堂中文最新一区二区三区| 国产精品久久激情| dy888亚洲精品一区二区三区| 日韩视频国产视频| 一二三四区视频| 亚洲精品成人天堂一二三| 日本污视频网站| 国内精品免费在线观看| 国产1区2区3区中文字幕| 91视频综合| 伊人久久婷婷色综合98网| 精品麻豆剧传媒av国产九九九| 国产精品自产拍在线观| 密臀av在线| 色与欲影视天天看综合网| 视频在线不卡| 亚洲欧美国内爽妇网| 国产内射老熟女aaaa∵| 538prom精品视频线放| 97超碰中文字幕| 日韩视频不卡中文| 成人午夜精品福利免费| 亚洲国产精品va在线看黑人动漫| 波多野结衣不卡| 色哟哟一区二区| 波多野结衣在线电影| 91久久精品网| 亚洲视频在线免费播放| 欧美日韩色一区| 99久久久国产精品无码网爆| 日韩欧美中文字幕公布| 性猛交富婆╳xxx乱大交天津| 日韩欧美黄色影院| 人妻无码一区二区三区久久99| 亚洲精品wwwww| 国产黄在线看| 亚洲成人1234| 五月天久久久久久| 制服丝袜中文字幕亚洲| av中文字幕免费| 亚洲第一区第二区| 日韩毛片在线一区二区毛片| 在线观看国产成人av片| 国产黄色小视频在线| 国内精品久久久久伊人av | 国产色综合久久| yjizz视频| 久久久久久免费毛片精品| 国产精品夜夜夜爽阿娇| 亚洲一区二区三区免费视频| 六月丁香婷婷综合| 夜夜精品视频一区二区| 中文字幕无码日韩专区免费| 亚洲乱码国产乱码精品精的特点 | 在线日韩av| 欧美日韩一级在线| 精品久久影院| 麻豆av一区二区| 久久精品av| 99视频在线免费播放| 久久精品国产亚洲aⅴ| 亚洲av人人澡人人爽人人夜夜| 国产亚洲1区2区3区| 免费一级片视频| 欧美无人高清视频在线观看| 亚洲国产精品成人久久蜜臀| 亚洲欧洲日本专区| 女同视频在线观看| 国产精品96久久久久久| 99亚洲乱人伦aⅴ精品| 97在线中文字幕| 伊甸园亚洲一区| 日本精品福利视频| 日韩电影在线一区二区三区| 韩国黄色一级片| 国产精品少妇自拍| 久久精品国产亚洲AV成人婷婷| 欧美激情中文不卡| 国产毛片欧美毛片久久久| 国产欧美一区二区三区鸳鸯浴| 欧美极品aaaaabbbbb| 欧美亚洲国产一区二区三区 | 天天做天天爱天天高潮| 老司机精品福利视频| 久草视频福利在线| 亚洲色欲色欲www| 一级一级黄色片| 91久久精品网| 天天操天天干天天爽| 日韩精品极品在线观看播放免费视频| 欧美成人性生活视频| 日本精品视频在线观看| 日韩中文影院| 国产一区二区在线免费| 久久视频社区| 中文字幕一区二区三区在线乱码 | 午夜精品福利一区二区三区蜜桃| 91av国产精品| 精品激情国产视频| 在线成人视屏| 91久久精品国产91久久| 成人激情视频| 在线免费视频a| 国产亚洲午夜高清国产拍精品| 国内免费精品视频| 亚洲成成品网站| av人人综合网| 国产精品视频免费观看| 欧美激情在线免费| 日本福利视频导航| 日本不卡一二三区黄网| 人妻视频一区二区| 色哟哟国产精品免费观看| 欧美日韩在线中文字幕| 日韩一区视频在线| 国产一区二区主播在线| 色姑娘综合网| 久久99精品一区二区三区| 久久精品色妇熟妇丰满人妻| 欧美三级三级三级爽爽爽| av在线天堂播放| 国产日产亚洲精品| 亚洲精品国产首次亮相| 日本55丰满熟妇厨房伦| 一个色在线综合| 欧美一区二区三区激情| 4438全国成人免费| 久久91麻豆精品一区| 国产aaaaa毛片| 中文字幕在线一区二区三区| 国产精品一级二级| 九色精品美女在线| 国产欧美啪啪| 青青青国产在线视频| 亚洲欧洲av一区二区三区久久| 国产三级精品在线观看| 国模叶桐国产精品一区| 欧美日韩激情| 性鲍视频在线观看| 亚洲mv在线观看| 国产高清免费在线播放| 成人免费淫片aa视频免费| 狠狠色丁香久久综合频道| 日本护士做爰视频| 在线免费亚洲电影| av超碰免费在线| 国产精品亚洲精品| 欧美成人精品| 右手影院亚洲欧美| 欧美日韩三级一区二区| 丝袜国产在线| 日本黑人久久| 国产成人一区在线| 无码人妻精品一区二| 另类色图亚洲色图| 久久er热在这里只有精品66| 国产在线无码精品| 2021国产精品久久精品| 国产第一页在线播放| 亚洲人成网7777777国产| 国产精品一区免费在线| 99热在线这里只有精品| 懂色av一区二区三区免费观看| 日韩 欧美 中文| 久久香蕉国产线看观看av| 日韩精品丝袜美腿| aaaaaaaa毛片| 在线这里只有精品|