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

Hadoop大數據通用處理平臺

大數據 Hadoop
Hadoop是一款開源的大數據通用處理平臺,其提供了分布式存儲和分布式離線計算,適合大規模數據、流式數據(寫一次,讀多次),不適合低延時的訪問、大量的小文件以及頻繁修改的文件。

Hadoop是一款開源的大數據通用處理平臺,其提供了分布式存儲和分布式離線計算,適合大規模數據、流式數據(寫一次,讀多次),不適合低延時的訪問、大量的小文件以及頻繁修改的文件。

*Hadoop由HDFS、YARN、MapReduce組成。

如果想學習Java工程化、高性能及分布式、深入淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java高級交流:854630135,群里有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給大家。

Hadoop的特點:

  1. 高擴展(動態擴容):能夠存儲和處理千兆字節數據(PB),能夠動態的增加和卸載節點,提升存儲能力(能夠達到上千個節點)
  2. 低成本:只需要普通的PC機就能實現,不依賴高端存儲設備和服務器。
  3. 高效率:通過在Hadoop集群中分化數據并行處理,使得處理速度非常快。
  4. 可靠性:數據有多份副本,并且在任務失敗后能自動重新部署。

Hadoop的使用場景:

  • 日志分析,將數據分片并行計算處理。
  • 基于海量數據的在線應用。
  • 推薦系統,精準營銷。
  • 搜索引擎。

Hadoop生態圈: 

Hadoop大數據通用處理平臺
  • Hive:利用Hive可以不需要編寫復雜的Hadoop程序,只需要寫一個SQL語句,Hive就會把SQL語句轉換成Hadoop的任務去執行,降低使用Hadoop離線計算的門檻。
  • HBase:海量數據存儲的非關系型數據庫,單個表中的數據能夠容納百億行x百萬列。
  • ZooKeeper:監控Hadoop集群中每個節點的狀態,管理整個集群的配置,維護節點間數據的一致性。
  • Flume:海量日志采集系統。

2.內部結構

2.1 HDFS 

Hadoop大數據通用處理平臺

HDFS是分布式文件系統,存儲海量的文件,其中HDFS中包含NameNode、DataNode、SecondaryNameNode組件等。

Block數據塊

  1. HDFS中基本的存儲單元,1.X版本中每個Block默認是64M,2.X版本中每個Block默認是128M。
  2. 一個大文件會被拆分成多個Block進行存儲,如果一個文件少于Block的大小,那么其實際占用的空間為文件自身大小。
  3. 每個Block都會在不同的DataNode節點中存在備份(默認備份數是3)

DataNode

  1. 保存具體的Blocks數據。
  2. 負責數據的讀寫操作和復制操作。
  3. DataNode啟動時會向NameNode匯報當前存儲的數據塊信息。

NameNode

  1. 存儲文件的元信息和文件與Block、DataNode的關系,NameNode運行時所有數據都保存在內存中,因此整個HDFS可存儲的文件數受限于NameNode的內存大小。
  2. 每個Block在NameNode中都對應一條記錄,如果是大量的小文件將會消耗大量內存,因此HDFS適合存儲大文件。
  3. NameNode中的數據會定時保存到本地磁盤中(只有元數據),但不保存文件與Block、DataNode的位置信息,這部分數據由DataNode啟動時上報和運行時維護。

*NameNode不允許DataNode具有同一個Block的多個副本,所以創建的副本數量是當時DataNode的總數。

*DataNode會定期向NameNode發送心跳信息,一旦在一定時間內NameNode沒有接收到DataNode發送的心跳則認為其已經宕機,因此不會再給它任何IO請求。

*如果DataNode失效造成副本數量下降并且低于預先設置的閾值或者動態增加副本數量,則NameNode會在合適的時機重新調度DataNode進行復制。

SecondaryNameNode

  1. 定時與NameNode進行同步,合并HDFS中系統鏡像,定時替換NameNode中的鏡像。

HDFS寫入文件的流程 

Hadoop大數據通用處理平臺
  1. HDFS Client向NameNode申請寫入文件。
  2. NameNode根據文件大小,返回文件要寫入的DataNode列表以及Block id (此時NameNode已存儲文件的元信息、文件與DataNode、Block之間的關系)
  3. HDFS Client收到響應后,將文件寫入第一個DataNode中,第一個DataNode接收到數據后將其寫入本地磁盤,同時把數據傳遞給第二個DataNode,直到寫入備份數個DataNode。
  4. 每個DataNode接收完數據后都會向前一個DataNode返回寫入成功的響應,最終第一個DataNode將返回HDFS Client客戶端寫入成功的響應。
  5. 當HDFS Client接收到整個DataNodes的確認請求后會向NameNode發送最終確認請求,此時NameNode才會提交文件。

