欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

hadoop設(shè)計思路和目標(biāo)

本文主要是作者自己的學(xué)習(xí)過程,主要是對原文的翻譯及理解,某些地方根據(jù)自己的理解,在表述上稍做些改動,以便更易于理解。
官方原文

創(chuàng)新互聯(lián)主營大興安嶺網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件定制開發(fā),大興安嶺h5微信小程序搭建,大興安嶺網(wǎng)站營銷推廣歡迎大興安嶺等地區(qū)企業(yè)咨詢


hdfs與現(xiàn)有的分布式文件系統(tǒng)有許多相似之處。但是,與其他分布式文件系統(tǒng)的區(qū)別非常明顯。HDFS是高度容錯的,設(shè)計用于部署在低成本硬件上。HDFS提供對應(yīng)用程序數(shù)據(jù)的高吞吐量訪問,適用于具有大數(shù)據(jù)集的應(yīng)用程序。HDFS放寬了一些POSIX要求,以支持對文件系統(tǒng)數(shù)據(jù)的流式訪問。

硬件故障

首先明確:硬件故障是常態(tài)而不是意外。檢測到錯誤并且自動的,快速的恢復(fù)是hdfs的核心架構(gòu)目標(biāo)

流式數(shù)據(jù)訪問

運行在HDFS上的應(yīng)用程序需要對其數(shù)據(jù)集進(jìn)行流訪問。它們不是通常在通用文件系統(tǒng)上運行的通用應(yīng)用程序。HDFS更多的是為批處理而設(shè)計的,而不是用戶的交互使用。重點是數(shù)據(jù)訪問的高吞吐量,而不是數(shù)據(jù)訪問的低延遲。POSIX強加了許多針對HDFS的應(yīng)用程序不需要的硬需求

大數(shù)據(jù)集

運行在HDFS上的應(yīng)用程序擁有大型數(shù)據(jù)集。HDFS中的一個典型文件的大小是gb到tb。因此,HDFS被調(diào)優(yōu)為支持大文件。它應(yīng)該提供高聚合數(shù)據(jù)帶寬,并可擴展到單個集群中的數(shù)百個節(jié)點。它應(yīng)該在一個實例中支持?jǐn)?shù)千萬個文件。

簡單一致性模型

HDFS應(yīng)用需要文件的write-once-read-many訪問模型。文件一旦被創(chuàng)建,寫和關(guān)閉操作出了追加和截斷,無需修改操作。支持將內(nèi)容附加到文件末尾,但不能在任意點進(jìn)行更新。這個假設(shè)簡化了數(shù)據(jù)一致性問題,并支持高吞吐量數(shù)據(jù)訪問。MapReduce應(yīng)用程序或web爬蟲應(yīng)用程序非常適合這個模型。

移動計算比移動數(shù)據(jù)廉價

如果應(yīng)用程序請求的計算在其操作的數(shù)據(jù)附近執(zhí)行,那么它的效率會高得多。當(dāng)數(shù)據(jù)集的大小很大時尤其如此。這將最小化網(wǎng)絡(luò)擁塞,并提高系統(tǒng)的總體吞吐量。這里的假設(shè)是,將計算遷移到離數(shù)據(jù)更近的地方通常比將數(shù)據(jù)遷移到應(yīng)用程序運行的地方要好。HDFS為應(yīng)用提供接口來移動他們自己以達(dá)到離數(shù)據(jù)所在的位置更近。

跨異構(gòu)硬件和軟件平臺的可移植性

HDFS被設(shè)計成易于從一個平臺移植到另一個平臺。這有助于廣泛采用HDFS作為一組大型應(yīng)用程序的首選平臺。

NameNode and DataNodes

