亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

HDFS分布式存儲系統(tǒng)入門與架構(gòu)原理實戰(zhàn)解析

HDFS分布式存儲系統(tǒng)入門與架構(gòu)原理實戰(zhàn)解析 做大數(shù)據(jù)方向繞不開的第一個存儲組件基本就是 HDFS。我剛開始接觸分布式存儲的時候也踩過不少坑以為 Hadoop 就是跑 MapReduce以為 HDFS 只是“把文件切開放在多臺機(jī)器上”后來真正上手搭集群、調(diào)參數(shù)、排查丟數(shù)據(jù)問題才發(fā)現(xiàn)這套文件系統(tǒng)的設(shè)計遠(yuǎn)比想象中復(fù)雜。這次借“Hadoop HDFS 分布式存儲系統(tǒng)入門、配置、使用及架構(gòu)原理分析”這個主題把 HDFS 從理論到實戰(zhàn)完整梳理一遍希望對剛?cè)腴T分布式存儲、或者準(zhǔn)備深入理解 Hadoop 生態(tài)的朋友有幫助。這篇內(nèi)容主要拆成四塊先說清楚 HDFS 到底解決了什么現(xiàn)實問題然后從架構(gòu)層面把 NameNode、DataNode、副本機(jī)制這些核心組件講明白再手把手帶你完成一套可運(yùn)行的集群環(huán)境搭建與基礎(chǔ)配置最后落到真實使用場景里的命令操作、讀寫流程、容錯機(jī)制以及我在實際項目中踩過的坑和調(diào)優(yōu)思路。無論你是數(shù)據(jù)工程師、后端開發(fā)者還是準(zhǔn)備面試大數(shù)據(jù)崗位的求職者都能從里面找到可以直接用的東西。1. 為什么需要 HDFS單機(jī)存儲的物理極限與分布式文件系統(tǒng)的誕生邏輯1.1 單機(jī)硬盤在數(shù)據(jù)量面前有多脆弱很多初學(xué)者會有一個疑問我直接用普通文件系統(tǒng)不就行了為什么非要搞一套分布式文件系統(tǒng)這個問題的答案只有親手遇到“單塊磁盤裝不下、單機(jī)讀寫速度跟不上”的時候才最有體會。假設(shè)你管理的是每天產(chǎn)生幾百 GB 日志的在線業(yè)務(wù)系統(tǒng)一個月就是 10 TB 級別一年百 TB。單臺服務(wù)器的磁盤容量撐死幾十 TB即便用 RAID 陣列把多塊硬盤拼一起也繞不開兩個硬瓶頸容量上限和并行吞吐。RAID 確實能解決一部分可靠性問題比如 RAID1 鏡像、RAID5 校驗但它仍然是單機(jī)維度的方案——整機(jī)故障、控制器故障、擴(kuò)容停機(jī)任何一個都夠你喝一壺。HDFS 的思路完全不同它不追求“把一塊盤做到巨大”而是用一堆普通服務(wù)器組成一個邏輯上的超大文件系統(tǒng)。橫向擴(kuò)展加節(jié)點(diǎn)就能加容量和吞吐單臺服務(wù)器壞了也不影響整體數(shù)據(jù)可用性。這種“用便宜機(jī)器堆出可靠存儲”的思路和傳統(tǒng)存儲陣列相比性價比和擴(kuò)展性優(yōu)勢非常明顯。1.2 HDFS 的適用邊界和它的“取舍”很多剛接觸 HDFS 的人容易把它當(dāng)成一個“萬能文件系統(tǒng)”這是第一個認(rèn)知誤區(qū)。HDFS 的幾個設(shè)計目標(biāo)決定了它只適合特定場景大文件優(yōu)先HDFS 默認(rèn)把文件切成 128 MB 的數(shù)據(jù)塊目的是減少尋址開銷、提高順序讀寫的吞吐。適合日志、監(jiān)控數(shù)據(jù)、離線數(shù)倉的原始數(shù)據(jù)、訓(xùn)練樣本集這種動輒數(shù) GB 甚至數(shù) TB 的大文件。反過來幾 KB 的小文件如果大量存在會給 NameNode 內(nèi)存帶來極大壓力。寫一次讀多次HDFS 的文件不支持修改只支持追加寫入和刪除適合“數(shù)據(jù)落地后基本不變”的場景。如果你需要頻繁修改既有文件的中間內(nèi)容HDFS 是要說“不”的。順序讀寫性能優(yōu)秀隨機(jī)讀寫性能弱HDFS 的定位是批量數(shù)據(jù)處理不是數(shù)據(jù)庫。OLTP 型的高并發(fā)隨機(jī)讀寫千萬別往 HDFS 上放那是自找麻煩。高延遲而非低延遲因為涉及網(wǎng)絡(luò)傳輸、副本同步、元數(shù)據(jù)查詢HDFS 的文件訪問延遲通常以秒級甚至更高級別計適合離線和準(zhǔn)實時場景不適合在線業(yè)務(wù)直接掛載讀寫。想明白這些邊界后面選型才不會走偏。我見過不少團(tuán)隊把 HDFS 當(dāng)成普通 NAS 用結(jié)果小文件一大堆、NameNode 頻頻告警、查詢性能慘不忍睹后來洗數(shù)據(jù)洗到崩潰——那些坑都是可以在設(shè)計階段避開的。2. HDFS 架構(gòu)核心拆解兩個進(jìn)程角色、數(shù)據(jù)塊與元數(shù)據(jù)2.1 NameNode 和 DataNode主節(jié)點(diǎn)管“目錄”從節(jié)點(diǎn)管“貨”HDFS 是典型的主從架構(gòu)整個系統(tǒng)只有一個主節(jié)點(diǎn)角色稱為 NameNode配合若干從節(jié)點(diǎn)角色 DataNode 協(xié)同工作。把 HDFS 類比成一個大型倉庫NameNode 就是倉庫的管理員它不直接搬貨只記三樣賬——文件系統(tǒng)的目錄樹、每個文件由哪些數(shù)據(jù)塊組成、每個數(shù)據(jù)塊實際存放在哪些 DataNode 上。而DataNode 就是負(fù)責(zé)搬貨的工人它們真正在本地磁盤上存放數(shù)據(jù)塊文件并定期向管理員匯報“我這邊貨都正?!薄拔疫@邊新加了貨”。NameNode 在內(nèi)存中維護(hù)整個文件系統(tǒng)的元數(shù)據(jù)包括文件與目錄的命名空間文件到數(shù)據(jù)塊的映射關(guān)系數(shù)據(jù)塊到 DataNode 的映射關(guān)系這個映射在 DataNode 啟動后會通過塊上報動態(tài)構(gòu)建這意味著NameNode 的內(nèi)存大小直接決定了整個集群能容納的文件數(shù)量。通常每個文件/目錄對象大約需要 150~200 字節(jié)的元數(shù)據(jù)開銷所以一臺 NameNode 內(nèi)存 64 GB 時能支撐的文件數(shù)大約在三千萬到四千萬這個量級。HDFS 沒有把元數(shù)據(jù)也拆散存在多臺機(jī)器上就是為了保證元數(shù)據(jù)的一致性和操作效率。代價是 NameNode 成為集群的單點(diǎn)這也是后來出現(xiàn) HA高可用方案要解決的核心問題。DataNode 的角色相對簡單收到寫數(shù)據(jù)請求后在本地磁盤創(chuàng)建數(shù)據(jù)塊文件定期默認(rèn) 3 秒向 NameNode 發(fā)送心跳默認(rèn)每 10 分鐘上報一次本節(jié)點(diǎn)上的所有塊信息收到刪除或復(fù)制指令后執(zhí)行相應(yīng)操作。DataNode 本身不保存任何 HDFS 文件目錄級信息宕機(jī)恢復(fù)后只需要重新向 NameNode 注冊然后做塊上報即可。2.2 數(shù)據(jù)塊、副本因子和機(jī)架感知可靠性從設(shè)計里長出HDFS 數(shù)據(jù)塊Block是文件存儲的最小單位默認(rèn)大小 128 MB。文件上傳時被切成若干個 block每個 block 按照集群配置的副本因子默認(rèn) 3在多個 DataNode 上各存一份。3 副本設(shè)計并不是拍腦袋定的它能在容忍兩臺/一個機(jī)架故障和存儲成本之間達(dá)到平衡。副本要存到哪三臺機(jī)器上涉及 HDFS 非常出名的“機(jī)架感知”策略。假設(shè)你在普通機(jī)架上默認(rèn)副本放置邏輯大致是第一個副本放在客戶端所在節(jié)點(diǎn)如果客戶端不在集群內(nèi)則隨機(jī)選一個節(jié)點(diǎn)。第二個副本放在與第一個副本不同機(jī)架的某個節(jié)點(diǎn)。第三個副本放在與第二個副本相同機(jī)架的另一個節(jié)點(diǎn)。這樣的布局既保證了容錯機(jī)架間至少有一份副本又兼顧了讀取性能和寫入帶寬。生產(chǎn)環(huán)境里正確配置機(jī)架感知腳本非常重要否則 HDFS 會把“同一機(jī)架”誤判成“同一節(jié)點(diǎn)”副本分布不合理數(shù)據(jù)可靠性大打折扣。副本不是永遠(yuǎn)不變的HDFS 的 BlockPool 后臺線程會周期性地檢查每個數(shù)據(jù)塊的副本數(shù)量發(fā)現(xiàn)少于配置值就啟動復(fù)制補(bǔ)副本發(fā)現(xiàn)多于配置值就刪除多余副本。副本因子也可以在文件或目錄級別單獨(dú)設(shè)置比如臨時數(shù)據(jù)可以只保留 1 副本核心數(shù)據(jù)可以設(shè)置 5 副本甚至更多。3. 從零搭建一套可運(yùn)行的 HDFS 環(huán)境版本選擇、配置項詳解與啟動驗證3.1 選型先看版本Apache Hadoop 與生態(tài)兼容性動手搭建之前先確定用哪個發(fā)行版。Hadoop 開源社區(qū)目前主要能看到兩條路線Apache Hadoop 原生版直接從官網(wǎng)拿裸發(fā)行包自己搭完全掌控適合學(xué)習(xí)、二次開發(fā)或?qū)Π姹炯儍舳扔幸蟮膱F(tuán)隊。商業(yè)發(fā)行版通常內(nèi)置了更友好的管理界面、安全補(bǔ)丁和企業(yè)支持適合生產(chǎn)環(huán)境圖省心但學(xué)習(xí)場景不一定需要。大多數(shù)學(xué)習(xí)場景我建議直接用 Apache Hadoop 的穩(wěn)定版。版本上重點(diǎn)注意兩個點(diǎn)一個是和 JDK 版本的兼容性Hadoop 3.x 一般要求 JDK 8 或 11另一個是確保你的 Hadoop 版本和后續(xù)生態(tài)組件Hive、Spark、Flink 等兼容否則后面集成階段會出現(xiàn)各種莫名其妙的依賴沖突。部署形式也可以分為三種真實多節(jié)點(diǎn)集群最好有三臺以上機(jī)器、偽分布式單機(jī)一臺機(jī)器模擬所有角色、容器化部署用 Docker 快速起多節(jié)點(diǎn)。如果是入門學(xué)習(xí)偽分布式配置最簡單適合快速跑通流程想真正理解副本復(fù)制、數(shù)據(jù)均衡、節(jié)點(diǎn)故障轉(zhuǎn)移這些機(jī)制還是建議至少起三節(jié)點(diǎn)集群。3.2 核心配置文件core-site.xml、hdfs-site.xml 與關(guān)鍵參數(shù)Hadoop 的配置集中放在etc/hadoop/目錄下最常改動的是core-site.xml和hdfs-site.xml。下面列出一套三節(jié)點(diǎn)集群的最小可用配置思路。core-site.xml里最重要的參數(shù)是默認(rèn)文件系統(tǒng)地址property namefs.defaultFS/name valuehdfs://namenode-host:9820/value /property9820是 NameNode RPC 通信端口在 Hadoop 3.x 里默認(rèn)就是這個老版本常用8020或9000。hdfs-site.xml里需要配置的參數(shù)更多逐個說清楚property namedfs.namenode.name.dir/name value/data/hdfs/namenode/value /property property namedfs.datanode.data.dir/name value/data/hdfs/datanode-1,/data/hdfs/datanode-2/value /property property namedfs.replication/name value3/value /property property namedfs.blocksize/name value134217728/value /propertydfs.namenode.name.dirNameNode 元數(shù)據(jù)落盤目錄。生產(chǎn)環(huán)境中強(qiáng)烈建議配置在同一服務(wù)器的多塊磁盤上或者至少兩塊不同物理磁盤降低單盤故障導(dǎo)致元數(shù)據(jù)丟失的風(fēng)險。dfs.datanode.data.dirDataNode 數(shù)據(jù)塊存儲目錄可以配多個目錄逗號分隔HDFS 會自動做目錄間數(shù)據(jù)均衡。dfs.replication默認(rèn)副本數(shù)三節(jié)點(diǎn)集群配置為 3 沒有問題。dfs.blocksize單位是字節(jié)134217728 即 128 MB。此外還有幾個在生產(chǎn)環(huán)境里非常重要的參數(shù)dfs.namenode.handler.countNameNode 處理 RPC 請求的線程數(shù)默認(rèn) 10在高并發(fā)訪問下明顯偏低生產(chǎn)環(huán)境一般調(diào)到 50~100 甚至更高。粗略估算公式是20 * log2(集群節(jié)點(diǎn)數(shù))但這個值不絕對。dfs.datanode.handler.countDataNode 處理數(shù)據(jù)傳輸?shù)木€程數(shù)默認(rèn) 10負(fù)載較高時可以適當(dāng)上調(diào)。dfs.heartbeat.interval心跳間隔默認(rèn) 3 秒。不要隨意把心跳間隔調(diào)得過大因為 Namenode 對 DataNode 是否宕機(jī)的判定依賴心跳超時超時時間默認(rèn)是10 * 心跳間隔。調(diào)太大會拖慢故障感知速度。配置好之后啟動前一定要做的最關(guān)鍵一步是格式化 NameNode 元數(shù)據(jù)。hdfs namenode -format這個命令會在dfs.namenode.name.dir指定的目錄下生成初始的 fsimage 文件和 edit log。格式化命令只能執(zhí)行一次重復(fù)格式化會導(dǎo)致集群 ID 變化DataNode 啟動后會因為 clusterID 不匹配而無法注冊到 NameNode屆時如果數(shù)據(jù)重要恢復(fù)成本極高。所以我的習(xí)慣是格式化之前先確認(rèn)目錄里沒有以前殘留的重要數(shù)據(jù)格式化完立刻看一眼日志輸出里的clusterID。3.3 啟動集群與基礎(chǔ)驗證方法三節(jié)點(diǎn)分別啟動角色進(jìn)程的方式有很多最直接的是手工啟動# 在 NameNode 所在節(jié)點(diǎn)執(zhí)行 hdfs --daemon start namenode # 在每個 DataNode 所在節(jié)點(diǎn)執(zhí)行 hdfs --daemon start datanode啟動后用jps命令查看進(jìn)程是否都在jps # NameNode 節(jié)點(diǎn)上應(yīng)該看到 NameNode # DataNode 節(jié)點(diǎn)上應(yīng)該看到 DataNode然后訪問 NameNode 的 Web 界面默認(rèn)端口是9870Hadoop 3.x打開后能看到集群整體狀態(tài)、已用空間、DataNode 節(jié)點(diǎn)列表、數(shù)據(jù)塊數(shù)量等信息。如果你的瀏覽器打不開先檢查防火墻和dfs.namenode.http-address的配置。命令行驗證集群狀態(tài)hdfs dfsadmin -report這條命令會輸出每個 DataNode 的存儲容量、已使用空間、剩余空間、數(shù)據(jù)塊數(shù)量??吹剿?DataNode 都處于In Service狀態(tài)說明集群健康。4. HDFS 實際使用文件操作命令、Java API 開發(fā)與權(quán)限設(shè)計4.1 高頻命令行操作不只是 put 和 getHDFS 的所有文件操作都可以通過hdfs dfs命令完成。下面整理的是我日常工作中使用頻率最高的幾個命令命令作用示例hdfs dfs -put local hdfs上傳本地文件到 HDFShdfs dfs -put access.log /logs/hdfs dfs -get hdfs local下載 HDFS 文件到本地hdfs dfs -get /logs/access.log ./hdfs dfs -cat hdfs查看文件內(nèi)容hdfs dfs -cat /logs/access.loghdfs dfs -tail hdfs查看文件末尾內(nèi)容適合監(jiān)測增長中的日志hdfs dfs -tail -f /logs/access.loghdfs dfs -ls -R hdfs遞歸列出目錄內(nèi)容hdfs dfs -ls -R /logshdfs dfs -mkdir -p hdfs遞歸創(chuàng)建目錄hdfs dfs -mkdir -p /etl/day20250101hdfs dfs -rm -R hdfs刪除文件或目錄hdfs dfs -rm -R /tmp/olddatahdfs dfs -chmod -R 755 hdfs遞歸修改權(quán)限hdfs dfs -chmod -R 755 /sharedhdfs dfs -du -h hdfs查看目錄/文件大小hdfs dfs -du -h /logs幾個命令行使用上的細(xì)節(jié)值得特別注意Hadoop 3.x 里hdfs dfs -tail -f可以實時跟蹤文件追加內(nèi)容排查正在寫入的日志文件很好用但前提是寫入方是通過 HDFS 的 append 操作追加數(shù)據(jù)不是文件落地后覆蓋。-put上傳大文件時如果想要看到實時進(jìn)度可以加-progress。上傳過程中如果中斷HDFS 會保留已經(jīng)寫好的部分塊重新上傳時會從斷點(diǎn)恢復(fù)Hadoop 2.7 支持但前提是使用相同的文件路徑和 dfs 客戶端。刪除文件默認(rèn)進(jìn)入回收站而不是立即物理刪除?;厥照鹃_關(guān)是fs.trash.interval默認(rèn)是 0即不啟用回收站。數(shù)據(jù)安全敏感的團(tuán)隊一定要把回收站打開否則誤刪一個生產(chǎn)目錄直接全量丟失搶救都無從談起。上百萬個小文件做完-put后檢查一下 NameNode 的內(nèi)存使用你會對“小文件撐爆元數(shù)據(jù)”的說法有非常直觀的體會。4.2 Java API 開發(fā)寫文件、讀文件與目錄操作雖然大部分離線任務(wù)都會用 Hive 或 Spark 替代手寫 Java API但理解和掌握底層 API 依然很重要。HDFS 的 Java API 核心類是FileSystem獲取文件系統(tǒng)實例的推薦方式是Configuration conf new Configuration(); conf.set(fs.defaultFS, hdfs://namenode-host:9820); FileSystem fs FileSystem.get(conf);寫文件的經(jīng)典流程Path path new Path(/data/demo.txt); FSDataOutputStream out fs.create(path); out.write(hello hdfs.getBytes(UTF-8)); out.close();注意fs.create()返回的FSDataOutputStream是帶緩沖的寫完數(shù)據(jù)后要么調(diào)用close()要么調(diào)用hflush()否則數(shù)據(jù)可能還留在客戶端緩沖區(qū)服務(wù)端感知不到。與本地文件寫入不同HDFS 的close()會觸發(fā)一次完整的寫入鏈路結(jié)束流程因此不要在一個循環(huán)里反復(fù)打開關(guān)閉流性能會很差。讀文件的經(jīng)典流程Path path new Path(/data/demo.txt); FSDataInputStream in fs.open(path); BufferedReader reader new BufferedReader(new InputStreamReader(in)); String line; while ((line reader.readLine()) ! null) { System.out.println(line); } reader.close();FSDataInputStream最重要的特性是支持seek()隨機(jī)定位。很多分布式計算框架正是利用這一點(diǎn)讓多個計算任務(wù)并行讀取同一個大文件的不同區(qū)間互不干擾。這也是 HDFS 能夠支持 MapReduce、Spark 這類框架進(jìn)行數(shù)據(jù)本地性讀取的基礎(chǔ)能力。目錄操作和刪除操作fs.mkdirs(new Path(/data/2025/01)); fs.delete(new Path(/data/tmp), true);第二個參數(shù)true表示遞歸刪除。如果你的代碼里刪錯了目錄且沒有啟用回收站那數(shù)據(jù)就真的沒了。4.3 權(quán)限模型超級用戶、組與權(quán)限位的協(xié)作方式HDFS 的權(quán)限模型與 POSIX 類似但有兩點(diǎn)不同需要特別留意。第一HDFS 默認(rèn)不校驗客戶端主機(jī)的真實身份只要你偽造成超級用戶hdfs就能繞過大部分權(quán)限檢查。所以生產(chǎn)環(huán)境必須開啟dfs.permissions.enabledtrue并且最好結(jié)合 Kerberos 做身份認(rèn)證否則權(quán)限體系形同虛設(shè)。第二HDFS 的 sticky bit 作用在目錄上時只有目錄 owner 才能刪除目錄中的文件多用戶共用的臨時目錄默認(rèn)就設(shè)置了這個位。權(quán)限排查是日常技術(shù)支持中非常常見的場景用戶報“寫入失敗”先看目錄權(quán)限再查 owner 和 group最后確認(rèn)是否啟用了 ACL 擴(kuò)展。HDFS 支持在傳統(tǒng) POSIX 權(quán)限基礎(chǔ)上增加 ACL命令是hdfs dfs -setfacl在處理多租戶共享目錄時非常有用。5. 讀寫鏈路全追蹤從客戶端請求到數(shù)據(jù)落盤的完整過程5.1 寫文件流程流水線復(fù)制與確認(rèn)機(jī)制HDFS 寫入流程值得反復(fù)琢磨因為它體現(xiàn)了很多分布式系統(tǒng)設(shè)計上的巧思。整體順序大致如下客戶端調(diào)用create()向 NameNode 發(fā)出創(chuàng)建文件請求。NameNode 檢查文件是否已存在、父目錄是否存在、客戶端是否有權(quán)限。校驗通過后在內(nèi)存中創(chuàng)建文件元數(shù)據(jù)并返回一個輸出流給客戶端??蛻舳碎_始寫入數(shù)據(jù)時把數(shù)據(jù)切分成一個個數(shù)據(jù)包默認(rèn) 64 KB放入本地緩沖區(qū)。當(dāng)前緩沖區(qū)累計到一定大小后客戶端向 NameNode 發(fā)起申請請求返回“為下一個 block 分配一組 DataNode”。NameNode 按照副本放置策略返回一組 DataNode 列表例如[DN1, DN2, DN3]??蛻舳伺c DN1 建立連接DN1 再與 DN2 建立連接DN2 再與 DN3 建立連接形成一個復(fù)制管道??蛻舳税错樞虬褦?shù)據(jù)包推給 DN1DN1 邊落盤邊把數(shù)據(jù)包轉(zhuǎn)發(fā)給 DN2DN2 再轉(zhuǎn)發(fā)給 DN3。每個數(shù)據(jù)包寫入成功后會沿著管道反向回傳確認(rèn)包??蛻舳耸盏剿懈北镜拇_認(rèn)后才認(rèn)為這個數(shù)據(jù)包寫成功并繼續(xù)發(fā)送下一個數(shù)據(jù)包。一個 block 寫完客戶端再向 NameNode 申請下一組 DataNode重復(fù)上述過程。所有 block 寫完后客戶端調(diào)用close()NameNode 將文件標(biāo)記為“已關(guān)閉”狀態(tài)寫入完成。整個鏈路的精髓在于“流水線復(fù)制”數(shù)據(jù)不是由客戶端分別復(fù)制三分再逐臺發(fā)送而是邊寫邊轉(zhuǎn)發(fā)大大減少了網(wǎng)絡(luò)傳輸量和單點(diǎn)壓力。也正因為如此HDFS 適合大塊順序?qū)懸驗樾K隨機(jī)寫的網(wǎng)絡(luò)交互成本實在太高。5.2 讀文件流程元數(shù)據(jù)定位與就近讀取讀文件流程比寫文件簡單但同樣很講究客戶端調(diào)用open()向 NameNode 請求文件信息。NameNode 返回文件的每個 block 對應(yīng)的 DataNode 列表比如“block A 在 DN1/DN2/DN3block B 在 DN3/DN4/DN5”??蛻舳藢?DataNode 列表做排序優(yōu)先選擇與客戶端同機(jī)架的節(jié)點(diǎn)其次選擇同機(jī)房的節(jié)點(diǎn)。這個排序邏輯由網(wǎng)絡(luò)拓?fù)涓兄獩Q定??蛻舳伺c最優(yōu)先的 DataNode 建立連接按塊讀取數(shù)據(jù)。讀取過程中如果某個 DataNode 讀取失敗客戶端自動切換至下一個副本并向 NameNode 報告該 DataNode 異常。讀取性能的關(guān)鍵在于“數(shù)據(jù)本地性”。如果你的計算框架在 DN1 機(jī)器上跑 Container而 Client 去 DN3 上讀 block A 的副本雖然功能上沒問題但網(wǎng)絡(luò)傳輸開銷成倍增加。日常做數(shù)據(jù)傾斜排查、跑批任務(wù)性能分析時一定要關(guān)注輸入數(shù)據(jù)的本地命中率。5.3 追加寫與截斷HDFS 的寫操作邊界HDFS 的append操作只允許在文件末尾追加數(shù)據(jù)不能修改已存在的中間內(nèi)容。如果業(yè)務(wù)確實需要修改既有數(shù)據(jù)常規(guī)做法是讀出來變換后再寫一個新文件或者用 Hive 的分區(qū)覆蓋策略。另外一個非常隱蔽又重要的操作是truncate——它能把文件截斷到指定長度但有一個前提條件截斷后的長度必須正好落在某個 block 的邊界上否則 HDFS 會拒絕執(zhí)行。換句話說它做的是“整塊級截斷”不是字節(jié)級操作這點(diǎn)和本地文件系統(tǒng)的語義有明顯差異。6. 高可用與容錯副本策略、故障轉(zhuǎn)移和一致性保證6.1 副本放置策略的高級配置與數(shù)據(jù)均衡問題前文提過默認(rèn)的三副本放置策略但在生產(chǎn)環(huán)境中不同業(yè)務(wù)場景對副本策略的需求差異很大冷數(shù)據(jù)存儲如歷史歸檔日志可以用 1 副本甚至結(jié)合糾刪碼EC策略來節(jié)省存儲成本。核心業(yè)務(wù)數(shù)據(jù)如訂單明細(xì)、財務(wù)數(shù)據(jù)可以設(shè)置 3 副本或 5 副本并且把機(jī)架感知能力用足保證跨冗余電源域也有副本。臨時中間結(jié)果副本設(shè) 1 即可磁盤空間能省則省。副本因子調(diào)整的命令hdfs dfs -setrep -R 2 /data/history但要注意setrep只是修改了文件的配置副本數(shù)實際補(bǔ)齊副本的過程由后臺線程異步完成不會立刻生效。調(diào)整完可以觀察hdfs fsck /data/history -files -blocks的輸出確認(rèn)副本數(shù)量逐步穩(wěn)定到目標(biāo)值。數(shù)據(jù)均衡是另一個必須主動關(guān)注的點(diǎn)。擴(kuò)容新節(jié)點(diǎn)后新節(jié)點(diǎn)磁盤空間可能是 0而老節(jié)點(diǎn)已經(jīng)用了 80%。執(zhí)行均衡命令hdfs balancer -threshold 5該命令會把數(shù)據(jù)塊從高負(fù)載節(jié)點(diǎn)遷移到低負(fù)載節(jié)點(diǎn)直到集群中每個節(jié)點(diǎn)的磁盤使用率差異小于5%。balancer會在后臺慢慢跑通過設(shè)置dfs.datanode.balance.bandwidthPerSec限制帶寬建議從 20 MB/s 起步別把線上集群的網(wǎng)絡(luò)帶寬占滿影響業(yè)務(wù)。6.2 NameNode 故障與 HA從單點(diǎn)到雙活的技術(shù)演進(jìn)HDFS 早期最被詬病的就是 NameNode 單點(diǎn)故障。在支持 HA 之前NameNode 進(jìn)程掛了整個 HDFS 就不可寫了恢復(fù)要等元數(shù)據(jù)鏡像和日志重新加載時間長則十幾分鐘甚至更久。HA 機(jī)制的引入改變了這一局面。HA 的核心是引入兩個 NameNode一個是 Active 節(jié)點(diǎn)一個是 Standby 節(jié)點(diǎn)Active NameNode 對外提供服務(wù)處理所有元數(shù)據(jù)操作。Standby NameNode 持續(xù)從 JournalNodes一般三臺讀取編輯日志并應(yīng)用到自身內(nèi)存實現(xiàn)元數(shù)據(jù)實時同步。Active 和 Standby 之間通過zkfcZooKeeper FailoverController進(jìn)行健康監(jiān)測和自動切換。當(dāng) Active NameNode 進(jìn)程異常時ZooKeeper 感知到自動觸發(fā)故障轉(zhuǎn)移把 Standby 提升為 Active。過程中客戶端會短暫感知到連接失敗但整體可用性從“無限期宕機(jī)”提升到了秒級恢復(fù)。在配置 HA 時有一個特別容易踩坑的地方兩個 NameNode 的 namespace ID 必須保持一致否則 DataNode 會向兩個 NameNode 都發(fā)起注冊導(dǎo)致腦裂。HA 的正確初始化流程一般是先格式化其中一個 NameNode再通過hdfs namenode -bootstrapStandby同步另一個節(jié)點(diǎn)。這個操作順序如果沒有嚴(yán)格按照官方文檔執(zhí)行后面很容易出現(xiàn)“Active 和 Standby 同時有元數(shù)據(jù)”的混亂局面。6.3 租約機(jī)制寫文件的并發(fā)保護(hù)HDFS 是單寫者模型一個文件同一時刻只允許一個客戶端寫入。這是通過租約機(jī)制實現(xiàn)的客戶端寫文件時需要持有一個租約租約有過期時間。如果某個客戶端寫入過程中宕機(jī)或失聯(lián)租約不會自動釋放需要等待租約過期后下一個客戶端才能重新接管寫權(quán)限。租約恢復(fù)的操作由 NameNode 的后臺線程執(zhí)行默認(rèn)租約軟超時是 60 秒硬超時 60 秒之后即可由其他客戶端強(qiáng)制恢復(fù)。在這個機(jī)制下最常見的坑是客戶端發(fā)起了create()但一直不寫數(shù)據(jù)或者寫入很少數(shù)據(jù)后保持連接不關(guān)閉導(dǎo)致租約一直續(xù)期其他程序無法往同一個文件寫數(shù)據(jù)。遇到這種問題排查思路是hdfs debug recovery lease -path file -retries 3去查看和修復(fù)租約。但在執(zhí)行修復(fù)前一定要確認(rèn)原寫入端真的已經(jīng)退出否則可能出現(xiàn)兩邊同時搶寫導(dǎo)致數(shù)據(jù)錯亂。7. 我在 HDFS 實戰(zhàn)中反復(fù)踩過的坑與調(diào)優(yōu)心得7.1 小文件問題元數(shù)據(jù)壓垮 NameNode 的隱形殺手這是 HDFS 使用中遇到最多、影響也最大的問題。大量小文件意味著大量元數(shù)據(jù)對象NameNode 內(nèi)存很快就撐不住。更致命的是計算引擎處理時每個小文件都要啟動一個 Map 任務(wù)任務(wù)調(diào)度開銷比數(shù)據(jù)處理本身還大。我處理過的最極端案例中一個 3 TB 的數(shù)據(jù)目錄里存了 260 萬個小文件平均每個文件 1.2 MB。業(yè)務(wù)跑一個 Spark 任務(wù)光打開文件列表就花了將近 20 分鐘。解決思路有三種合并小文件定期把目錄下的小文件讀出來按業(yè)務(wù)維度合并成 128 MB 級別的大文件。合并后文件數(shù)可能降到原來的萬分之一查詢性能提升數(shù)個量級。使用 Hive 的歸檔功能ARCHIVE對小文件做 HAR 打包Hive 讀的時候按目錄訪問而不是按文件訪問能有效減少 NameNode 壓力??刂圃搭^上傳粒度寫入端盡量做批量緩沖攢夠一個 block 大小再落盤。很多 Flume 或 Kafka Producer 的上游任務(wù)就是因為 Flush 閾值設(shè)置太激進(jìn)而制造出海量小文件。HDFS 3.x 之后引入了基于 Erasure Coding糾刪碼的存儲策略可以大幅降低副本冗余成本比如用 RS-6-3 策略把 6 個數(shù)據(jù)塊加 3 個校驗塊組織成一組存儲開銷只有 1.5 倍比 3 副本的 3 倍節(jié)約一半空間。但 EC 策略不適合隨機(jī)讀寫場景主要用于冷數(shù)據(jù)歸檔。如果你在做存儲成本優(yōu)化EC 絕對值得好好研究。7.2 心跳參數(shù)與故障感知速度的矛盾生產(chǎn)環(huán)境中管理期望“機(jī)器掛了馬上能感知”但網(wǎng)絡(luò)閃斷和進(jìn)程假死是常態(tài)。把心跳間隔從 3 秒改到 1 秒確實能更快感知故障但會讓 DataNode 和 NameNode 之間產(chǎn)生大量心跳請求浪費(fèi)資源甚至可能引發(fā) NameNode RPC 隊列堆積。我的調(diào)優(yōu)經(jīng)驗是不要為了“更快”盲目調(diào)小心跳間隔而應(yīng)該優(yōu)先保證集群的穩(wěn)定性和元數(shù)據(jù)一致性。如果確實需要快速故障切換應(yīng)該依靠 HA 機(jī)制而不是單純壓縮心跳時間。正常情況下保持默認(rèn) 3 秒心跳配合 10 倍超時判斷已經(jīng)足夠應(yīng)對絕大多數(shù)場景。7.3 磁盤故障后的數(shù)據(jù)恢復(fù)流程DataNode 的磁盤壞掉是分布式存儲集群里最常見的事故。單塊盤掛了只是少了一份副本NameNode 會標(biāo)記該塊副本數(shù)不足然后自動從其他地方復(fù)制補(bǔ)全。但如果同時壞掉兩塊盤且其中包含同一個 block 的兩份副本那就真的會有數(shù)據(jù)丟失風(fēng)險。處理磁盤故障的標(biāo)準(zhǔn)動作是確認(rèn)壞盤路徑。使用hdfs dfsadmin -report查看 DataNode 狀態(tài)。在dfs.datanode.data.dir中把壞盤目錄摘除重啟該 DataNode。觀察 NameNode 界面的塊復(fù)制任務(wù)是否自動啟動。使用hdfs fsck path -files -blocks -locations檢查目標(biāo)目錄的健康狀態(tài)。這里面最容易犯的錯誤是直接格式化壞盤所在的掛載點(diǎn)而忽略了目錄中可能還有其他正常磁盤的數(shù)據(jù)。如果你是多個目錄共享一塊物理盤掛掉一個目錄全沒了但不代表其他 DataNode 也沒有該 block 的副本所以千萬不要慌張重建集群讓 HDFS 自行復(fù)制恢復(fù)往往是最快最安全的方式。7.4 千萬慎用rm -rf與數(shù)據(jù)回收站運(yùn)維 HDFS 期間團(tuán)隊里發(fā)生過不止一次誤刪事故。HDFS 中的rm命令沒有本地文件系統(tǒng)的二次確認(rèn)機(jī)制一條命令下去目錄就沒了。強(qiáng)烈建議把回收站功能打開property namefs.trash.interval/name value1440/value /property單位是分鐘1440 表示保留一天之后回收站文件才會被徹底刪除。誤刪之后可以通過如下命令恢復(fù)hdfs dfs -mv /user/hdfs/.Trash/Current/data/important /data/important注意回收站的路徑通常是/user/當(dāng)前用戶/.Trash/Current/不同用戶有各自的回收站目錄恢復(fù)前先確認(rèn)文件在不在?;厥照敬_實會占用一部分存儲但相比誤刪后的災(zāi)難性損失這點(diǎn)成本很值得。7.5 運(yùn)維監(jiān)控的“保命”指標(biāo)HDFS 日常運(yùn)維下面幾個指標(biāo)我會每天盯NameNode 堆內(nèi)存使用率超過 80% 就要認(rèn)真排查了考慮擴(kuò)容內(nèi)存或合并小文件。DataNode 磁盤使用率超過 85% 的節(jié)點(diǎn)要盡快處理數(shù)據(jù)均衡任務(wù)及時執(zhí)行。Under-replicated blocks 數(shù)量如果長期不為 0說明有節(jié)點(diǎn)故障沒恢復(fù)或被防火墻隔離了。DataNode 心跳延遲延遲持續(xù)升高通常是網(wǎng)絡(luò)問題或 NameNode 內(nèi)存 GC 停頓導(dǎo)致。RPC 隊列等待時間NameNode 界面能直接看到排隊時間變長說明元數(shù)據(jù)操作量已經(jīng)逼近單機(jī)處理上限。除了 Hadoop 自帶的 NameNode Web 界面可以再配一套監(jiān)控采集把上述指標(biāo)納入告警策略比等用戶報故障再排查要省心太多。8. 寫在最后HDFS 仍然值得從底層去學(xué)最后說點(diǎn)個人體會。很多人覺得 HDFS 已經(jīng)是“老技術(shù)”現(xiàn)在大家都在玩對象存儲、云原生存儲、數(shù)據(jù)湖沒必要深究底層。但我在實際工作中發(fā)現(xiàn)真正把 HDFS 吃透的人再去理解對象存儲的分區(qū)策略、計算存儲分離架構(gòu)、數(shù)據(jù)本地性調(diào)度、副本一致性協(xié)議都會非常順暢。分布式存儲解決的核心命題無非就是“數(shù)據(jù)怎么可靠地放、高效地取、方便地管”HDFS 恰好是這幾件事最經(jīng)典的實現(xiàn)樣本。如果你正要開始學(xué)我給的建議很樸素不要只看理論文檔一定自己動手起一個三節(jié)點(diǎn)集群把文件傳上去用hdfs fsck看塊分布kill 掉一個 DataNode 看副本補(bǔ)全再手動修改一個文件的副本因子做完這一輪你對 HDFS 的理解會超過很多人。HDFS 很龐大但它的骨架并不復(fù)雜。理解 NameNode 管元數(shù)據(jù)、DataNode 管塊存儲、副本機(jī)制保證可靠性、流水線復(fù)制保證性能剩下的再慢慢細(xì)節(jié)化你會發(fā)現(xiàn)一條特別清晰的學(xué)習(xí)路線。希望這篇基于“Hadoop HDFS-分布式存儲系統(tǒng)入門、配置、使用及架構(gòu)原理分析”的完整拆解能讓你少走一些我走過的彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产又黄又猛又粗又爽的网站| 夜夜騷av、一區二區| 伊人操| 欧美久久久15P| 婷婷激情四射| 无码精品一区二区三区潘金莲| 美女久久久| 青草园大香蕉| 97亚洲在线| 国产天天看| 久久综合18p| 欧美亚州手机在线| 天天欧美色| 91久久久久久| 国产一级片| 老司机射| 成人午夜小视频手机在线看| 插穴性爱视频在线观看| 在线观看高清AV| 97超碰色| 精品人妻免费观看| 国产精品久久久 | 闷骚老熟女15P| 天天爽天天爽| 午夜呻吟欧美| 大香蕉色欲AV| 色偷综合| 久久人体一区二区| 久久↗↗| 中日韩久久久免费看| 中国黄色特级精品一区二区三区片| 欧美日韩淫加| 日韩av色图综合| 麻豆久久久久久久久丝袜| 黄污污污污| julia ann久久| 亚洲成成熟女人综合一区二区| 欧美黑人91| 91日日夜夜| 欧美体内射精| 精品亚洲| 无码人妻精品一区二区三区99不卡| 亚洲欧美另类图片| 免费操逼91| 亚洲欧美日韩偷拍色图| 无码操逼视频一下| 久久五十路熟女人妻| 91人妻最真实刺激绿帽| 欧美人与性动交a美精品| 国产野战露脸在线播放| 欧美久热| 1区2区3区在线视频| 偷拍欧美激情| 91久久堂| 插插综合网天天影视网| AV乱伦国产| 亚洲AV秘 精品久久老牛影视| 欧美午夜精品久久久久久超碰| 欧美成人黄网色网站| 丁香五月久久| 97干天天| 日本一卡二区在线| 2017大香蕉| 黄色大片免费在线| 激情六月天| 青青久操| 狠狠躁伊人中文字幕| 亚洲āv网址在线观看| 九九视频黄色片| 欧美精品成人在线播放| 色久综合| 天天大干大香蕉| 1000部熟女视频在线观看| 噜噜噜在线视频| 99在线免费视频| 91美乳| 91色人| 青娱乐休闲视频在线观看| 大香蕉黄色一区| 男人的天堂午夜av| 国产精品一区二区三区在线密挑| 韩国嫰模上门援交视频| 91福利网在线观看| 欧美专利1区2区3区4区5区免费| 久久久久大香青草精品综合| 亚洲97超碰| 日韩性爱电影一区| 丝袜综合色图| 啊啊啊啊啊啊啊啊视频| 囯产乱伦一区二区三女 | 91啪9色| 欧美肥臀在线| 五月婷网站| 久久久久久性爱片| 麻豆 美女 丝袜 人妻 中文| 欧美大香蕉专区网| 爱啪精品一区| 日韩电影在线观看网址| 亚洲.欧美.丝袜.中文.综合| 欧美 色 亚洲| 日韩无码专区| 91精品久久久久| 在线无码操| 亚洲熟久久| 青娱乐老司机视频| 在线播放中文字幕| 一区二区三区 日韩欧美| 黄色不卡视频| 小视频国产| 看看小穴| 男人亚洲天堂| 日韩三四五区| 久久精品人人做人人看| 亚洲免费精品一区| 九九色图| 亚洲另类色综合网站| 日韩一级特黄av毛片| 制服诱惑亚洲一区二区三区在线观看| 18禁免费视频| 曰本道人妻久久久在线不卡色视频| 黄色激情电影在线观看| 日韩天天本| 日本一区二区成人在线| 久草线上视频免费看| 男人高清无码一区二区| 欧美性高潮| 六月色色| 国产宅男宅女在线观看| 欧美综合色综合| 黄片在线免费在线观看| 久久久人妻| 婷婷五月天久久精品视频一区二区三区| 啊啊啊爽爽| 日韩熟妇二区| av网站在线观看了| 羞答答AV中文字| 一区二区三区精品视频| 国内亚洲高清无码| 一级做a爰片性色毛片久久| 在线观看A啊啊啊| 可以免费看黄片的视频| 日本A级视频| 91成人高清在线观看| 久久综合超碰| 女人高潮大叫一级毛片| 日韩精品-原创伙伴| 六六久久日韩不卡| 国产精品ⅴ无码大片在线看.| 91久久久老司机| 亚洲综合精品国产一区| 亚洲视频精选| 9I1性色影院| 婷婷五月天综合网| 日韩在线一区高清在线| 日韩三级av片| 精品乱码在线观看| 999在线电影香蕉| 自拍偷拍第26| 97在线视频免费看| 素颜老阿姨乱情色| 欧美日韩淫加| 午夜男人一级A片7777| 超碰97国产欧美| 日日干夜夜操视频h| 午夜久久无码1000合集| 欧美人与动性人交a| 精品国产乱子伦一区二区三区,精品一| 91狠| 久久精品中文字幕无码l| 美女诱惑久久| 97人妻人人躁人人玩人人| 99青草| 新版天堂中文资源8在线| 1240青青草一区二区三区视频天爱| 91少妇人妻| 日本高清_区二区三区| 久区视频| 少好三P| 荡小穴在线观看| 欧美强奸一区二区诱惑| 蜜桃色色网站视频三区| 国产情侣自拍在线播放| 日本操色导航| 欧美精品一二三| 欧美国产有色电影| 欧美日本久久精品一区 | 精品久久在线区一区| 老司机老司机午夜影院| 美女黄频a美女大全免费皮| 麻豆视频国产一区二区| 日本一级特级毛片视频| 人人看人人爰人人操| 中文不卡视频| 亚洲精品久久久久久| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 精品视频一区二区| 激情综合av| 男人下部插入女人下部 | 日韩卡一卡二卡三在线| 亚洲伊人久久综合97| 高颜值美女口爆高潮浪叫| 91男人综合| 国产精品97超碰| 夜夜嗨老熟女AV一区二区三区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美欧美啪啪视频| 一二三区视频在线观看| 女人香蕉久久毛毛片精品| 在线电影亚洲色图| 亚春色色| 亚洲欧美在线观看2021| 九九九九九九九九九九九九九九九女| 久久久精品国产亚洲伊人| 日韩av在线播放不卡| 欧美日韩人妻精品系列一区二区三区| 国产92麻豆天美精品色欲5| 久久精品小视频| 久久一二三四五六七八九区区| 伊人九九九| 97无码视频在线播放| 久久久婷婷| 欧美少妇高潮| 国产熟女无套内射| 免费av在线播放二区| 老外又粗又长一晚做五次| 国产综合日韩伦理| 夜色AV无码手机在线影院| 国产视频不卡在线观看| 蜜臀少妇一区二区| 国产污视频麻豆传媒一区二区| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | 国产久久久久久| 男人的天堂 在线一区| 人妻色偷色噜| 黑人操一区二区| 亚洲成人久久一区二区| 综合久久99| 欧美成人亚洲精品| 亚洲丝袜二区在线| 99久久精品欧美国产| 久久av成人无码免费| av天堂影视中文在字幕在线中文| 尤物av网站| 亚洲自拍欧美色综合| 天天摸天天操视频| 亚洲97成人在线观看| 51一区二区三区| 猛交交| 极品粉嫩少妇视频| 日韩精品-原创伙伴| 久久透逼视频| 亚洲美乱| 亚洲交换| 成全动漫视频观看免费下载| 日本午夜精品理论片A级APP发布| 久久最新免费视频23| 中文字幕久久亚州无码| 熟女激情综合网| 久久久 国产精品| 国精品一区二区三| 综合网少妇| 激情五月天插| 色诱avtt| 国产操伦| 91在线综合网| 欧美大香蕉久| 性站 | 久久久婷| 99蜜月精品久久| 男女啪啪网站免费视频| 超碰人人妻| 欧美丝袜美女电影一二三四区| 欧美黄页| 亚洲天堂电影精品一区| 日1区2区3区2020| 草草网站影院白丝内射| 欧亚日韩三区| 超碰日韩人妻| 亚洲精品天天影视综合网 | 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 亚洲男人的天堂V| 色色九区| 色色操| 日比av无码| 国产三区免费在线观看| 夜精品久无码| 国产亚洲美日韩Aⅴ中文字幕无码成人| 最新加勒比丝袜在线| 亚洲资源吧| www.国产高潮精品| 97鸡把在线视频| 98福利在线视频| 污污汅18禁网站在线永久免费观看 | 亚洲精品三区在线观看| 五月天伊人| 韩国三级一线观看久| 久久久久免费少妇| 免费精品无码一级毛片牛牛影视 | 男人的天堂1024| 人人插人人搞人人操| 亚洲在线A| 婷婷五月激情综合| 亚洲图片欧美色| 老熟女91av| 国产偷拍网站| 日韩精品大香蕉伊人在线| 91高清无码下载| 色哟哟av网址| 97色碰| 九九九九9999| 在线电影亚洲色图| 蜜桃久久久久久久| 少妇无码av专区线| 舔人妻中文免费视频| 中文字幕在线日亚州9| 久久这里只| AV天堂电影网| 中文字幕精品一区二区精| 亚洲骚男同com| 欧美性特| 夜色AV无码手机在线影院| 情色大香蕉| 四月丁香婷婷| 日本丝袜人妻内射| 欧美78P| 亚洲区限制级| 色噜噜综合在线| 国产一区自拍欧美日韩| 啊啊啊骚| 亚洲精品国产熟女久久久| 爱我干综合| 无码免费在线观看黄色片| 后入福利| 亚洲综合在线高清| 91日韩在线| 久久久久久人妻一区精品色欧美| 国语精品av| 日韩精品怡红院| 男人的天堂亚洲| 久久综合亚洲色1080p| 91美女片在线| 啊啊啊啊啊舒服| 日本天天人人狠狠在线日美女| 乱欲一区二区| 中国AAAAAA黄色片| 97鸡把在线视频| 99精品人人爽| 色五月第四色| 丰满少妇一区二区三区四区观看| 久热九九| 肉嘟嘟www视频在线观看高清| 国产老太乱伦一区| 亚洲图片 欧美电影| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 99这里都是精品| 少妇蜜汁| 在线观看一卡二卡| 亚洲熟女中文字幕在线| 久久久久亚洲AV无码专区少妇| 欧在线一二区| 亚州高清AV| 亚洲综合图片在线| 青青草啪啪网| 一区,二区,三区视频| 国产青一二三| 久久99国产综合精品女同| 欧美性爱在线无码| 日韩国产成人自拍视频| 欧美性爱无码一区二区三区| 26uuu偷拍亚洲欧洲综合| 97综合网| 亚洲色综合| 91天堂| 98超碰欧美| 老熟乱一区二区三区四区| 天美传媒av在线| 亚洲人妖网| 伊人丝袜美腿高跟在线观看高清| 久草视频制服诱惑| 美女淫穴| 久久久成人精品| 欧美熟女逼久久久久久| 色综合 加勒比| 18禁久久| 亚洲欧美另类图片| 97香蕉网| 亚洲日本激情| 日韩欧美aⅴ综合网站发布| 在线岛| 日韩色欲久久一二三四区| 很黄很色的视频在线观看| 岛国毛片在线观看免费| 青青草天天亲夜夜操网| 久久婷婷五月综合| 天天色悠悠激情| 一及黄久一点| 青青三级视频| 不卡视频一区蜜桃视频| 亚洲中文字幕熟女| 亚洲成人免费中文字幕| 超碰人人超在线观看| AA丁香综合激情| 欧美制服另类丝袜| 天天天天做夜夜夜夜做| 99后入| 综合亚洲欧美| 2018天天日天天日| 无码精品蜜桃一区二区三区ww| 5278欧美一区二区三区| 中文字幕一区av| 中文字幕片| 国产欧洲精品亚洲午夜拍精品| 久久精品成人| 人人操人人插 - 百度 - 百度| 中文字幕一区二区在线日韩精品| 成人性爱电影一区二区| 97中文天堂| 日韩av色图综合| 久久有码视频| 新久久AV| 99re6久热只有精品6在线直播| 男生女生啊啊啊啊| 九九九九国产| 亚洲综合九九| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲国产成人福利在线观看| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 强歼乱伦资源网| 97色色视频| 国产精品网站免费| 狠日欧美| 国产成人精品日本亚洲语言| 欧美在线大香蕉| 国产91美女视频| 在线岛| 色婷婷狠狠| 秋霞一区二区三区四区五区六区七区| 亚洲天堂男| 黄骗免费| 久久爽爽精品| 精品国产一区探花在线观看| 亚欧国产无码精品在线| 97在线观看免费视频l| 91美女小视频| www.zbzhongsen.com| 福利天堂| 思思在线免费视频| 国产第二页| 亚洲一区二区三区春色| 欧美一区二区情色| 日韩兔费看黄片| 岛国片在线观看视频亚洲| 日日夜夜国产综合| 四虎午夜影院| 草久久久| 国产无码高清操逼视频| 97爱爱影院| 久久精品一区二区三区四区五区| 亚洲欧美日韩夜夜| 亚洲涩图欧美| 嫩草影院性色| 免费草草草草草视频| 国产女同视频在线播放| 青青草久久一区网| 天天干天天舔| 91处女视频在线观看| 久久成年片色大黄全免费网站| 精品女人999| 东北熟女91| 色色热| 超碰色97| 91久久国产综合精品| 玖草在线视频| 香蕉一区二区三区在线视频| 亚洲欧洲av影音| 久久国产视频专区一二三| 97这里只有精品| 国产黄a三级三级三级av在线看| 国产精品午夜福利| 97色色视频| 亚洲欧美在线丝袜| 欧美日韩夜夜| 亚洲电影中字一区二区| 试看福利| 粉嫩av在线一区二区| 超碰视97中文| 丁香六月婷婷久久综合| 美女诱惑一区| 久久精品72| 蜜桃视频成a人v在线| 欧美传媒一区| 日本色色网| 亚洲高清自拍| 清清草影| 久久女婷| 精品成人无码| 東南亚性呦成人伦理资源在线视频| 丁香五月天啪啪| A级在线视频| 中文字幕在线2| 五月丁香啪啪啪| 18禁无码永久免费无限制| 欧美久久人妻少妇一区二区| 狠狠爱综合网| 无码国产Av| 九九热精品| 蜜臀久久久国产| 伊人99热| 二男一女成人A片| 欧美 色 亚洲| 青青草玖玖爱| 男人天堂站| 国产亚洲禁久一区二区 | 国产高清精品福利| 国产h小视频在线观看免费| 精品无码久久久久| 台湾佬激情综合| 日韩一级成人毛片免费观看| 欧美v日韩v亚洲v最新在线| 午夜综合在线| 色天使大香蕉| 91色女| 久99| 欧差乱伦二三| 欧美黄片视频在线观看免费| 自拍内地三级在线观看| 久久啊啊| 后入式福利| 欧美另类自拍 | 欧美在线综合| 女人一区| 成人无码专区精品视频| 欧美精品四区| 五月综合久久| 色欲日韩欧美在线一区| 26UUU欧美激情一区二区| 日韩大香蕉| 日本一二三免费久久| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 岛国不卡超碰护士AV在线播放| 日韩丝袜人妻AV| 九九综合| 国产亚洲在线观看| www.色综合| www.人人cao| 探花在线免费观看视频国产一区| 大香蕉视频一二三区| 男人的天堂 在线一区| 亚洲黄色电影| 麻豆91熟妇人妻中文字幕茄子| 高清国产精品福利网站| 99草精| 999久久芭蕾| 啊啊啊啊好大好硬啊啊啊啊啊 | 国产视频小说| 亚洲九九九九| 欧美夜夜| 国产精品午夜AV完会免费| 青青草这里只有精品| 精品无码一区二区三区| 啊啊啊操死我了| 久久9999 | 精品人妻一区二区三区在| 日韩在线电影| 一中国女人毛片水真多| 爱妃国产亚洲视频中文字幕| 51久久夜色精品国产麻豆| 久久久久亚洲三级电影| 岛国激情视频软件| 精品一区二区人妖| 五月丁香网站| 超碰国产情侣自拍网| 亚洲永久永久永久永久一级一级一级精品 | 91熟女.com| 黑白配性爱AV成| 久久中文字幕在线观看| www.av家庭乱伦| 蜜乳视频网站| 中文字幕一区二区韩| 亚洲AV无码国产成人| 99热这里只有精品9| 91人妻超碰| 91/欧美| 国产精品久久久午夜夜伦鲁鲁| 91精品网站| 伊人专区一区二区三区| 欧美三级中文字幕hd| 久久激情网| 老熟女熟妇| 色婷婷一区二区三区久久午夜成人不| 欧美亚洲特P| 日韩精品资源专区二区| 国产午夜激片Av毛片不卡| 99成人| 成人片视频| 亚洲性天堂| 国产一级137片内射麻豆| 欧美疯狂做爰xxxx| 狠插 制服 自拍| 精品无av| 欧美老妇曰批的视频| 久久99热这里只频精品6学生| 97超碰色屌| 大香蕉懂9| 国产一区在线观看无码AV| 亚洲操操| 少妇特黄一区二区三区| 黑人精品一区二区在线播放| 国产精品大香蕉| 亚洲黄a三级三级三级看三级| 久久69| 曰韩成人免费视频| 人人澡人人弄| 欲香欲色| 九九热免费视频| 日韩人妻丝袜美腿中文| 超碰国产精品无码| 久久香蕉国产传媒一区剧情天美| 欧美熟女逼久久久久久| 天天激情综合站| 久都青青视频| 欧美 亚洲| 国内三级自拍小视频在线观看| 伊人操操| 欧美呦呦性爱| 91狠狠综合久久久久久| 大香蕉线| 丁香六月婷婷| 欧亚三区动漫| 色情综合| 熟女这里只有精品6| 久久一二三四五六七八九区区区 | 久久禁| 伊人久久大香线蕉无码| 好好的日:com久久九九| 亚洲日韩视频二区| 亚洲综合影片| 日韩成人精品| 亚洲视频一二区| 天天躁日日躁AAAAXXXX国产| 色天使大香蕉| 欧美一区二区福利在线| 老汉网| 午夜一区二区三区国产| 亚州熟妇精品| 国产男人又猛又粗又爽| 欧美在线干| 日本熟妇人妻中出视频| 免费男人的天堂| 免费精品福利在线观看| 国产精品禁久久久精品| www久| 91精品人妻一区二区三区蜜桃| 五月婷婷六月色| 91亚洲综合在线| 国产欧美美女免费观看视频| 免费精品国偷自产在线在线| 日韩av熟女一区二区三区成人| 1000部熟女视频在线观看| 99热在线不卡| 51一区二区三区| 人人操人人精品影片| 热九九精品| 超碰97网站| 麻豆婷婷成人一二三| 日韩操逼HD| 人妻大香蕉| 91狠| 岛国视频一二三区| 国产又粗又长的视频| 天天综合日韩网| 久久精品久久久久久久久| 亚洲成人妻日韩在线| 色官网在线| 欧美中文字幕一区 | 久久久久久少妇| 十八禁视频网站| 九九九色| 97在线观视频免费观看| 久久伊人大香蕉| 蜜臀无码视频在线观看| 亚洲欧美日韩电影网站一区 | AV和黑人在线播放| 超碰天天去日穴| 日韩影片中文字幕一区二区三区| 日本视频一区二区三区| 国产精品天堂| 蜜臀无码一区二区| 大香蕉AV丝袜| 亚洲成熟国产精品美女| 欧美在线91| 亚洲日本天堂| 天天干天天日天天射黄色大片 | 久久老熟女| 国产成人主播| 天天舔天天| 九月丁香综合网| 国产在线能看的你懂的| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 欧美性爱中文字幕无线码| 超碰97丝袜| 久久久久婷婷精品av电影| 日本天天人人狠狠在线日美女| 日本一区二区不卡精品| 强奸乱伦AV一天堂网| 97鸡把在线视频| 国产亚洲日本| 日韩精品高清资源在线| 啊啊啊啊二区好大| 长长久久88视频| 亚洲欧综合另类无码一区| 欧美一区二区三区不卡高清视频| 欧洲色综合| 999 久久久| 五月婷婷hd| 欧美精品另类人妖xxxx| 九月婷婷久久| 国产尹人在线视频免费| 欧美十八禁导航成人| 精品国产三级av韩国在线| 久久人| 欧美春色| AV天黑人| 夜夜春夜夜操| 亚洲欧美综合网站| 久久久男人的天堂| 成人十八禁日韩欧美一二三| av午夜玫瑰| 亚洲男人的天堂V| 99久久久无码| 天美av在线观看| 资源在线观一 二| 翔田千里av一区二区三区| 国内毛片国产专区二| 久久毛卡| 18禁超污无遮挡无码免费网| 亚洲成人美女无吗| 亚洲av淫乱| 岛园激情| AV电影在线播放| 99久re热视频精品98| 静品嫩模一区二区| 日日夜夜干| 色蜜AV| 欧美日本久久精品一区 | 91影库| 免费一级黄色录像影片| 91快色色色色色| 日本精品第一视频在'| 91 亚洲 欧美 日韩 国产 综合| 欧美强奸乱| 久热久| 69精品少妇一区二区三区蜜桃| 在线观看一卡二卡| 图色综合网| 好舒服视频| 日本黄页视频在线观看| 人妻蜜桃臀| 久久精品一区二区| 狠狠色伊人亚洲综合网站色| 26uuu偷拍亚洲欧洲综合| 欧美亚洲另类在线蜜桃| 91一起操| av在线人气| 色阁阁AV综合网| 亚洲欧洲日韩中文字幕一区| 97爱爱| 亚洲中文字幕久久人妻| 中文字幕jul-617人妻熟女| 长长久久免费视频| 69精品人人人人| 安微少妇操BBB| 欧美爱爱97| 午夜福利精品| 人妻啊啊人妻啊| 四季AV一区二区凹凸精品小说| 98超碰日本| 天美传媒AV在线| 三级特黄60分钟播放| 五月婷婷啪啪| 大香网伊人久久综合网eew| 中文字幕日韩情色| 亚洲欧洲自拍图片专区满春格| 久久精品国产亚洲AV片多多| 97WW精品| WWW美腿丝袜香蕉中文| 日本阿v天堂在线观看| 亚洲日韩精品一区视频在线| 欧美极品女人的天堂| 日日骚精品视频| 久久亚洲AV无码白度| 强奸乱伦资源| 99久久综合| 91美女小视频| 极品色www影院| 97AV在线免费观看| 免费精品无码一级毛片牛牛影视| 一,爱啪啪,在线免费视频| 久久久久骚| 91狠狠狠| 日韩Va亚洲va欧美Ⅴa久久| 日韩99神马视频播放片在线播放| 2003天天干夜夜操| 男女性感激情网站| 国产性感骚丝袜在线| 久久三区四区| 日韩乱插| 久久久九精品| 亚洲精品毛片在线观看| 日韩熟女精品无码专区一区二区 | 97人人干人人操| 学生妹天天看| 亚洲精品国产无码高清| 内射中出日韩在线观看视频| 精品无码少妇| 亚洲一区中文字幕一区| 经典丝袜一区| 丰满人妻无码一区二区三区| www男人天堂| 五月天黄色激情视频| 精品9区| 日韩人妻制服丝袜av| 99re69综合| 台湾一区国产高清在线| 欧洲Au麻豆| 欧美日韩国产成人高清| 肉丝网站91| а√天堂资源官网在线资源| 成人影 天天操 亚洲| 日日爱99| 三级片大波波| 国内精品嫩模A∨私拍小视频| 午夜精品99久久久久传媒| 欧美亚洲91| 久久国色天香香蕉| 成人毛片免费| 鸥美插入视频| 色色色色日本| 青青操视频在线| 亚洲最大网站av| 在线洲亚线| 狂操嫩妻视频一区二区三区| 啊啊啊操死我| 色鬼在线综合| 欧美aa一级片| 亚洲中亚日激情视频| 国产无套粉嫩白浆在| 伊色久人大在线| 97干日韩| 蜜乳视频网站| 夜色97| 精品人妻伦一二三区久久| 91精品国产一区三一| 自拍丝袜美腿人妻| 青娱乐亚洲自拍| 激情文学亚洲| 91在线|亚| 国产日韩在线播放av| 色天使AV天堂| 日韩三级久久久| 久久久久久亚洲Av无码| 久久精品99| 99热免费| wwwxxx日本爽| 清纯唯美综合亚洲| 午夜天天碰综合视频| 一级@啪啪视频| 激情婷婷丁香网| 久久理论字幕视频| 成年女人黄网站| 青青青在线高清视频在线一二三四区 | 亚洲欧洲第二视频在线观看色图| 日韩乱插| 无码一区免费在线不卡| 亚洲啪啪啪啪视香蕉| www.狠狠| 成人七区| 97超碰色| 少好三P| 99青草| 乱伦AVxx| 秋霞Av理论一级在线| 91高潮喷水美女| 亚洲欧美精品一区天堂久久| 国产日逼视频| 久热热| 韩国嫰模上门援交视频| 花野真衣| 亚洲精品精品一区二区| 久久丁香久草综合网| 新怡红院| 亚洲天堂日本| 一区中文字幕二区日韩| 色综合色色| 天天综合网日韩7799| 中文字幕精品探花视频| 96一区二区三区| 伊人久久蜜月| 国产精品熟女AV中文字幕在线播放| 自拍偷拍 高清无码| 日日夜夜摸| 91精品在线播放| 91真人天天在线| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 国产视频第2页| 四虎影视在线| 无码色| 日本日皮视频逼| 国产精品美女在线一区| 丝袜人妻av一区二区| 久久久青青草| 舔舔啊| 鸥美极品| 999 久久久| 男人的天堂色偷偷青青草视频婷婷网| 91操人| 激情综合婷婷| www.人人cao| 囯产乱伦一区二区三女 | 日本大香蕉| 亚洲中文字幕乱码无码一区二区| 久久午夜伦| 丁香五月天激情综合| 麻豆国产免费影片| 操逼逼无码| 最新国产亚洲精品精品国产亚洲综合| 亚洲av综合色区图片亚洲| 搡老女人911熟妇老熟女| 中文字幕熟女人妻丝袜| 亚州色综合| 欧美色图亚洲色| 青草地一本线一区二区三区| 中文字幕欧美精品亚洲日韩蜜臀| 老鸭窝日丰县女人| 日本天堂在线播放| 夜夜嗨免费视频| 综合网亚洲1| 精品免费成人久久| 午夜亚洲| 福利视频网站| 亚洲夜夜欢无码一区二区| 8050午夜少妇无码| 久久这里只精品99re66图| 天天插天天操| 亚洲婷婷五月天| 国产蜜臀精品一区免费尤物| 怡红院怡春院| www.AV有限公司一区| 国产欧美后入| 一本色道久久综合狠狠操| 蜜桃午夜视频一区二区 | 色五月婷婷五月天| 久久大香蕉手机高清视频| 伊人国产av| av东京热男人的天堂| 亚洲亚洲亚洲天堂天堂| 国产一区二区精品久久久不卡蜜臀| 超碰久超碰久| 国产91精品在线免费| 大香蕉一区二区在线观看.| 亚洲色 国产 欧美 日韩| 亚洲欧美激情在线视频| 亚洲色图91欧美日韩| 伊人色综合超碰| 亚洲综合图片在线| 啊啊啊好大好深| 青青操网| 全球成人中文在线| 国模限制级电影| 熟女AV一区| 天天综合网在线91| 国产久久免费精品视频| 人人操人人叉人人插人人| 久久精品小视频| 欧美 日韩 另类 亚洲| 福利五区| 9久在线视频只有精品| 韩国黄片aaaa| 超碰79人人乐| 天天操美美| 九久精品| av日韩在线观看电影| 久久香蕉国产传媒一区剧情天美| 日韩 成人 有码| 亚洲中文字幕一区二区| 91精品久久久久五月天精品| 99操视频| 超碰地址97| 麻豆成人AV| 日欧亚洲二三区大片不卡| 蜜桃视频精品一区二区| 青青伊人加勒比海| 人人操人人色网| 久久男女激情视频网站| 大香蕉欧美伊| 人人操人人摸超碰| 欧美大香蕉专区网| 亚洲 欧美 另类 综合 偷拍| 大香蕉一人| 少妇人妻太紧太深av| 青青青操| 久热最新在线杭州| 色乱二区| 做爱福利视频一区二区| 久久AV无码AV| 亚洲激情综合| 欧美日韩精品久久久久东北老熟妇| 亚洲欧洲无码bt精品合集| 99婷婷| 超碰 欧美| 91社操逼| 婷婷香网站| 天天做天天爱夜夜爽毛片试看| 激情99| 清纯唯美第一页| 欧美啪啪女女| 亚洲精品白丝| 国产一区二区三区久久久精品| 中文一区二区婷婷视频| 色淫网站优优视频| AV电影在线播放| 97超碰国产亚洲精品| 国产精品欧美日韩久久| 97 视频在线| 婷婷干黄色| 极品粉嫩一区二区| 日韩无码人妻| 亚洲天堂东京热| 久久78| 久草久热| 亚洲无992tv| 亚洲美女精品| 亚洲天堂精品日韩电影| 日韩在线视频1234| 久操视频在线观看| 国产人妻精品久久久一区二区三区| 中文字幕成人乱码熟女精品国50| 亚洲天堂久久| 78超碰| 伊色综合天堂色97| 激情综合网亚洲| 日本九九久久99播| a片在线播放| 9精品在线| 91强热人妻| 天天综合网视频91| 婷婷九月色| 天美传媒AV在线播放| 97在线国产精品| AV天堂国产| 丝袜无码a片| 伊人网综合在线视频| 97chaopenrihan| 99无码| 一起草三级AV电影在线观看| 97人亚洲综合字幕| 久操凹凸视频| 欧美日日人人天天| 色色亚洲| A一区片| 玖玖爱伊人玖玖爱| 日日操天天操| 在线观看一级α片刺激高潮视频| 日本欧美色| 99久久久无码国产精品性男| 伦理第一页| 97超碰天天爱天天爱| 国产麻豆福利av在线播放| 超碰97久| 91欧美偷拍| 黄色av片三级三级三级免费看| 色噜噜人妻av中文字幕| 神马福利久草| 一级黄色视频网| 外国免费性情大片| 9 7超碰在线免费观看| 日韩黄色一区二区三区| 国产精品第一页国产大屁股视频免费区| 嗯……啊…嗯嗯…啊…好舒服| 精品成人动漫一区二区| 久久久91| 国产亚洲精品美女| 婷婷五月天激情小说| 国产一区二区免费福利片| 青青草国产一区二区三区| 综合日本女人伊人| 午夜福利免费福利视频| 国产女人视频三四五区| 九九九精品成人免费视频小说| 加勒比伊人影院| 久久精品欧美一区蜜桃| 日本三级网页| 亚洲av青草久久一区二区| 久久久久国产精品人妻aⅴ天堂| 麻豆天美久久91| 在线观看av区| 97色伦97色伦国产欧美| 精品人妻久久久久一区二区三区| 欧美一二三区四五区| 久久性视频| 十八禁av无码免费网站APP| 人妻丝袜日本| 欧美在线|亚洲| 青草香蕉网| 91久久精品国产| 青青草天天亲夜夜操网| 精品成人亚洲午夜电影| 中文字幕丰满子伦无码专区在线视频最新 | 久久风骚城市人| 欧美日韩婷婷中文| 91亚洲不卡一区| 97人人射| 97任你吞精| 免费精品中文字幕| 男女无套 免费网站| 久久精品无码专区| 蜜臀在线网站| 大香蕉青青9| 热久久99999| 国产精品国产自产拍高清AV| 久久五月综合| 自拍偷拍2025在线观看| 久久综合资源一区二区| 欧美日韩啪啪电影| 色婷婷国产精品一区在线观看| 国产精品丝袜在线| 九九九偷拍| 婷婷五月天色网| 韩国毛片一区二区三区| 青草园大香蕉| 超碰69| 国产日韩欧美| 激情小说亚洲图片| 亚洲图片 激情小说| 级品肉射| 熟妇人妻一区二区三在线 | 亚洲综合另类小说色区亚洲成av人片在www| 五月丁香激情四射| 嗯嗯啊啊好爽| 亚洲爽图| 欧美国产精品久久九九| 91狠狠综合网| 亚洲天堂一区| 99久久亚洲精品无码毛片潘甜甜| 国产高清成人免费视频| 精品少妇999| 大二网站亚洲| 亚洲人体视频在线观看| 91伊人久| 亚洲 自拍偷拍 欧美| 一级aaaaa欧美中文字幕录像片| 综合五月婷婷亚洲一区| 国产高清MV操逼视频| 久久无码电影| 亚洲激情网| 中文字幕一区 二区三四五 区日 日骚| 日韩精品99999| 91视频观看网站| 国产精品密臀网在线观看| 超碰欧美在线欧美|