*當寫入某個DataNode失敗時,數據會繼續寫入其他的DataNode,NameNode會重新尋找DataNode繼續復制,以保證數據的可靠性。

*每個Block都會有一個校驗碼并存放在獨立的文件中,以便讀的時候來驗證數據的完整性。

*文件寫入完畢后,向NameNode發送確認請求,此時文件才可見,如果發送確認請求之前NameNode宕機,那么文件將會丟失,HDFS客戶端無法進行讀取。

HDFS讀取文件的流程 

Hadoop大數據通用處理平臺

如果想學習Java工程化、高性能及分布式、深入淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java高級交流:854630135,群里有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給大家。

  1. HDFS Client向NameNode申請讀取指定文件。
  2. NameNode返回文件所有的Block以及這些Block所在的DataNodes中(包括復制節點)
  3. HDFS Client根據NameNode的返回,優先從與HDFS Client同節點的DataNode中直接讀取(若HDFS Client不在集群范圍內則隨機選擇),如果從DataNode中讀取失敗則通過網絡從復制節點中進行讀取。

機架感知 

Hadoop大數據通用處理平臺

分布式集群中通常包含非常多的機器,由于受到機架槽位和交換機網口的限制,通常大型的分布式集群都會跨好幾個機架,由多個機架上的機器共同組成一個分布式集群。

機架內的機器之間的網絡速度通常都會高于跨機架機器之間的網絡速度,并且機架之間機器的網絡通信通常受到上層交換機間網絡帶寬的限制。

Hadoop默認沒有開啟機架感知功能,默認情況下每個Block都是隨機分配DataNode,需要進行相關的配置,那么在NameNode啟動時,會將機器與機架的對應信息保存在內存中,用于在HDFS Client申請寫文件時,能夠根據預先定義的機架關系合理的分配DataNode。

Hadoop機架感知默認對3個副本的存放策略為:

  • 第1個Block副本存放在和HDFS Client所在的節點中(若HDFS Client不在集群范圍內則隨機選取)
  • 第2個Block副本存放在與第一個節點不同機架下的節點中(隨機選擇)
  • 第3個Block副本存放在與第2個副本所在節點的機架下的另一個節點中,如果還有更多的副本則隨機存放在集群的節點中。

*使用此策略可以保證對文件的訪問能夠優先在本機架下找到,并且如果整個機架上發生了異常也可以在另外的機架上找到該Block的副本。

2.2 YARN

YARN是分布式資源調度框架(任務計算框架的資源調度框架),主要負責集群中的資源管理以及任務調度并且監控各個節點。

ResourceManager

  1. 是整個集群的資源管理者,管理并監控各個NodeManager。
  2. 處理客戶端的任務請求。
  3. 啟動和監控ApplicationMaster。
  4. 負責資源的分配以及調度。

NodeManager

  1. 是每個節點的管理者,負責任務的執行。
  2. 處理來自ResourceManager的命令。
  3. 處理來自ApplicationMaster的命令。

ApplicationMaster

  1. 數據切分,用于并行計算處理。
  2. 計算任務所需要的資源。
  3. 負責任務的監控與容錯。

任務運行在YARN的流程 

Hadoop大數據通用處理平臺

客戶端提交任務請求到ResourceManager。

  1. ResourceManager生成一個ApplicationManager進程,用于任務的管理。
  2. ApplicationManager創建一個Container容器用于存放任務所需要的資源。
  3. ApplicationManager尋找其中一個NodeManager,在此NodeManager中啟動一個ApplicationMaster,用于任務的管理以及監控。
  4. ApplicationMaster向ResourceManager進行注冊,并計算任務所需的資源匯報給ResourceManager(CPU與內存)
  5. ResourceManager為此任務分配資源,資源封裝在Container容器中。
  6. ApplicationMaster通知集群中相關的NodeManager進行任務的執行。
  7. 各個NodeManager從Container容器中獲取資源并執行Map、Reduce任務。

2.3 MapReduce