HDFS有一個主/從架構(gòu)。HDFS集群由一個NameNode(可選secondary NameNode),NameNode是一個主服務(wù)器,它管理文件系統(tǒng)名稱空間控制客戶機對文件的訪問。此外,還有許多datanode,通常是集群中的每個物理節(jié)點一個datanode,它們管理附加到它們所運行的物理節(jié)點上的存儲設(shè)備。HDFS對外暴露一個文件系統(tǒng)名稱空間,并允許將用戶數(shù)據(jù)存儲在文件中。在內(nèi)部,一個文件被分成一個或多個塊,這些塊存儲在一組DataNode中。NameNode執(zhí)行namespace operations,如打開、關(guān)閉和重命名文件和目錄。它還決定塊到數(shù)據(jù)塊(blocks)和數(shù)據(jù)節(jié)點(DataNodes)間的映射。DataNodes 負(fù)責(zé)處理來自文件系統(tǒng)客戶端讀和寫請求。DataNodes還根據(jù)來自NameNode的指令執(zhí)行塊的創(chuàng)建、刪除和復(fù)制
hadoop設(shè)計思路和目標(biāo)
集群中單個NameNode的存在極大地簡化了系統(tǒng)的體系結(jié)構(gòu)。NameNode是所有HDFS元數(shù)據(jù)的仲裁器和存儲庫。系統(tǒng)以這樣的方式設(shè)計,用戶數(shù)據(jù)本身永遠(yuǎn)不會流經(jīng)NameNode。

The File System Namespace

HDFS支持傳統(tǒng)的分層文件組織。用戶或應(yīng)用程序可以在這些目錄中創(chuàng)建目錄并存儲文件。文件系統(tǒng)名稱空間層次結(jié)構(gòu)與大多數(shù)現(xiàn)有文件系統(tǒng)相似;可以創(chuàng)建和刪除文件,將文件從一個目錄移動到另一個目錄,或者重命名文件。HDFS支持用戶配額和訪問權(quán)限。HDFS不支持硬鏈接或軟鏈接。然而,HDFS體系結(jié)構(gòu)并不排除實現(xiàn)這些特性。
NameNode維護(hù)文件系統(tǒng)名稱空間。對文件系統(tǒng)名稱空間或其屬性的任何更改都由NameNode記錄。應(yīng)用程序可以指定HDFS應(yīng)該維護(hù)的文件副本的數(shù)量。一個文件的拷貝數(shù)稱為該文件的復(fù)制因子。此信息由NameNode存儲。

Data Replication

HDFS的設(shè)計目的是在跨機器的大型集群中可靠地存儲非常大的文件。它將每個文件存儲為一系列塊(block)。復(fù)制文件的塊是為了容錯。每個文件都可以配置塊大小復(fù)制因子。

除了最后一個塊之外,文件中的所有塊大小都相同,而用戶可以在appendhsync中添加了對可變長度塊的支持之后,啟動一個新塊,而不需要將最后一個塊填充到所配置的塊大小。

應(yīng)用程序可以指定文件的副本數(shù)量。復(fù)制因子可以在文件創(chuàng)建時指定,稍后可以更改。HDFS中的文件是寫一次的(除了追加和截斷),并且任何時候只有一個writer。

NameNode做出關(guān)于復(fù)制塊的所有決策。它定期從集群中的每個數(shù)據(jù)節(jié)點接收心跳和塊報告。接收到心跳意味著DataNode正常工作。塊報告包含DataNode上的所有塊的列表。

Replica Placement: The First Baby Steps

副本的位置對HDFS的可靠性和性能至關(guān)重要。經(jīng)過優(yōu)化的副本位置使HDFS區(qū)別于大多數(shù)其他分布式文件系統(tǒng)。.....

NameNode通過Hadoop 機架感知中概述的過程確定每個DataNode所屬的機架id。一個簡單但非最優(yōu)的策略是將副本放在各個唯一的機架上。這可以防止在某個機架整體發(fā)生故障時丟失數(shù)據(jù),并允許在讀取數(shù)據(jù)時使用多個機架的帶寬。該策略在集群中均勻分布副本,這使得在組件發(fā)生故障時很容易平衡負(fù)載。但是,這個策略增加了寫的成本,因為寫需要將塊轉(zhuǎn)移到多個機架。

為了最小化全局帶寬消耗和讀取延遲,HDFS嘗試滿足來自最接近讀取器的副本的讀取請求。如果在與讀取器節(jié)點相同的機架上存在一個副本,則首選該副本來滿足讀取請求。如果HDFS集群跨越多個數(shù)據(jù)中心,則首選駐留在本地數(shù)據(jù)中心的副本,而不是任何遠(yuǎn)程副本。

一般情況下,當(dāng)復(fù)制因子是3時,HDFS的放置策略是:

  1. 將一個副本放在本機如果寫入者位于一個datanode上,否則就放置在一個隨機的datanode
  2. 另一個副本放置在一個不同的機架上的datanode
  3. 最后一個副本放置在和2相同機架的另一個datanode