MapReduce是分布式離線并行計算框架,高吞吐量,高延時,原理是將分析的數據拆分成多份,通過多臺節點并行處理,相對于Storm、Spark任務計算框架而言,MapReduce是最早出現的計算框架。

MapReduce、Storm、Spark任務計算框架對比: 

Hadoop大數據通用處理平臺

MapReduce執行流程

MapReduce將程序劃分為Map任務以及Reduce任務兩部分。

Map任務處理流程

  1. 讀取文件中的內容,解析成Key-Value的形式 (Key為偏移量,Value為每行的數據)
  2. 重寫map方法,編寫業務邏輯,生成新的Key和Value。
  3. 對輸出的Key、Value進行分區(Partitioner類)
  4. 對數據按照Key進行排序、分組,相同key的value放到一個集合中(數據匯總)

*處理的文件必須要在HDFS中。

Reduce任務處理流程

  1. 對多個Map任務的輸出,按照不同的分區,通過網絡復制到不同的reduce節點。
  2. 對多個Map任務的輸出進行合并、排序。
  3. 將reduce的輸出保存到文件,存放在HDFS中。

3.Hadoop的使用

3.1 安裝

由于Hadoop使用Java語言進行編寫,因此需要安裝JDK。 

Hadoop大數據通用處理平臺

從CDH中下載Hadoop 2.X并進行解壓,CDH是Cloudrea公司對各種開源框架的整合與優化(較穩定) 

Hadoop大數據通用處理平臺
  • etc目錄:Hadoop配置文件存放目錄。
  • logs目錄:Hadoop日志存放目錄。
  • bin目錄、sbin目錄:Hadoop可執行命令存放目錄。

etc目錄 

Hadoop大數據通用處理平臺

bin目錄 

Hadoop大數據通用處理平臺

sbin目錄 

Hadoop大數據通用處理平臺

3.2 Hadoop配置

1.配置環境

編輯etc/hadoop/hadoop-env.sh的文件,修改JAVA_HOME配置項為本地JAVA的HOME目錄,此文件是Hadoop啟動時加載的環境變量。 

Hadoop大數據通用處理平臺

編輯/etc/hosts文件,添加主機名與IP的映射關系。 

Hadoop大數據通用處理平臺

2.配置Hadoop公共屬性(core-site.xml)

  1. <configuration>  
  2.  <!-- Hadoop工作目錄,用于存放Hadoop運行時產生的臨時數據 -->  
  3.  <property>  
  4.  <name>hadoop.tmp.dir</name>  
  5.  <value>/usr/hadoop/hadoop-2.9.0/data</value>  
  6.  </property>  
  7.  <!-- NameNode的通信地址,1.x默認9000,2.x可以使用8020 -->  
  8.  <property>  
  9.  <name>fs.default.name</name>  
  10.  <value>hdfs://192.168.1.80:8020</value>  
  11.  </property>  
  12. </configuration> 

3.配置HDFS(hdfs-site.xml)

  1. <configuration>  
  2.  <!--指定block的副本數量(將block復制到集群中備份數-1個節點的DataNode中)-->  
  3.  <property>  
  4.  <name>dfs.replication</name>  
  5.  <value>1</value>  
  6.  </property>  
  7.  <!-- 關閉HDFS的訪問權限 -->  
  8.  <property>  
  9.  <name>dfs.permissions.enabled</name>  
  10.  <value>false</value>  
  11.  </property>  
  12. </configuration> 

4.配置YARN(yarn-site.xml)

  1. <configuration> 
  2.  <!-- 配置Reduce取數據的方式是shuffle(隨機) --> 
  3.  <property> 
  4.  <name>yarn.nodemanager.aux-services</name
  5.  <value>mapreduce_shuffle</value> 
  6.  </property> 
  7. </configuration> 

5.配置MapReduce(mapred-site.xml)

  1. <configuration>  
  2.  <!-- 讓MapReduce任務使用YARN進行調度 -->  
  3.  <property>  
  4.  <name>mapreduce.framework.name</name>  
  5.  <value>yarn</value>  
  6.  </property>  
  7. </configuration> 

6.配置SSH

由于在啟動hdfs、yarn時都需要對用戶的身份進行驗證,因此可以配置SSH設置免密碼登錄。

  1. //生成秘鑰 
  2. ssh-keygen -t rsa  
  3. //復制秘鑰到本機 
  4. ssh-copy-id 192.168.1.80 

3.3 啟動HDFS

1.格式化NameNode 

Hadoop大數據通用處理平臺

2.啟動HDFS,將會啟動NameNode、DataNode、SecondaryNameNode三個進程,可以通過jps命令進行查看。 

Hadoop大數據通用處理平臺

 Hadoop大數據通用處理平臺

*若啟動時出現錯誤,則可以進入logs目錄查看相應的日志文件。

當HDFS啟動完畢后,可以訪問http://localhost:50070進入HDFS的可視化管理界面,可以在此頁面中監控整個HDFS集群的狀況并且進行文件的上傳以及下載。 

Hadoop大數據通用處理平臺

*進入HDFS監控頁面下載文件時,會將請求重定向,重定向后的地址的主機名為NameNode的主機名,因此客戶端本地的host文件中需要配置NameNode主機名與IP的映射關系。

3.4 啟動YARN 

Hadoop大數據通用處理平臺

啟動YARN后,將會啟動ResourceManager以及NodeManager進程,可以通過jps命令進行查看。 

Hadoop大數據通用處理平臺

當YARN啟動完畢后,可以訪問http://localhost:8088進入YARN的可視化管理界面,可以在此頁面中查看任務的執行情況以及資源的分配。 

Hadoop大數據通用處理平臺

3.5 使用Shell命令操作HDFS

HDFS中的文件系統與Linux類似,由/代表根目錄。

如果想學習Java工程化、高性能及分布式、深入淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java高級交流:854630135,群里有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給大家。

  1. hadoop fs -cat <src>:顯示文件中的內容。 
  2. hadoop fs -copyFromLocal <localsrc> <dst>:將本地中的文件上傳到HDFS。 
  3. hadoop fs -copyToLocal <src> <localdst>:將HDFS中的文件下載到本地。 
  4. hadoop fs -count <path>:查詢指定路徑下文件的個數。 
  5. hadoop fs -cp <src> <dst>:在HDFS內對文件進行復制。 
  6. hadoop fs -get <src> <localdst>:將HDFS中的文件下載到本地。 
  7. hadoop fs -ls <path>:顯示指定目錄下的內容。 
  8. hadoop fs -mkdir <path>:創建目錄。 
  9. hadoop fs -moveFromLocal <localsrc> <dst>:將本地中的文件剪切到HDFS中。 
  10. hadoop fs -moveToLocal <src> <localdst> :將HDFS中的文件剪切到本地中。 
  11. hadoop fs -mv <src> <dst> :在HDFS內對文件進行移動。 
  12. hadoop fs -put <localsrc> <dst>:將本地中的文件上傳到HDFS。 
  13. hadoop fs -rm <src>:刪除HDFS中的文件。 