這個策略減少了機架間的寫流量,這通??梢蕴岣邔懶阅?。整個機架失效的概率要遠(yuǎn)小于某個節(jié)點失效的概率,因此該策略并不影響對數(shù)據(jù)可靠性和可用性的保證。但是,它確減少了讀取數(shù)據(jù)時使用的聚合網(wǎng)絡(luò)帶寬,因為一個塊只放在兩個而不是三個機架中。使用此策略,文件的副本不會均勻地分布在機架上。三分之一的副本在一個節(jié)點上,三分之二的副本在一個機架上,另外三分之一均勻地分布在剩余的機架上。該策略在不影響數(shù)據(jù)可靠性或讀取性能的情況下提高了寫性能。

如果復(fù)制因子大于3,那么第4個以及后續(xù)的副本將隨機選擇datanode放置,但是每個節(jié)點的副本數(shù)量有限制(基本上是(replicas - 1) / racks + 2)

因為NameNode不允許數(shù)據(jù)陽極具有相同塊的多個副本,所以創(chuàng)建的最大副本數(shù)量是當(dāng)時的datanode總數(shù)。

在向HDFS添加了對Storage Types and Storage Policies的支持之后,除了上面描述的機架感知之外,NameNode還考慮這兩種策略。NameNode首先根據(jù)機架感知選擇節(jié)點,然后檢查候選節(jié)點是否具有與文件關(guān)聯(lián)的策略所需的存儲空間。如果候選節(jié)點沒有存儲類型,則NameNode將查找另一個節(jié)點。 If enough nodes to place replicas can not be found in the first path, the NameNode looks for nodes having fallback storage types in the second path.

Replica Selection

總體而言就近讀
為了最小化全局帶寬消耗和讀取延遲,HDFS嘗試滿足來自最接近讀取器的副本的讀取請求。如果在與讀取器節(jié)點相同的機架上存在一個副本,則首選該副本來滿足讀取請求。如果HDFS集群跨越多個數(shù)據(jù)中心,則首選駐留在本地數(shù)據(jù)中心的副本,而不是任何遠(yuǎn)程副本。

Safemode

在啟動時,NameNode進(jìn)入一個稱為Safemode的特殊狀態(tài)。當(dāng)NameNode處于Safemode狀態(tài)時,不會發(fā)生數(shù)據(jù)塊的復(fù)制。NameNode接收來自datanode的心跳和塊報告消息。塊報告包含DataNode托管的數(shù)據(jù)塊列表。每個塊都有指定的最小數(shù)量的副本。當(dāng)NameNode檢查到一個數(shù)據(jù)塊已經(jīng)達(dá)到它所指定的最小副本數(shù)時就認(rèn)為該數(shù)據(jù)塊已經(jīng)安全復(fù)制。在達(dá)到一個可配置的“已安全復(fù)制的數(shù)據(jù)塊”的百分比之后(再加上30秒),NameNode退出Safemode狀態(tài)。然后,NameNode檢查仍然小于指定副本數(shù)的數(shù)據(jù)塊列表(如果有的話),并將這些塊復(fù)制到其他datanode。

The Persistence of File System Metadata

HDFS名稱空間由NameNode存儲。NameNode使用名為EditLog的事務(wù)日志持久地記錄文件系統(tǒng)元數(shù)據(jù)中發(fā)生的每個更改。例如,在HDFS中創(chuàng)建一個新文件會導(dǎo)致NameNode將一條記錄插入到表明這一點的EditLog中。類似地,更改文件的復(fù)制因子會將一條新記錄插入EditLog。NameNode使用其本地主機OS文件系統(tǒng)中的一個文件來存儲EditLog。整個文件系統(tǒng)名稱空間(包括塊到文件的映射和文件系統(tǒng)屬性)存儲在一個名為FsImage的文件中。FsImage也作為文件存儲在NameNode的本地文件系統(tǒng)中