3.6 JAVA中操作HDFS

  1. /** 
  2.  * @Auther: ZHUANGHAOTANG 
  3.  * @Date: 2018/11/6 11:49 
  4.  * @Description: 
  5.  */ 
  6. public class HDFSUtils { 
  7.  private static Logger logger = LoggerFactory.getLogger(HDFSUtils.class); 
  8.  /** 
  9.  * NameNode URL 
  10.  */ 
  11.  private static final String NAMENODE_URL = "192.168.1.80:8020"
  12.  /** 
  13.  * HDFS文件系統連接對象 
  14.  */ 
  15.  private static FileSystem fs = null
  16.  static { 
  17.  Configuration conf = new Configuration(); 
  18.  try { 
  19.  fs = FileSystem.get(URI.create(NAMENODE_URL), conf); 
  20.  } catch (IOException e) { 
  21.  logger.info("初始化HDFS連接失敗:{}", e); 
  22.  } 
  23.  } 
  24.  /** 
  25.  * 創建目錄 
  26.  */ 
  27.  public static void mkdir(String dir) throws Exception { 
  28.  dir = NAMENODE_URL + dir; 
  29.  if (!fs.exists(new Path(dir))) { 
  30.  fs.mkdirs(new Path(dir)); 
  31.  } 
  32.  } 
  33.  /** 
  34.  * 刪除目錄或文件 
  35.  */ 
  36.  public static void delete(String dir) throws Exception { 
  37.  dir = NAMENODE_URL + dir; 
  38.  fs.delete(new Path(dir), true); 
  39.  } 
  40.  /** 
  41.  * 遍歷指定路徑下的目錄和文件 
  42.  */ 
  43.  public static List<String> listAll(String dir) throws Exception { 
  44.  List<String> names = new ArrayList<>(); 
  45.  dir = NAMENODE_URL + dir; 
  46.  FileStatus[] files = fs.listStatus(new Path(dir)); 
  47.  for (FileStatus file : files) { 
  48.  if (file.isFile()) { //文件 
  49.  names.add(file.getPath().toString()); 
  50.  } else if (file.isDirectory()) { //目錄 
  51.  names.add(file.getPath().toString()); 
  52.  } else if (file.isSymlink()) { //軟或硬鏈接 
  53.  names.add(file.getPath().toString()); 
  54.  } 
  55.  } 
  56.  return names; 
  57.  } 
  58.  /** 
  59.  * 上傳當前服務器的文件到HDFS中 
  60.  */ 
  61.  public static void uploadLocalFileToHDFS(String localFile, String hdfsFile) throws Exception { 
  62.  hdfsFile = NAMENODE_URL + hdfsFile; 
  63.  Path src = new Path(localFile); 
  64.  Path dst = new Path(hdfsFile); 
  65.  fs.copyFromLocalFile(src, dst); 
  66.  } 
  67.  /** 
  68.  * 通過流上傳文件 
  69.  */ 
  70.  public static void uploadFile(String hdfsPath, InputStream inputStream) throws Exception { 
  71.  hdfsPath = NAMENODE_URL + hdfsPath; 
  72.  FSDataOutputStream os = fs.create(new Path(hdfsPath)); 
  73.  BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); 
  74.  byte[] data = new byte[1024]; 
  75.  int len; 
  76.  while ((len = bufferedInputStream.read(data)) != -1) { 
  77.  if (len == data.length) { 
  78.  os.write(data); 
  79.  } else { //最后一次讀取 
  80.  byte[] lastData = new byte[len]; 
  81.  System.arraycopy(data, 0, lastData, 0, len); 
  82.  os.write(lastData); 
  83.  } 
  84.  } 
  85.  inputStream.close(); 
  86.  bufferedInputStream.close(); 
  87.  os.close(); 
  88.  } 
  89.  /** 
  90.  * 從HDFS中下載文件 
  91.  */ 
  92.  public static byte[] readFile(String hdfsFile) throws Exception { 
  93.  hdfsFile = NAMENODE_URL + hdfsFile; 
  94.  Path path = new Path(hdfsFile); 
  95.  if (fs.exists(path)) { 
  96.  FSDataInputStream is = fs.open(path); 
  97.  FileStatus stat = fs.getFileStatus(path); 
  98.  byte[] data = new byte[(int) stat.getLen()]; 
  99.  is.readFully(0, data); 
  100.  is.close(); 
  101.  return data; 
  102.  } else { 
  103.  throw new Exception("File Not Found In HDFS"); 
  104.  } 
  105.  } 

3.7 執行一個MapReduce任務

Hadoop中提供了hadoop-mapreduce-examples-2.9.0.jar,其封裝了一些任務計算方法,可以直接進行調用。 

Hadoop大數據通用處理平臺

*使用hadoop jar命令執行JAR包。

1.創建一個文件,將此文件上傳到HDFS中。 

Hadoop大數據通用處理平臺

2.使用Hadoop提供的hadoop-mapreduce-examples-2.9.0.jar執行wordcount詞頻統計功能,然后在YARN管理頁面中進行查看。 

Hadoop大數據通用處理平臺

YARN管理頁面中可以查看任務的執行進度: 

Hadoop大數據通用處理平臺

3.當任務執行完畢后,可以查看任務的執行結果。 

Hadoop大數據通用處理平臺

*任務的執行結果將會放到HDFS的文件中。

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2017-07-21 14:22:17

大數據大數據平臺數據處理

2012-09-26 22:18:19

IBM大數據Hadoop

2013-12-12 10:00:03

大數據

2016-01-14 09:41:20

云應用大數據4V

2018-01-31 21:26:48

HadoopSparkStream大數據

2013-07-08 09:50:22

VMwareHadoop虛擬化

2015-05-05 11:18:18

大數據Hadoop技術處理

2011-09-01 15:12:43

SQL ServerHadoop

2022-07-20 15:10:38

Docker大數據平臺

2016-12-20 18:21:29

Hadoop大數據面試

2012-11-07 13:31:53

Hadoop大數據

2017-05-05 09:53:34

Hadoop大數據處理

2012-05-31 14:37:10

Hadoop大數據

2011-12-08 09:56:14

Hadoop

2011-12-22 09:21:04

云計算Hadoop大數據

2014-06-17 09:44:30

Hadoop

2017-05-11 11:00:11

大數據Hadoop數據處理

2018-01-22 08:33:28

SparkHadoop計算

2015-03-30 10:48:17

大數據大數據處理Hadoop

2017-01-19 15:39:47

華為大數據
點贊
收藏

51CTO技術棧公眾號

青娱乐极品盛宴一区二区| 国产一区二区影视| 精品99视频| 亚洲视频在线免费看| 自拍偷拍一区二区三区四区| 在线你懂的视频| 91色在线porny| 国产热re99久久6国产精品| 国产亚洲精久久久久久无码77777| 午夜精品影视国产一区在线麻豆| 欧美日韩精品欧美日韩精品一 | 国产精品99视频| 亚洲韩国欧洲国产日产av| 国产aaaaa毛片| 免费污视频在线观看| 国产日产欧美一区| 国产精品一区二区欧美| 一二三四区视频| 亚洲少妇一区| 欧美国产日本在线| 精品一区二区在线观看视频| 免费看成人人体视频| 9191精品国产综合久久久久久| 一女被多男玩喷潮视频| 操你啦视频在线| 亚洲国产电影在线观看| 久久精品国产理论片免费| 99草在线视频| 蜜臀久久99精品久久久画质超高清 | 国产精品久久久久久久久快鸭 | caoporen国产精品视频| 日本sm极度另类视频| 在线免费看av网站| 99久久婷婷国产| 欧美劲爆第一页| 国产黄色录像片| 国产成人精品一区二区免费看京 | av网站免费大全| 日本免费一区视频| 成人爽a毛片免费啪啪红桃视频| 无吗不卡中文字幕| 欧美另类xxx| 精品一区二区三区毛片| 午夜福利理论片在线观看| 国内精品视频666| 国产精品欧美久久久| 国产精品久久久久久久久久精爆| 中文字幕日韩欧美| 妞干网在线视频观看| 日本不卡视频| 久久综合99re88久久爱| 国产免费一区| 天天干天天色天天| 欧美日韩破处视频| 国产一区二区三区黄视频| 欧美又大又硬又粗bbbbb| 久久精品国产亚洲AV无码麻豆| 在线成人激情| 久久九九全国免费精品观看| 国产大屁股喷水视频在线观看| 在线精品视频一区二区三四| 蜜桃臀一区二区三区| 亚洲卡一卡二卡三| 粉嫩一区二区三区在线看| 成人春色激情网| 亚洲在线精品视频| 久国产精品韩国三级视频| 国产精品一区二区三区久久| 最近中文字幕在线观看视频| 日本va欧美va精品| 国产欧美va欧美va香蕉在| 一区二区三区黄色片| 激情欧美日韩一区二区| 成人妇女免费播放久久久| av中文字幕观看| 处破女av一区二区| 精品视频一区二区三区四区| 天堂中文在线8| 国产三级三级三级精品8ⅰ区| 亚洲精品一区二| av中文字幕在线观看| 亚洲一区影音先锋| av动漫在线看| 国外成人福利视频| 日韩一区二区三区在线观看| 69xxx免费视频| 美女久久99| 中文字幕精品网| 国产成人无码aa精品一区| 亚洲承认在线| 国产精品久久久久久久天堂| 国产欧美综合视频| 91麻豆.com| 亚洲日本精品国产第一区| 羞羞视频在线免费国产| 欧美日韩一区二区精品| 中文字幕永久视频| 成人午夜大片| 综合国产在线视频| 国产污片在线观看| 美女性感视频久久| 国产精品一区二区三区在线| 国产原创av在线| 亚洲图片欧美色图| 青青青国产在线视频| 亚洲欧美在线综合| 日韩经典中文字幕| 五月天婷婷色综合| 日韩福利视频网| 成人综合av网| 精品无人乱码| 亚洲制服丝袜一区| 午夜剧场在线免费观看| 精品国产影院| xxx一区二区| 国产成人无码专区| 成人免费精品视频| 亚洲欧美日韩另类精品一区二区三区 | а天堂中文在线官网| 黑人精品xxx一区| ass极品水嫩小美女ass| 成人aaaa| 日产精品99久久久久久| 俄罗斯嫩小性bbwbbw| 中文字幕中文字幕一区| 日韩精品一区二区三区色欲av| 日韩国产在线不卡视频| 中文字幕免费国产精品| 国产精品午夜影院| 成人免费福利片| 在线视频一二三区| 日韩黄色三级在线观看| 亚洲欧美三级在线| 国产成人在线观看网站| 国产大陆a不卡| 久久天天东北熟女毛茸茸| 国产精品原创视频| 国产亚洲精品久久久久动| 久久精品视频1| 北条麻妃国产九九精品视频| 成人高清dvd| 久久久久九九精品影院| 色悠悠久久久久| 无码人妻丰满熟妇精品区| 91丨九色丨尤物| 一区二区传媒有限公司| 欧美偷窥清纯综合图区| 国a精品视频大全| 韩国av免费在线观看| 亚洲精品国产a久久久久久 | www.成人| xxx成人少妇69| 亚洲综合免费视频| 国产精品三级在线观看| gogogo高清免费观看在线视频| 亚洲婷婷丁香| 国产91在线视频| 国产系列电影在线播放网址| 日本精品一区二区三区高清 | 青青草国产成人a∨下载安卓| 日本亚洲欧美成人| а天堂8中文最新版在线官网| 在线观看日产精品| 四虎成人免费影院| 蜜桃视频一区二区三区| 伊人色综合久久天天五月婷| 成人网av.com/| 欧美激情精品久久久久久变态| 亚洲欧美激情在线观看| 性久久久久久久久久久久| 亚洲乱码国产乱码精品精大量| 国产精品视频| 婷婷五月色综合| 国产精品久久久久久av公交车| 久久中文字幕在线| 天天摸夜夜添狠狠添婷婷| 欧美性xxxx极品hd满灌| 成人片黄网站色大片免费毛片| 日韩国产一区二| 中文字幕日韩精品久久| 午夜视频一区二区在线观看| 国模吧一区二区三区| 精品影院一区| 欧美一区二区三区免费视频| 久久精品国产av一区二区三区| 久久久久久久久一| 亚洲三级在线观看视频| 亚洲精品美女91| 水蜜桃亚洲精品| 精品久久国产一区| 992tv成人免费影院| 国产裸舞福利在线视频合集| 欧美一级理论性理论a| 青青草成人av| 国产亚洲午夜高清国产拍精品| 在线免费黄色网| 亚洲免费高清| 伊人色综合影院| 日韩中出av| 51国产成人精品午夜福中文下载 | 国产激情久久久| 调教一区二区| 一区二区三区视频免费在线观看| www男人的天堂| 欧美自拍偷拍午夜视频| 免费视频网站www| 中文字幕不卡的av| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 久青草视频在线播放| 国产一区三区在线播放| av成人综合网| 国产精品99精品一区二区三区∴| 欧美激情精品久久久久久黑人| 国产高清免费av在线| 精品福利在线导航| 亚洲一卡二卡在线| 一本高清dvd不卡在线观看| 欧美人妻精品一区二区三区| 欧美国产日本韩| 日本五十肥熟交尾| 国产一区二区三区综合| 午夜激情av在线| 亚洲女人av| 老子影院午夜伦不卡大全| 91久久电影| 亚洲午夜精品国产| 国产伦精品一区二区三区视频 | 黄色片在线看| 亚洲高清色综合| 精品人妻一区二区三区四区不卡 | 国产视频福利在线| 精品香蕉在线观看视频一| 丰满人妻熟女aⅴ一区| 欧美久久久久久蜜桃| 国产精品午夜一区二区| 色综合视频在线观看| 色网站在线播放| 亚洲国产精品久久艾草纯爱| 一区二区成人免费视频| 国产精品免费观看视频| 国产99在线 | 亚洲| 国产婷婷精品av在线| 中文字幕一区二区三区人妻| 丁香五精品蜜臀久久久久99网站| 久久无码人妻一区二区三区| 精品一区二区在线播放| 污视频网址在线观看| 七七婷婷婷婷精品国产| 成年人在线观看视频免费| 久久久蜜桃一区二区人| 99久久激情视频| 夜夜嗨一区二区| 欧美日本视频在线观看| 免费永久网站黄欧美| 国产精品97在线| 玖玖在线精品| 三年中国国语在线播放免费| 日产国产欧美视频一区精品| www.xxx亚洲| 日本aⅴ免费视频一区二区三区| 亚洲成人av免费看| 久久 天天综合| 中文字幕在线播放一区二区| 国产成人亚洲综合a∨婷婷图片| 国产老头和老头xxxx×| 国产成人福利片| 中文字幕a在线观看| 26uuu国产日韩综合| 一级黄色录像毛片| 中文字幕在线播放不卡一区| 亚洲熟女毛茸茸| 亚洲影院久久精品| www.国产色| 欧美又粗又大又爽| 国产喷水吹潮视频www| 亚洲精品一区二区三区影院 | 欧美激情在线看| sm捆绑调教视频| 一区二区三区国产豹纹内裤在线| 国产精品theporn动漫| 欧美日韩在线视频一区| 中文字幕精品无码亚| 日韩一区二区在线看| 天天干天天草天天射| 最近中文字幕mv在线一区二区三区四区| 美女羞羞视频在线观看| 久久久久在线观看| 青青青免费在线视频| 国产裸体写真av一区二区| aaa国产精品| 日韩福利视频| 国产在线日韩| 国产又粗又长又大的视频| 国产成人免费在线观看| 精品无码在线观看| 一区二区三区波多野结衣在线观看 | 黑人巨大精品欧美一区免费视频 | 亚洲欧洲精品在线| 精品白丝av| www.色就是色.com| 91麻豆福利精品推荐| 18岁成人毛片| 欧美专区在线观看一区| 免费av网站观看| 色妞久久福利网| 在线免费三级电影网站| 亚洲在线视频福利| 日韩欧美大片| av观看免费在线| 国产成人av福利| 很污很黄的网站| 精品国产乱码久久久久久天美 | 国产卡一卡二在线| 美女精品一区| 久久久老熟女一区二区三区91| 日韩一区欧美小说| 久草热在线观看| 国产视频亚洲视频| av剧情在线观看| 亚洲最大激情中文字幕| 色综合久久一区二区三区| 无码人妻h动漫| caoporn国产精品| 久久久久久久中文字幕| 欧美日韩国产一级片| 国产女主播在线直播| 69av在线播放| 国产精品一线| 国产一级片91| 国产精品一区二区无线| 艳妇荡乳欲伦69影片| 在线观看一区二区精品视频| 日本一二三区在线视频| 久久久噜噜噜久久| 国产精品男女| 隔壁人妻偷人bd中字| 国产剧情一区二区| 暗呦丨小u女国产精品| 欧美日韩亚洲高清一区二区| 国内av一区二区三区| 欧美最猛黑人xxxx黑人猛叫黄| 久久国产精品色| 精品国产免费av| 国产二区国产一区在线观看| 美女视频久久久| 欧美三级视频在线观看| 污视频在线免费| 欧美国产日韩精品| 日韩高清一区| 乱熟女高潮一区二区在线| 国产一区二区精品在线观看| 99久久久免费精品| 欧美夫妻性生活| 黄网站在线免费看| 国产欧美一区二区三区视频 | 美日韩一级片在线观看| 中文字幕伦理片| 欧美日韩日本视频| 久久bbxx| caoporn国产精品免费公开| 亚洲私拍自拍| 日韩 中文字幕| 色综合久久久久网| 亚洲成人三级| 97人人模人人爽视频一区二区| 好吊日精品视频| 成人影视免费观看| 欧美四级电影网| 2020国产在线视频| 国产伦精品一区二区三区高清版| 99综合视频| av片在线免费看| 日韩亚洲欧美一区二区三区| xxxcom在线观看| 欧美日韩大片一区二区三区| 日韩成人午夜电影| 少妇影院在线观看| 日韩精品在线第一页| 成人国产在线| 国产精品自拍合集| 久久蜜桃av一区精品变态类天堂| 在线观看国产成人| 欧美国产激情18| 精品国产91乱码一区二区三区四区 | 日韩精品一区二区三区中文精品| аⅴ资源天堂资源库在线| 日本一区免费在线观看| 激情综合网天天干| 伊人久久综合视频| xxxx欧美18另类的高清| 久久综合五月婷婷| 中文字幕22页| 精品国产鲁一鲁一区二区张丽| a√资源在线| 国产一级精品aaaaa看| 麻豆一区二区99久久久久| 国产稀缺真实呦乱在线| 中文字幕亚洲欧美一区二区三区| 亚洲一区二区三区免费| 欧美激情精品久久久久久小说|