NameNode在內(nèi)存中保存整個文件系統(tǒng)名稱空間和文件塊映射的鏡像。當(dāng)NameNode啟動時,或者一個檢查點(checkpoint)被一個可配置的閾值觸發(fā)時,它從磁盤讀取FsImage和EditLog,將EditLog中的所有事務(wù)應(yīng)用于FsImage的內(nèi)存鏡像,并將這個新版本刷新到磁盤上的一個新FsImage中。然后,它可以截斷(truncate)舊的EditLog,因為它的事務(wù)已應(yīng)用于持久FsImage。這個過程稱為checkpoint。checkpoint的目的是通過獲取文件系統(tǒng)元數(shù)據(jù)快照并將其保存到FsImage,確保HDFS具有文件系統(tǒng)元數(shù)據(jù)的一致視圖。盡管讀取FsImage是有效的,但是直接對FsImage進(jìn)行增量編輯是無效的。我們不為每次編輯修改FsImage,而是將編輯保存在Editlog中。在檢查點期間,Editlog中的更改應(yīng)用于FsImage。檢查點可以在給定的時間間隔(以秒為單位表示的dfs.namenode.checkpoint.period),或者在積累了給定數(shù)量的文件系統(tǒng)事務(wù)之后(dfs.namenode.checkpoint.txns)觸發(fā)。如果設(shè)置了這兩個屬性,則第一個達(dá)到的閾值將觸發(fā)檢查點。

DataNode將HDFS數(shù)據(jù)存儲在本地文件系統(tǒng)中的文件中。DataNode不知道HDFS文件。它將每個HDFS數(shù)據(jù)塊存儲在本地文件系統(tǒng)中的一個單獨文件中。DataNode不會在同一個目錄中創(chuàng)建所有文件。相反,它使用啟發(fā)式的策略來確定每個目錄的最優(yōu)文件數(shù)量,并適當(dāng)?shù)貏?chuàng)建子目錄。在同一個目錄中創(chuàng)建所有本地文件不是最優(yōu)的,因為本地文件系統(tǒng)可能無法有效地支持單個目錄中的大量文件。當(dāng)DataNode啟動時,它掃描本地文件系統(tǒng),生成與每個本地文件對應(yīng)的所有HDFS數(shù)據(jù)塊的列表,并將該報告發(fā)送給NameNode。該報告稱為Blockreport

The Communication Protocols

所有HDFS通信協(xié)議都位于TCP/IP協(xié)議之上??蛻舳私㈡溄拥絅ameNode上的可配置TCP端口,它使用ClientProtocol與NameNode通信。DataNode使用DataNode Protocol與NameNode通信。遠(yuǎn)程過程調(diào)用(RPC)抽象封裝了Client ProtocolDataNode Protocol。按照設(shè)計,NameNode從不啟動任何rpc。相反,它只響應(yīng)由datanode或客戶端發(fā)出的RPC請求。

Robustness 健壯性

HDFS的主要目標(biāo)是即使在出現(xiàn)故障時也能可靠地存儲數(shù)據(jù)。常見的三種故障類型是NameNode故障、DataNode故障network partitions

Data Disk Failure, Heartbeats and Re-Replication

每個DataNode定期向NameNode發(fā)送一條心跳消息。網(wǎng)絡(luò)分區(qū)(network partition)可能導(dǎo)致部分DataNodes與NameNode失去連接。NameNode通過Heartbeat message的缺席來檢測這種情況。NameNode將沒有心跳的DataNode標(biāo)記為死節(jié)點,并且不向它們轉(zhuǎn)發(fā)任何新的IO請求。已注冊到死DataNode的任何數(shù)據(jù)都不再對HDFS可用。DataNode死亡可能導(dǎo)致某些數(shù)據(jù)塊的復(fù)制因子低于指定值。NameNode不斷跟蹤需要復(fù)制哪些塊,并在必要時啟動復(fù)制。重新復(fù)制的必要性可能由許多原因引起:DataNode可能不可用,副本可能損壞,DataNode上的硬盤可能失敗,或者文件的復(fù)制因子可能增加。

將DataNodes標(biāo)記為死亡的時限謹(jǐn)慎的設(shè)置的比較長(默認(rèn)超過10分鐘),以避免由于DataNode狀態(tài)抖動而引起的復(fù)制風(fēng)暴。用戶可以設(shè)置更短的間隔,將datanode標(biāo)記為陳舊的節(jié)點,并避免在配置為性能敏感的工作負(fù)載時在陳舊數(shù)據(jù)節(jié)點上讀或?qū)?/strong>(待深入理解 Users can set shorter interval to mark DataNodes as stale and avoid stale nodes on reading and/or writing by configuration for performance sensitive workloads.)

Cluster Rebalancing

HDFS體系結(jié)構(gòu)與數(shù)據(jù)rebalancing方案兼容。如果DataNode上的空閑空間低于某個閾值,則方案可能會自動將數(shù)據(jù)從一個DataNode移動到另一個DataNode。In the event of a sudden high demand for a particular file, a scheme might dynamically create additional replicas and rebalance other data in the cluster. These types of data rebalancing schemes are not yet implemented.

Data Integrity

從DataNode獲取的數(shù)據(jù)塊可能損壞。這種損壞可能由于存儲設(shè)備、網(wǎng)絡(luò)故障或有bug的軟件中的錯誤而發(fā)生。HDFS客戶端軟件實現(xiàn)對HDFS文件內(nèi)容的校驗和檢查。當(dāng)客戶端創(chuàng)建HDFS文件時,它計算該文件的每個塊的校驗和,并將這些校驗和存儲在相同HDFS名稱空間中的一個單獨的隱藏文件中。當(dāng)客戶機檢索文件內(nèi)容時,它驗證從每個DataNode接收到的數(shù)據(jù)是否與存儲在關(guān)聯(lián)校驗和文件中的校驗和匹配。如果沒有,則客戶端可以選擇從具有該塊副本的另一個DataNode檢索該塊。

文件快和校驗文件
[root@datanode04 ~]# ll -h /data/hadoop/tmp/dfs/data/current/BP-855898234-106.66.38.101-1483934264653/current/finalized//subdir116/subdir82
total 835M
-rw-rw-r-- 1 hadoop hadoop  50M May  3 05:01 blk_1114919483
-rw-rw-r-- 1 hadoop hadoop 393K May  3 05:01 blk_1114919483_41260856.meta
-rw-rw-r-- 1 hadoop hadoop  49M May  3 05:01 blk_1114919485
-rw-rw-r-- 1 hadoop hadoop 392K May  3 05:01 blk_1114919485_41260858.meta
... ...
Metadata Disk Failure

FsImage和EditLog是HDFS的中心數(shù)據(jù)結(jié)構(gòu)。這些文件的損壞可能導(dǎo)致HDFS實例不可用。因此,可以將NameNode配置為支持維護(hù)FsImage和EditLog的多個副本。對FsImage或EditLog的任何更新都會導(dǎo)致同步更新每個FsImage和EditLog。FsImage和EditLog的多個副本的同步更新可能會降低NameNode每秒可以支持的namespace事務(wù)的速度。但是,這種損失是可以接受的,因為即使HDFS應(yīng)用程序本質(zhì)上是數(shù)據(jù)密集型的,但它們不是元數(shù)據(jù)密集型的。當(dāng)NameNode重新啟動時,它選擇最新一致的FsImage和EditLog來使用。

提高故障恢復(fù)能力的另一個選項是使用多個namenode, shared storage on NFS 或使用distributed edit log (稱為Journal)啟用高可用性。后者是推薦的方法。

Data Organization

Data Blocks

HDFS被設(shè)計成支持非常大的文件。與HDFS兼容的應(yīng)用程序也是那些處理大數(shù)據(jù)集的應(yīng)用程序。這些應(yīng)用程序只寫他們的數(shù)據(jù)一次,但他們讀取它一次或多次,并要求這些讀取滿足流速度。HDFS支持文件上的write-once-read-many語義。HDFS使用的典型塊大小為128mb,因此,HDFS文件被分割成128mb的塊,如果可能,每個塊將駐留在不同的DataNode上。

Replication Pipelining

當(dāng)客戶機將數(shù)據(jù)寫入復(fù)制因子為3的HDFS文件時,NameNode使用“復(fù)制目標(biāo)選擇算法”獲取目標(biāo)DataNodes列表。此列表包含將承載該數(shù)據(jù)塊塊副本的datanode。然后客戶端寫入第一個DataNode。第一個DataNode開始接收被切分成塊的數(shù)據(jù),將每個塊寫入它的本地存儲庫(本地文件系統(tǒng)),并將該部分?jǐn)?shù)據(jù)傳輸?shù)搅斜碇械牡诙€DataNode。然后,第二個DataNode開始接收數(shù)據(jù)塊的每個部分,將該部分寫到它的存儲庫中,然后將該部分刷新到第三個DataNode。最后,第三個DataNode將數(shù)據(jù)寫入其本地存儲庫。因此,DataNode可以從管道中的前一個接收數(shù)據(jù),同時將數(shù)據(jù)轉(zhuǎn)發(fā)到管道中的下一個。因此,數(shù)據(jù)以pipelilne的形式從一個DataNode傳輸?shù)较乱粋€DataNode。

Accessibility

可以通過許多不同的方式從應(yīng)用程序訪問HDFS。從本質(zhì)上講,HDFS為應(yīng)用程序提供了一個文件系統(tǒng)Java API。還提供了用于此Java API和REST API的C語言包裝器。此外,HTTP瀏覽器還可以用來瀏覽HDFS實例的文件。通過使用NFS網(wǎng)關(guān),HDFS可以作為客戶機本地文件系統(tǒng)的一部分掛載。

Space Reclamation

File Deletes and Undeletes

,由FS Shell刪除的文件不會立即從HDFS中刪除。相反,HDFS將其移動到一個垃圾目錄(每個用戶在/user/<username>/. trash下都有自己的垃圾目錄)。只要文件保存在垃圾中,就可以快速恢復(fù)。最近刪除的文件被移動到當(dāng)前垃圾目錄(/user/<username>/. trash / current),在一個可配置的間隔內(nèi),HDFS為當(dāng)前垃圾目錄中的文件創(chuàng)建檢查點(在/user/<username>/. trash /<date>下),并在舊檢查點過期時刪除它們。有關(guān)垃圾的檢查點,請參閱FS shell的expunge命令。在垃圾中的生命周期結(jié)束后,NameNode將從HDFS名稱空間中刪除該文件。刪除文件會釋放與文件關(guān)聯(lián)的塊。注意,從用戶刪除文件的時間到HDFS中相應(yīng)的空閑空間增加的時間之間可能存在明顯的時間延遲。

如果開啟回收站特性的話,可以通過如下參數(shù)強制刪除

hadoop fs -rm -r -skipTrash delete/test2
Decrease Replication Factor

當(dāng)文件的復(fù)制因子降低時,NameNode選擇可以刪除的多余副本。下一個心跳將此信息傳輸?shù)紻ataNode。然后,DataNode刪除相應(yīng)的塊,集群中出現(xiàn)相應(yīng)的空閑空間。同樣,在完成setReplication API調(diào)用和集群中出現(xiàn)空閑空間之間可能存在時間延遲。

新聞名稱:hadoop設(shè)計思路和目標(biāo)
鏈接地址:http://aaarwkj.com/article2/pdisoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、做網(wǎng)站服務(wù)器托管、網(wǎng)站制作App設(shè)計、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

亚洲黄色录像特级生活片| 亚洲国产第一av导航| 在线 | 一区二区三区四区| 午夜影院免费在线观看五分钟| 欧美日韩精品在线二区| 国产在线拍揄自揄视频不卡99| 福利成人午夜国产一区| 国产成人大片一区二区三区| 亚洲黄色av网址在线观看| 国产精品久久久久久老熟女| 国产三级国产精品国产| 国产黄色av网站在线| 久久日韩制服丝袜人妻| 性感91美女白丝在线精品 | 91亚色在线免费观看| 欧洲亚洲精品免费二区| 日本欧美一区二区三区高清| 黄色18禁网站在线看| 五月激情丁香婷婷色网| 国产无遮挡又黄又爽网站 | 亚洲午夜福利天堂社区| 欧美国内日本一区二区| 四虎国产最新在线免费| 亚洲精品伦理视频在线| 欧美午夜视频一区二区福利| 91一区二区亚洲嫩草| 中文字幕人妻丝袜二区| 另类国产人妖免费视频网站大全 | 91熟女激情五月综合| 日本免费一区二区三区四区视频| 亚洲青青草原一区二区| 熟女人妻av五十路六十路| 国产日韩欧美一区综合| 日韩最新视频一区二区三| 日韩视频播放一区二区| 日韩中文字幕在线有码| 成人深夜福利视频观看| 国产一区二区91精品| 亚洲一区二区四区乱码在线| 日韩性视频激情在线一区| 精品欧美一区二区在线|