99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

Hadoop企業(yè)級實戰(zhàn):集群搭建、HA與Zookeeper整合排障指南

Hadoop企業(yè)級實戰(zhàn):集群搭建、HA與Zookeeper整合排障指南 我?guī)н^不少新人也幫人排查過不少集群問題。有個現(xiàn)象特別普遍很多人把Hadoop偽分布式搭起來、跑通一個WordCount就覺得Hadoop這關(guān)過了。但真到了企業(yè)級項目里面對一個多節(jié)點集群、跟Zookeeper等生態(tài)組件深度整合之后問題根本不是“跑通”兩個字能覆蓋的。格式化失敗、DataNode注冊不上、NameNode莫名其妙掛掉、HA自動切換不生效隨便一個故障都能讓人卡住一整天。這篇東西寫給那些已經(jīng)跨過入門、正準備往進階走的人。不管你是要準備Hadoop面試還是公司里要上一套真正能扛業(yè)務的集群又或者只是被“ambari部署hadoop集群”“hadoop啟動格式化失敗”這種問題折磨到懷疑人生下面的內(nèi)容都應該能幫上忙。我會按企業(yè)級落地時最容易出問題的那幾條線來講部署路線怎么選、HA怎么跟Zookeeper整合、格式化與啟動階段有哪些坑、日常故障怎么一步步查以及最后怎么用一套“故障演練”的方式把知識變成自己的。1. 能跑通Demo和能扛住生產(chǎn)中間隔著什么1.1 偽分布式容易給人“我已經(jīng)會Hadoop”的錯覺很多教程喜歡讓人從偽分布式開始這沒問題但它帶來的最大副作用是偽分布式跑得太順了順到讓人誤以為Hadoop就是“改幾個配置文件啟動幾個進程”的事兒。偽分布式本質(zhì)上是在一臺機器上用多個Java進程模擬分布式。它沒有真實的網(wǎng)絡IO沒有跨節(jié)點通信沒有機架感知也沒有資源競爭。你在偽分布式里看到的日志永遠干干凈凈你在偽分布式里執(zhí)行的格式化永遠一次成功。但所有這些“順利”都是假象恰恰是進階路上最危險的起點。到了真實集群環(huán)境你面對的是完全不同的復雜度網(wǎng)絡成為第一道坎。節(jié)點之間要互相解析主機名防火墻要放行一堆端口機架感知策略會影響副本存放。偽分布式里從來沒有這個概念。資源是有限的。NameNode的內(nèi)存決定了能支撐多少文件元數(shù)據(jù)DataNode的磁盤決定了能存多少數(shù)據(jù)塊YARN的調(diào)度器決定了任務能不能擠進去。偽分布式不關(guān)心這些因為所有東西都在一臺機器上。故障是常態(tài)。一個節(jié)點掉線、一塊磁盤寫滿、一次Full GC導致心跳超時都可能導致整個集群進入降級狀態(tài)。偽分布式里的進程掛了你馬上知道生產(chǎn)環(huán)境里一個節(jié)點無響應你可能要翻半天日志。我見過太多人面試時把HDFS架構(gòu)背得滾瓜爛熟真到了集群上連“DataNode為什么起不來”都無從下手。原因很簡單他們學的是“結(jié)構(gòu)”不是“行為”。企業(yè)級項目實戰(zhàn)要補的恰恰是后一半。1.2 企業(yè)級項目的重心其實在Hadoop之外還有一個更隱蔽的認知偏差很多人以為企業(yè)級項目 把Hadoop集群搭得更大、更快。真不是這樣。企業(yè)級項目的難點一大半在Hadoop之外在生態(tài)整合與運維體系建設上。Hadoop只是一個底座底座之上掛著一堆組件Zookeeper管協(xié)調(diào)、YARN管調(diào)度、Hive管數(shù)倉、HBase管在線查詢、Kafka管數(shù)據(jù)接入。這些組件單獨看都不難難的是它們咬合在一起之后出了問題你很難判斷是哪一環(huán)掉了鏈子。舉個例子一個Hive查詢突然變慢可能的根因包括HDFS某個DataNode磁盤IO異常導致讀取走了慢路徑Y(jié)ARN隊列資源被別的任務占滿你的任務一直在排隊Zookeeper會話超時導致HBase RegionServer在做無謂的自我恢復甚至是NameNode在做checkpoint時搶占了大量IO間接拖慢了整個HDFS。這種問題只懂Hadoop本身是搞不定的。你必須對整個生態(tài)的運行機制有清晰的認知知道哪個組件的數(shù)據(jù)流向哪里、它依賴誰、掛了會有什么表現(xiàn)。這才是“生態(tài)深度整合”這四個字的真正含義也是這篇文章試圖幫你建立的主干思維。2. 集群搭建的三條路線手動、Ambari、容器化怎么選2.1 手動搭建值得走一遍但別在生產(chǎn)環(huán)境硬扛我始終建議每個進階者手動搭一遍Hadoop集群哪怕只是三個節(jié)點。原因很簡單手動搭建能逼著你把每個配置項的含義弄清楚而不是讓工具替你把這些細節(jié)全部藏起來。但手動搭建只適合學習不適合當生產(chǎn)環(huán)境的長期運維方案。你手動搭起來的集群沒有統(tǒng)一的配置管理沒有完善的可視化監(jiān)控沒有組件間的健康檢查。一旦規(guī)模超過十個節(jié)點手動運維會變成一場災難。版本選型是手動搭建的第一步。我這里不想把Apache、CDH、HDP的版本歷史鋪開講就講現(xiàn)狀Cloudera和Hortonworks合并之后CDH成了商業(yè)產(chǎn)品HDP的開源脈絡則由Cloudera的開源發(fā)行版延續(xù)但整體都偏向商用訂閱如果你想要純開源、不涉及商業(yè)授權(quán)煩惱的路線Apache Hadoop社區(qū)版是唯一穩(wěn)妥的選擇。版本號上Hadoop 3.x已經(jīng)是絕對主流3.1.x和3.3.x用得最多。3.3.x修復了不少3.1.x遺留的問題新項目建議直接上3.3.x。手動搭建時有幾個配置項是無論如何都要搞懂的配置文件關(guān)鍵配置項它的作用core-site.xmlfs.defaultFS指定NameNode的RPC地址客戶端和DataNode全靠它找到“老大”hdfs-site.xmldfs.replication數(shù)據(jù)塊副本數(shù)決定了容錯能力與存儲成本的平衡hdfs-site.xmldfs.namenode.name.dirNameNode元數(shù)據(jù)存儲路徑必須放在獨立磁盤上不能跟系統(tǒng)盤混用yarn-site.xmlyarn.nodemanager.resource.memory-mb單個NodeManager可用的物理內(nèi)存上限直接決定容器能開多大mapred-site.xmlmapreduce.framework.name必須設為yarn否則MapReduce任務不會走YARN調(diào)度另外環(huán)境準備這一步千萬別跳所有節(jié)點之間要配置SSH免密登錄系統(tǒng)時間必須用NTP同步差一分鐘都可能引發(fā)Kerberos認證失敗或心跳異常JDK版本必須完全一致最好連JDK的安裝在哪個路徑都保持一致。這一步能給你省掉后面80%的玄學故障。2.2 Ambari部署中大規(guī)模集群的運維入口如果公司要搭一套十幾個節(jié)點以上的集群我建議別掙扎了直接上Ambari這類工具。Ambari的價值不在于“一鍵安裝”——真正裝過的人都知道它也不是完全一鍵。它的核心價值是集中化配置管理所有組件的核心配置項都在Web界面上改改完能統(tǒng)一分發(fā)到所有節(jié)點還能選擇是否滾動重啟服務健康檢查每個組件的存活狀態(tài)、告警規(guī)則、指標趨勢都集中展示省去了逐臺機器翻日志的苦力活擴縮容友好新增一個DataNode節(jié)點界面上填上主機名和SSH憑據(jù)就行了。但Ambari也有幾個典型的坑我踩過身邊的人也踩過Ambari Server自身的內(nèi)存占用比預想的高。默認的2GB堆內(nèi)存在組件多的時候會有明顯壓力我的建議是至少給Ambari Server分配4GB以上。如果你把Ambari和NameNode放在同一臺機器上更要提前調(diào)好內(nèi)存分配。Agent注冊失敗是高頻問題。Ambari Agent向Server注冊時要求兩邊主機名能互相解析。很多人只配了/etc/hosts但沒配好防火墻導致Agent注冊超時。處理方式很粗暴也很有效先確認hostname一致再確認防火墻放行8080和8440/8441端口最后重啟Agent看日志。藍屏問題。這里的“藍屏”是Ambari界面上組件狀態(tài)變藍表示“未安裝”。最常見的原因是你手動在某個節(jié)點上裝了組件之后用Ambari管理時狀態(tài)就錯亂了。記住一條鐵律Ambari管理的集群所有操作都通過Ambari做永遠不要手動去改它管理范圍內(nèi)的配置文件和啟動腳本。2.3 Docker鏡像搭建學習驗證的最優(yōu)解生產(chǎn)的禁區(qū)Docker跑Hadoop這幾年越來越流行因為對學習來說它實在太方便了。不需要準備一堆虛擬機一條命令就能拉起一套集群跑完就刪干凈利落。我自己用Docker方式做過完整的三節(jié)點Hadoop集群體驗是用來驗證配置修改、測試作業(yè)邏輯、準備面試場景效率無敵。但要注意幾個關(guān)鍵細節(jié)網(wǎng)絡模式用host或自定義bridge不要用默認bridge。默認bridge的網(wǎng)絡隔離會讓容器間主機名解析變得很麻煩自定義網(wǎng)絡加上固定的容器名才能模擬出真實集群的主機解析關(guān)系。數(shù)據(jù)目錄務必用volume掛出來。否則容器一刪你辛苦搭的環(huán)境數(shù)據(jù)全沒了下次還得從頭再來。鏡像的Java版本要和Hadoop版本匹配。很多第三方鏡像用的OpenJDK 8對Hadoop 3.3.x也沒問題但如果你拉了一個很老的鏡像配了很新的Hadoop格式化階段就可能報出詭異的NativeIO錯誤。容器化跑Hadoop唯一的限制是它模擬不了真實的資源競爭和網(wǎng)絡故障場景。Docker容器之間雖然是隔離的但底層還是共享同一套內(nèi)核和物理資源。這意味著你用它學“功能”沒問題學“性能調(diào)優(yōu)”和“故障演練”則遠遠不夠。所以我的結(jié)論是容器化是學習環(huán)境的最優(yōu)解盡早上手生產(chǎn)環(huán)境則除非是短期測試環(huán)境否則別碰。順帶提一句Windows開發(fā)環(huán)境的搭建?,F(xiàn)在很多新手想在自己Windows機器上折騰Hadoop也就是熱搜里那個“windows下載hadoop”的需求我的建議是在Windows上直接裝Hadoop很痛苦不只是下載解壓的問題還有一堆原生庫依賴、路徑分隔符、權(quán)限模型的問題等著你。最省力的做法是裝個WSL2或直接上Docker Desktop在Linux內(nèi)核環(huán)境里跑Hadoop體驗和真實集群幾乎一致。“hadoop開發(fā)環(huán)境搭建頭歌”這類實訓平臺我也見過適合當入門練習但如果你想深入理解原理還是要自己搭一套干凈的環(huán)境不要依賴平臺幫你隱藏細節(jié)。3. Hadoop與Zookeeper整合實戰(zhàn)HA集群的心臟3.1 為什么HA不能沒有Zookeeper先回答一個面試必問、也是實際運維中必須理解透徹的問題為什么NameNode的高可用一定要靠ZookeeperNameNode是HDFS的核心它保存了整個文件系統(tǒng)的元數(shù)據(jù)。一旦它掛了整個HDFS都不可用。早期Hadoop的痛點是單點故障NameNode一掛集群就癱瘓只能靠人工恢復。那有人會問用Keepalived這類方案給NameNode掛一個虛擬IP主節(jié)點掛了把IP漂移到備節(jié)點不就行了嗎問題在于HDFS的高可用不只是“IP漂移”這么簡單。NameNode的元數(shù)據(jù)分兩部分內(nèi)存中的鏡像fsimage和磁盤上的編輯日志edits。主備兩個NameNode要保證元數(shù)據(jù)完全一致必須持續(xù)同步編輯日志。如果主節(jié)點已經(jīng)寫了一條edits日志但還沒來得及同步給備節(jié)點就掛了備節(jié)點接管的元數(shù)據(jù)就不完整會造成數(shù)據(jù)丟失或元數(shù)據(jù)錯亂。所以真正的HA方案要解決兩件事元數(shù)據(jù)的實時同步——主NameNode把edits日志實時寫入一個共享存儲備NameNode持續(xù)讀取并應用這些日志保證內(nèi)存里的元數(shù)據(jù)基本一致。Hadoop采用的是JournalNode集群本質(zhì)上是把edits日志分散寫到多臺JournalNode上只要半數(shù)以上節(jié)點存活元數(shù)據(jù)就不丟。故障自動切換——怎么讓集群里所有節(jié)點認同“原來那個Active NameNode已經(jīng)死了現(xiàn)在應該由Standby接替”這個決策必須由所有參與者一致認可否則就可能出現(xiàn)兩個NameNode同時認為自己是Active的情況這就是腦裂。這兩個問題Zookeeper都能解決或者說只有Zookeeper這類強一致協(xié)調(diào)組件能優(yōu)雅地解決。ZK在HDFS HA里有三重角色選主仲裁兩個NameNode啟動時向ZK注冊臨時節(jié)點誰搶到鎖誰就是ActiveZK保證只有一個贏家狀態(tài)存儲ZK保存當前Active節(jié)點的標識以及集群的命名空間信息分布式鎖與腦裂防護Active節(jié)點必須持續(xù)持有ZK上的一個分布式鎖一旦鎖丟了就得立即釋放所有資源并退位防止雙Active同時寫edits日志造成數(shù)據(jù)損壞。理解了這一層你就明白了為什么“hadoop和zookeeper整合實戰(zhàn)”不是單純的“裝兩個軟件然后配置上”而是一套完整的分布式一致性協(xié)作機制。3.2 HA整合配置的落地步驟實戰(zhàn)部分我用兩個NameNode、三臺JournalNode的典型HA拓撲來講。先規(guī)劃角色節(jié)點運行組件node1NameNode, ZKFC, JournalNode, Zookeeper, DataNodenode2NameNode, ZKFC, JournalNode, Zookeeper, DataNodenode3JournalNode, Zookeeper, DataNode第一步確認Zookeeper集群本身正常。每個Zookeeper節(jié)點上配置myid文件內(nèi)容分別是1、2、3然后在zoo.cfg里配置三個節(jié)點的地址和端口。啟動后執(zhí)行zkServer.sh status看到其中一個顯示leader、其他兩個顯示follower說明ZK集群健康。第二步配置core-site.xml。關(guān)鍵項是fs.defaultFS它必須指向一個邏輯名稱而不是某個具體節(jié)點configuration property namefs.defaultFS/name valuehdfs://mycluster/value /property property nameha.zookeeper.quorum/name valuenode1:2181,node2:2181,node3:2181/value /property /configuration這里的mycluster是一個邏輯名稱兩臺NameNode的地址會在下一步的hdfs-site.xml里映射到這個名稱上。第三步配置hdfs-site.xml。這是整合的絕對重點configuration !-- 啟用HA -- property namedfs.nameservices/name valuemycluster/value /property !-- 兩個NameNode的邏輯ID -- property namedfs.ha.namenodes.mycluster/name valuenn1,nn2/value /property !-- 兩個NameNode的RPC地址 -- property namedfs.namenode.rpc-address.mycluster.nn1/name valuenode1:8020/value /property property namedfs.namenode.rpc-address.mycluster.nn2/name valuenode2:8020/value /property !-- 兩個NameNode的HTTP地址 -- property namedfs.namenode.http-address.mycluster.nn1/name valuenode1:9870/value /property property namedfs.namenode.http-address.mycluster.nn2/name valuenode2:9870/value /property !-- JournalNode地址列表 -- property namedfs.namenode.shared.edits.dir/name valueqjournal://node1:8485;node2:8485;node3:8485/mycluster/value /property !-- 故障自動切換實現(xiàn)類 -- property namedfs.client.failover.proxy.provider.mycluster/name valueorg.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/value /property !-- ZKFC參數(shù) -- property namedfs.ha.automatic-failover.enabled/name valuetrue/value /property property nameha.zookeeper.quorum/name valuenode1:2181,node2:2181,node3:2181/value /property /configuration這段配置的核心是qjournal地址。它是HA元數(shù)據(jù)同步的通道。所有edits日志都會同步寫入三臺JournalNode只要有兩臺成功落盤事務就算成功了。這就是為什么JournalNode必須奇數(shù)臺且至少三臺的原因——過半寫成功才能保證一致性和可用性。第四步啟動順序與格式化。這里有個非常關(guān)鍵的細節(jié)很多人栽在這里。HA集群的格式化順序必須是先啟動所有Zookeeper節(jié)點在其中一臺NameNode上執(zhí)行hdfs zkfc -formatZK在ZK中初始化HA狀態(tài)在一臺NameNode上執(zhí)行hdfs namenode -format生成初始元數(shù)據(jù)啟動這臺NameNode讓它成為Active在另一臺NameNode上執(zhí)行hdfs namenode -bootstrapStandby從Active同步元數(shù)據(jù)啟動所有JournalNode和DataNode最后啟動Standby的ZKFC進程。順序錯了會怎樣如果ZK還沒就緒就去格式化NameNode格式化雖然可能成功但ZKFC注冊時會報錯如果沒有先formatZK就直接啟動ZKFCZK里沒有對應的HA狀態(tài)鎖自動切換配置不會生效。這些都是我實際排障時見過的高頻問題。第五步驗證failover是否真的生效。這一步極重要因為“配置了HA”和“HA真的能切換”是兩回事。驗證方法如下# 查看當前Active節(jié)點 hdfs haadmin -getAllServiceState # 手動觸發(fā)一次故障轉(zhuǎn)移 hdfs haadmin -failover nn1 nn2 # 再次查看狀態(tài)應該看到nn2變成active hdfs haadmin -getAllServiceState更狠的驗證是直接kill掉Active NameNode進程觀察ZKFC是否在幾秒內(nèi)自動把Standby提升為Active。我在實際項目里都會做一次這個演練因為它能暴露很多配置層面的隱蔽問題。比如fencing機制沒生效時原來那個“假死”的NameNode可能會在網(wǎng)絡恢復后繼續(xù)請求寫edits日志導致數(shù)據(jù)不一致。生產(chǎn)環(huán)境里這種演練很危險必須在維護窗口期做。3.3 整合中最容易翻車的細節(jié)第一個坑ZKFC進程不是NameNode。我發(fā)現(xiàn)很多人SSH到節(jié)點上看HA狀態(tài)時只關(guān)注NameNode進程是否存活忽略了ZKFC。但自動切換的決策者是ZKFC不是NameNode本身。如果ZKFC掛了即使NameNode活著故障自動切換也不會生效。所以監(jiān)控里一定要把ZKFC進程納進來。第二個坑quorum過半機制導致ZK集群自身可用性成為瓶頸。三臺ZK允許掛一臺兩臺掛掉整個ZK就不可用了。而ZK一旦不可用HDFS雖然還能繼續(xù)讀寫因為edits日志寫的是JournalNode不是ZK但故障自動切換會完全失效。這是個很讓人迷惑的現(xiàn)象集群跑著跑著突然發(fā)現(xiàn)永遠無法切換了查了一圈才發(fā)現(xiàn)是ZK集群只剩一臺活著的節(jié)點。第三個坑數(shù)據(jù)目錄權(quán)限問題。JournalNode的數(shù)據(jù)目錄dfs.journalnode.edits.dir和NameNode元數(shù)據(jù)目錄dfs.namenode.name.dir如果權(quán)限不是啟動用戶格式化階段就會直接失敗。這在“數(shù)據(jù)目錄掛載了新磁盤”的場景特別常見——新磁盤掛載點是root用戶格式化時用hdfs用戶去寫直接Permission denied。4. 格式化、啟動與元數(shù)據(jù)第一個大坑在這里4.1 namenode -format到底做了什么“Hadoop啟動格式化失敗”能上熱搜說明遇到這個坑的人不是少數(shù)。要理解格式化為什么會失敗得先知道它做了什么。hdfs namenode -format做的事情本質(zhì)上是對NameNode的元數(shù)據(jù)目錄做初始化創(chuàng)建目錄結(jié)構(gòu)在dfs.namenode.name.dir配置的路徑下創(chuàng)建current目錄、edits目錄等生成VERSION文件里面記錄了namespaceID、clusterID、blockPoolID等標識生成初始的fsimage空集群的元數(shù)據(jù)快照。這些標識太重要了。clusterID標識的是整個HDFS集群namespaceID標識的是命名空間blockPoolID標識的是數(shù)據(jù)塊池。DataNode注冊到NameNode時會帶上自己理解的clusterID。如果DataNode磁盤上保存的clusterID跟NameNode當前的不一致DataNode就會被拒絕注冊?!案袷交 钡母哳l原因總結(jié)起來就這幾類我給新手排障會照著這個表查失敗現(xiàn)象根因解決方式Permission denied元數(shù)據(jù)目錄屬主不對chown到啟動用戶Directory is not empty之前格式化過殘留舊元數(shù)據(jù)確認無價值后清空目錄或指定新目錄啟動進程秒退堆內(nèi)存參數(shù)不合理檢查HADOOP_HEAPSIZE / HADOOP_NAMENODE_OPTSjava.io.IOException: Cannot create directory父目錄不存在手動創(chuàng)建目錄并賦權(quán)格式化和上電后DataNode找不到集群clusterID不一致要么備份后統(tǒng)一清空DataNode數(shù)據(jù)目錄要么手動同步clusterID補充一個很容易忽略的細節(jié)格式化過程會輸出一行Storage directory ... has been successfully formatted但這只是針對這臺NameNode的存儲目錄格式化了。在HA場景下你只格式化了一臺NameNode的元數(shù)據(jù)存儲另一臺必須通過-bootstrapStandby來同步不能直接在第二臺上再執(zhí)行一次-format。如果你在第二臺NameNode上重新格式化了兩臺NameNode會生成不同的clusterID整個集群的DataNode都會因為clusterID對不上而拒絕注冊。這是我在生產(chǎn)環(huán)境見過最慘烈的一次事故大家務必引以為戒。4.2 啟動失敗的三類場景與完整排查鏈路啟動階段是故障高發(fā)區(qū)。下面這三類場景是我在幫人排查時遇到最多的。場景ADataNode起不來日志反復報“Incompatible clusterIDs”。DataNode啟動時會比對本地存儲的clusterID和NameNode廣播的clusterID。為什么會不一致因為你格式化過NameNode多次每次格式化都會生成新的clusterID而DataNode的數(shù)據(jù)目錄里還保留著上一次的clusterID。排查鏈路# 1. 看DataNode日志 tail -100 /opt/hadoop/logs/hadoop-hdfs-datanode-node.log # 日志里會出現(xiàn)類似 # Incompatible clusterIDs in /data/hdfs/datanode: # namenode clusterID CID-xxx # datanode clusterID CID-yyy # 2. 確認兩個clusterID確實不一致 cat /opt/hadoop/logs/../dfs/name/current/VERSION cat /data/hdfs/datanode/current/VERSION # 3. 解決備份數(shù)據(jù)目錄后清空或者手動改clusterID # 清空數(shù)據(jù)目錄注意確認無未備份數(shù)據(jù) rm -rf /data/hdfs/datanode/current/*場景BNameNode進程起來沒幾秒就退出日志無異常。這是最典型的資源問題。NameNode默認堆內(nèi)存是1GB元數(shù)據(jù)一多就OOM。老手一般會在hadoop-env.sh里顯式設置HADOOP_NAMENODE_OPTS-Xmx8g。但這只是第一層你還要確認NameNode所在的機器物理內(nèi)存夠不夠以及是否被其他進程搶占了。我見過一個案例兩臺機器都裝了很多組件NameNode堆內(nèi)存給了8GB但機器總共只有16GB且JVM除了堆還要用堆外內(nèi)存和元空間實際占用超過物理內(nèi)存后系統(tǒng)開始瘋狂swapNameNode的響應越來越慢最終被ZKFC判定為假死觸發(fā)切換。反過來另一臺機器也遇到同樣問題兩個NameNode開始反復互切整個HDFS的讀寫都斷了。場景C節(jié)點間通信失敗最隱蔽的是防火墻。Hadoop集群的節(jié)點間通信端口特別多NameNode RPC 8020、DataNode RPC 9866、ZK 2181/2888/3888、JournalNode 8485……有些企業(yè)安全基線會要求只開放特定端口于是你經(jīng)常遇到這樣一種情況進程都活著服務看起來正常但就是連不上。排查鏈路很標準# 1. 先測基礎連通性 ping node1 telnet node1 8020 # 2. 如果通則看端口監(jiān)聽 netstat -anp | grep 8020 # 3. 如果監(jiān)聽正常但外部不通基本就是防火墻 systemctl status firewalld iptables -L -n # 或者云安全組的入站規(guī)則注意很多云廠商的安全組在控制臺上看起來放行了端口但節(jié)點內(nèi)部自身的iptables規(guī)則沒同步也會出現(xiàn)“控制臺顯示放行但實際不通”的詭異現(xiàn)象。檢查的時候兩邊都要看。4.3 元數(shù)據(jù)保護的經(jīng)驗格式化、啟動只是元數(shù)據(jù)話題的冰山一角。真正到了生產(chǎn)NameNode元數(shù)據(jù)就是你的命根子。HDFS元數(shù)據(jù)由兩部分組成fsimage是元數(shù)據(jù)的持久化快照edits是每次寫操作的增量日志。NameNode每次啟動都會把fsimage加載進內(nèi)存再重放edits里的增量事務。這里有個關(guān)鍵概念checkpoint。舊版Hadoop用SecondaryNameNode定期合并fsimage和edits把合并后的新fsimage傳回NameNode。但在HA架構(gòu)里這個角色已經(jīng)被Standby NameNode替代了。Standby節(jié)點持續(xù)從JournalNode讀取edits日志并應用同時周期性執(zhí)行checkpoint生成新的fsimage。這個機制給運維的啟示是不要對Standby NameNode做任何停機操作它正在承擔checkpoint職責。一停fsimage和edits的合并就會停滯edits會無限增長最終可能把磁盤寫滿fsimage備份必須定期做。最簡單的方式是把fsimage目錄掛到獨立的存儲或者用cron定期打包到一個安全位置數(shù)據(jù)盤和數(shù)據(jù)盤之間要物理隔離。NameNode的元數(shù)據(jù)目錄和DataNode的數(shù)據(jù)目錄放在同一塊磁盤上是災難——DataNode磁盤寫滿會導致整個文件系統(tǒng)讀寫異常間接把NameNode拖掛。5. 生態(tài)整合完成之后日常運維怎么排查問題5.1 先看日志再看監(jiān)控最后才碰配置這是我做運維排查奉行的鐵律順序不能亂。很多人一遇到集群異常第一反應就是懷疑配置錯了開始翻配置文件、改參數(shù)。這個習慣很不好——配置在集群運行期間被外部惡意改動的情況極少更多時候配置沒變是某個運行條件變了。正確的排查順序是先看日志定位現(xiàn)象再對照監(jiān)控找規(guī)律最后才去懷疑配置。Hadoop生態(tài)各組件的日志位置和重點我用一張表整理出來排查的時候照著看組件日志位置排查時重點看的日志NameNode$HADOOP_HOME/logs/hadoop-hdfs-namenode-*.log啟動異常、元數(shù)據(jù)操作、checkpoint過程DataNode$HADOOP_HOME/logs/hadoop-hdfs-datanode-*.log塊上報、數(shù)據(jù)復制、磁盤異常ZKFC$HADOOP_HOME/logs/hadoop-hdfs-zkfc-*.log選主過程、鎖競爭、腦裂防護動作Zookeeper$ZK_HOME/logs/zookeeper-*.out會話超時、選舉日志YARN ResourceManager$HADOOP_HOME/logs/yarn--resourcemanager-.log調(diào)度日志、容器分配、隊列狀態(tài)YARN NodeManager$HADOOP_HOME/logs/yarn--nodemanager-.log容器啟動失敗、本地磁盤管理拿一個我給朋友真實排查過的案例來講。某次集群突然變卡所有作業(yè)都在排隊。我第一反應沒有去改YARN配置而是按順序查看ResourceManager日志發(fā)現(xiàn)隊列里全是ACCEPTED狀態(tài)的任務但CONTAINER一直創(chuàng)建不出來看NodeManager日志發(fā)現(xiàn)大量“Container killed on request”和“Local dir is full”字樣順藤摸瓜查磁盤使用率發(fā)現(xiàn)NodeManager的本地目錄所在分區(qū)使用率到了99%。根因根本不是配置問題是磁盤滿了。YARN在調(diào)度容器時發(fā)現(xiàn)本地目錄寫不進去只能反復殺掉容器導致集群看起來是“卡死”實際上是“磁盤被寫滿后的自我保護”。清理掉日志和臨時文件后集群馬上恢復了。這個案例完美說明了“日志定位現(xiàn)象”的價值。如果你一上來就懷疑隊列配置不對把隊列容量參數(shù)調(diào)來調(diào)去不僅解決不了問題還可能把原來正常的調(diào)度策略搞亂。5.2 資源層面的排查內(nèi)存、磁盤、網(wǎng)絡、連接數(shù)企業(yè)級運維中資源和連接層面的問題占比最高我把高頻問題整理成速查表問題現(xiàn)象直接原因檢查方法作業(yè)提交后一直ACCEPTEDYARN隊列資源被大任務占滿ResourceManager Web UI里看隊列資源容器啟動即失敗NodeManager本地目錄無空間df -h 查看NodeManager日志DataNode進程消失文件句柄數(shù)超過系統(tǒng)限制ulimit -n / /etc/security/limits.conf大量連接進入TIME_WAIT短連接過多端口耗盡ss -s 查看socket統(tǒng)計節(jié)點失聯(lián)NameNode報heartbeat timeout網(wǎng)絡抖動或GC暫停過長查看NameNode和DataNode日志時間線HDFS寫入超時數(shù)據(jù)目錄所在磁盤IO飽和iostat -x 1 觀察await值內(nèi)存這塊再展開一點。很多人只知道YARN有yarn.nodemanager.resource.memory-mb這個參數(shù)卻不知道它還分physical memory和virtual memory兩層限制。默認情況下NM會檢查容器使用的虛擬內(nèi)存超過配置的yarn.nodemanager.vmem-pmem-ratio倍數(shù)后直接殺掉容器。這個比例默認是2.1如果容器內(nèi)用了大量native內(nèi)存比如Python進程、跑JNI的庫很容易觸發(fā)誤殺。日志里你會看到一行Container [pidxxx] is running beyond virtual memory limits遇到這種先別急著調(diào)大比例應確認容器是不是真的內(nèi)存泄漏確認沒泄漏后再顯式調(diào)高yarn.nodemanager.vmem-pmem-ratio或關(guān)閉該檢查yarn.nodemanager.vmem-check-enabledfalse不推薦直接關(guān)。5.3 面試題背后的原理就是排查思路的底層邏輯熱搜詞里有個“hadoop面試題”我多說兩句。大家準備面試時背的那些題表面上是考概念實際上是在考你對系統(tǒng)運行機制的理解。面試題和運維排障是同一套底層的認知模型。舉個例子。面試官問“NameNode掛了怎么辦”你會怎么答背出的答案是“HA自動切換Standby接管”。但這背后至少要有幾層更深的認知如何判斷NameNode“掛了”是進程不存在還是ZKFC判定它心跳丟失如果是網(wǎng)絡分區(qū)導致的假活fencing機制怎么防止雙ActiveStandby接管后之前未提交的事務怎么辦答案在JournalNode的edits日志里客戶端怎么知道該連新的Active靠的是failover proxy provider里配置的邏輯名稱。這些問題每一個都對應真實的故障排查場景。我在4.2節(jié)、5.1節(jié)講的案例本質(zhì)上就是在回答這類面試題。所以我不建議你死背面試題如果你能親手復現(xiàn)一次NameNode failover的全過程很多面試題不用背自然就會了。6. 從學習環(huán)境到企業(yè)環(huán)境的最后一公里6.1 開發(fā)環(huán)境搭建Windows與容器化實踐細節(jié)很多人在“windows下載hadoop”這一步栽過跟頭。Windows上裝Hadoop確實能跑但要改bin目錄下的winutils.exe要處理路徑分隔符、權(quán)限模擬等問題體驗很折騰。我個人的經(jīng)驗是Windows環(huán)境我只用來做三件事——看源碼、跑IDE代碼調(diào)試、連接遠程集群測試客戶端代碼。真正的本地集群驗證一律用Docker Desktop。在Docker里搭Hadoop時我常用這樣的參數(shù)組合docker network create --driver bridge hadoop-net # 啟動一個NameNode節(jié)點 docker run -d --name namenode \ --network hadoop-net \ -p 9870:9870 \ -v /data/hadoop/namenode:/hadoop/dfs/name \ -e CORE_CONF_fs_defaultFShdfs://namenode:8020 \ -e HDFS_CONF_dfs_namenode_http-addressnamenode:9870 \ -e HDFS_CONF_dfs_replication2 \ hadoop-docker-image # 啟動兩個DataNode節(jié)點 docker run -d --name datanode1 \ --network hadoop-net \ -v /data/hadoop/datanode1:/hadoop/dfs/data \ -e CORE_CONF_fs_defaultFShdfs://namenode:8020 \ hadoop-docker-image用環(huán)境變量方式傳配置是容器化部署Hadoop的一個實用技巧。Hadoop官方鏡像和社區(qū)鏡像大多會支持把xxx_yyy格式的環(huán)境變量自動轉(zhuǎn)成配置文件里的屬性不用手動進容器改XML。這樣疊加Docker Compose一套三節(jié)點集群的啟動腳本就非常清爽了。如果是“hadoop開發(fā)環(huán)境搭建頭歌”這類在線實驗平臺我的建議是拿來練練手可以但別依賴。在線平臺幫你把環(huán)境都準備好了你反而缺失了從裸機搭建、遇到問題再解決的過程。而這個過程才是進階的關(guān)鍵。真正區(qū)分“會用”和“懂”的永遠是你能不能從零到一搭出一套跑得起來的、你自己完全理解每一行配置的系統(tǒng)。6.2 用一次完整的故障演練檢驗你是否真的進階了最后分享一個我特別推薦的學習方法主動制造一次故障然后嘗試自己修復。具體做法很簡單。挑一個維護窗口在測試集群上按照下面這個清單一步一步來手動kill掉Active NameNode進程觀察集群行為看ZKFC能否在預期時間內(nèi)完成切換再kill掉一個DataNode進程觀察HDFS的副本復制機制如何工作看剩余節(jié)點能否正常提供讀寫停掉全部ZK節(jié)點觀察HDFS的反應——它不會立刻掛但你會發(fā)現(xiàn)failover功能失效了在YARN上提交一個超內(nèi)存作業(yè)觀察容器被殺的過程理解資源隔離的作用故意寫錯一處配置比如把DataNode的目錄指向不存在路徑觀察啟動失敗日志練習定位問題。這個演練的價值在于它逼著你在“沒有教程指引”的情況下面對真實故障逼著你親手翻開日志、比對狀態(tài)、修改配置。你會經(jīng)歷第一次恐慌然后學會冷靜最后建立一套屬于自己的排查直覺。我在帶人時發(fā)現(xiàn)一個規(guī)律愿意做這種演練的人面試時談吐和對系統(tǒng)的理解能力跟只刷教程的人完全不在一個量級。原因很簡單——你對系統(tǒng)的信任感不會來自看了多少篇文檔而是來自你親手搞壞過它、再親手把它修好的次數(shù)。Hadoop這條路從入門到熟練中間沒有捷徑但也沒有想象中那么艱難。裝一套環(huán)境拆一個組件讀一段日志修一個故障每一步都算數(shù)。希望這篇沉淀下來的實戰(zhàn)經(jīng)驗能讓你少踩幾個我已經(jīng)替你踩過的坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色婷婷久久| 久久久久久激情| 99九九视频| 成人永久免费视频在线观看| 免费做A爰片77777| 色色色欧美| 丁香五月aV| 色婷婷亚洲在线观看| 精品久久久人妻| 青草久久五月婷伊人| 影音先锋五月天婷婷丁香在线观看| 五月综合激情网| 狠狠干天天内射| 黄色aa观看aaguochan| 色五月激情| 色丁香五月婷婷在线| 日韩九区| 波多野结衣AV无码Porn| 色综啪啪| 亚洲AV日韩在线观看| 婷婷精品免费久久| www.久久久.com| 五月天婷婷丁香视频| 久久婷婷五月天激情四射| 人妻丰满精品一区二区A片| 天天色天天日天天舔| 久色中文| 色99在线视频| 婷婷色网站| 五月婷婷中文字幕| 五月婷婷之婷婷| 婷婷黄色五月天在线视频| 99久久精品色老| 狼人伊人干| 26uuu国产| 五月天婷综合| 九九色播五月丁香| 欧美日朝成人| 99视频精品视频| 99热最新| 六月婷婷激情图片| 色色色综合色| 丰满人妻一区二区三区| 9999久久久久| 国产精品一区在线观看你懂的| 婷婷色五月婷| www.91婷婷| 天天日,天天射,天天舔| 99热精品在线在线| 五月婷婷综合久久| 婷婷激情图片| 国产偷人爽久久久久久老妇APP| 中文字幕在线日亚洲9| 五月激情小说网| 97好吊操| 日本婷色| 九月丁香婷婷综合| 人人爱人人草| 无码激情AAAAA片-区区| 久久久高清| www.色五月| 伊人久久婷婷| 九色成人AV在线| 欧美性生交xXxX久久久| 涩玖玖免费视频| 五月激香蕉网| 97色色色| 婷婷五月丁香基| 五月人妻婷婷| 夜夜撸夜夜骑| 人妻22p| 99热亚洲| 91国产精品视频播放| 久久久久视剧HD| 99re在线免费视频| 综合激情五月丁香| 婷婷六月五月| www.激情五月| 影院久久久| 操逼巨乳91| 五月婷婷久久大香蕉| 亚洲AV成人片无码网站| 丁香婷五月| 婷婷丁香激情综合色情| 五月天婷婷激情在线色图| 五月天桃色深爱网| 久久九⑨| AV天堂淫乩| 翔田千里无码| 99国产小视频| 婷婷综合色五月天| 婷婷六月色情| caobi四区| 色婷婷久久9.com| 中文字幕日韩成人| 亚洲综合色丁香五月天| 99国产精品久久久久久久久久久| 久久婷婷五月综合97色一本| 欧美啄木乌丝袜人妻系列| 丁香六月色婷婷| 一区二区你懂的| 婷婷丁香午夜综合影视| 五月丁香六月婷婷中文版| 婷婷五月激情图片| 五月成人丁香av91| 五月丁香操婷逼| 99色视频| 国产色色在线| 99碰网站| 九九色热视频| 色九亚洲| 色五月大香蕉| 五月天激情无码高清| 99热在线只有精品| 色五月情| 亚洲精品乱码久久久久久按摩观| 色色亚洲视频| 天天肏在线| 狼人婷婷综合| 欧洲激情精品婷婷| 夜夜嗨一区二区三区直播内容| 久久精彩视频99| 香蕉综合在线| 久久久久亚洲AV成人无码电影| 欧美成人AAA片一区国产精品| 黄色五月婷| 翔田千里aV中文字幕| 天天摸天天透天天舔| 国产AV熟妇人震精品一品二区 | www.minyis.com【JT】实力收量可预付QQ2101460746 | 欧美日韩99| 99综合一区| 97婷婷色| 五月丁香手机在线| 婷婷丁香成人| 色婷丁香| 色婷久久| 亚洲av网站| 激情五月天视频| 婷婷五月天久草在线| 99在线观看视频免费| 五月婷婷色激情| 丁香婷婷久久| 五月丁香婷婷在线综合蜜桃| 97高清国语自产拍| 综合激情网| 天天干天天干天天干天天干天| 月丁香久久久| 亚洲天堂色色| 色99热| 91久久婷婷人人澡草| 亚洲激情AV| 在线看片av| 狠狠干,狠狠操| 在线看AV| 丁香五月天在线观看| 婷婷伊人欧美| 97热精品| 婷婷97| 激情五月丁香五月| 青青操avbb| 丁香久久| 久久在这里有精品| 丁香五月婷婷啪啪视频| 亭亭玉月丁香| 色吧婷婷| 国产精产国品一二三在观看| 国产一二三四五六七八视频| 激情五月综合第一页| 99亚洲视频| 五月天色综合| 日本久久网| 婷婷丁香高潮了| 亚洲国产精品二二三三区| 91热er| 国产精产国品一二三在观看| 九九这里都是精品| 精品久色| a级毛片一区二区免费视频| 久久婷婷成人综合色怡春院| 99ri精品| 天堂美国久久| 噜噜五月天综合| 激情婷婷狠狠干综合| 久热久色| 思思热99er| 天天爽夜夜爽夜爽精品| 生活片五区| 性爱视频99| 玖玖伦理电影| 日韩精品无码AV| 国产午夜精品一区二区| 这里只有精品99视频| 国产在线激情视频| 激情丁香社区| 这里只有精品视频一区| www.婷婷亚洲基地| 五月婷婷很很色| 亚洲九九视频| www。五月天。com| 六月丁香综合| 操B无码视频国语| 婷婷综合一二三| 久久99视频| 中文成人在线| 欧美人人操| 久久狠色噜噜狠狠狠狠97| 草榴视频黄色网| 婷婷精品免费久久| 日日夜夜久| 91超级碰碰碰| 久久一级片| 色99在线| 91丨九色丨丰满人妖| 五五月丁香花激情综合网| 97色综合视频| 夜精品无码A片一区二区蜜桃| 激情五月视频在线婷婷| 99在线观看视频蜜臀| 亚洲色基地| 亚洲色婷婷五月天| 国产日韩欧美性爱| 婷婷五月天BBw| 婷婷五月丁香六月| 五月婷婷色播| 亚洲av网址| 欧美搡BBBBB摔BBBBB| 99久超碰| www.婷婷六月天| 天天综合.com| 激情婷婷综合| 激情五月天婷婷久久久久久久久久久| 超碰在线人妻| 91碰| 婷婷伊人五月丁香天堂网| 这里只有精彩视频| 亚洲热久久| 五月六月婷| 五月婷婷成人w| 香蕉久久国产av一区二区| 一区二区成人电影免费播放| 亚洲情综合五月天| 校花娇喘呻吟校长陈若雪视频| 日韩另类在线观看| 亚洲午夜电影| 欧洲一区二区| 日韩九区| 五月婷婷激情五月| 大学生高潮无套内谢视频| 在线99热| 九九热最新地址| 中文字幕AV网址| 99热精品免费| 青青草原亚洲天堂| 天天操比比| 婷婷色在线观看| 思思久久精品| 久久精品系列| 色婷婷丁香五月| 大香蕉婷婷丁香天堂AV| 五月丁香| 五月天久久久| 九色综合网| 大地9中文在线观看免费高清 | 婷婷五月天奸女| 九一99| 日日插日日干| 精品99视频| 五月婷婷综合在线| 免费AV播放| 另类精品视频在线观看| 狠狠干五月天| 九九亚洲天堂| 久久五月婷婷视频| 久久综合99| 亚洲色综合| 成人精品在线| 五月色丁香激情| 五月天激情Av| 婷婷色综合| 超碰免费大香蕉| 91色五月| 午夜69成人做爰视频| 中文字幕精品无码一区二区| 激情性爱婷婷| 五月天婷婷久久日| 欧美成人网99网| 狠狠干在线| 五月丁香影院| 亚洲乱码日产精品BD| 婷婷色色网站| 色色色色综合网| 伊人五月婷婷| 婷婷五月天综合在线| 五月婷婷综合视频| 激情五月天天| 激情五月天 婷婷| 凹凸7777操操操| aaaaaa片| 无人精品在线视频| 亚洲欧美婷婷五月色综合| 影音先锋女人AA鲁色资源| 中国无码av| 黄久久久| 激情久久五月网| 久久人妻久久| 99色综合| se99热久久一本| 免费视频WWW在线观看网站| 99在线热视频| 天堂成人A片永久免费网站| 婷婷丁香五月综合网| 色五月天天| 欧美草久久五月天91| 色婷婷中文在线| 五月丁香婷婷综合| www久久艹| 激情精品久久| 九月丁香| 超碰资源在线| 5月婷婷五月天| 色婷婷影院| 思思热99er| 亚洲国产精品成人免费一区久久久在线观看AAAA | 婷婷九月丁香天堂丁香天堂| 情欲综合网| 一本色道久久综合狠狠躁小说| 免费视频99| 殴美日韩成人| 国产欧洲欧洲精品久久| 天天日天天肏天天奸| 综激情网| 五月天亚洲综合网| 精品国婬伦V无码久久久| 成人片在线播放| 丁香五月婷久久| 极品人妻VIDEOSSS人妻| 99噜噜噜在线播放| 91操人| 人人操婷婷| 久久er这里只有精品| 天堂久久婷婷| 五月婷久久草| 欧美婷婷精品激情| 五月婷婷丁香五月| 五月婷亚洲精品| 99国产在线精品视频| 婷婷综合| 六月婷婷中文字幕| 噜综合| 人人综合久| 97热超碰| 久久这里只有精品99| 99九九这里有免费视频| 婷婷五月六月激情| 182tv992tv人之初午夜免费观看| 午夜国产精品AV在线播放| 拍真实国产伦偷精品| 久久久婷婷| 免费婷婷| 国产精品成人在线| 日本综合久久| 国产精品久久久久久久久久免费 | 大香蕉久久草| 激情五月丁香亭亭| 色吊丝永久访问网址| www.婷婷五月天.com| 九九精品碰| 韩国三级五月天婷婷。| 婷婷五月综合色中文字幕| 夜夜躁爽日| 五月婷婷激情啪啪| 久久Xx| 人妻视频在线| 中文av网站| 久久亚洲A| 91蜜桃婷婷狠狠久久综合9色| 婷婷综合激情| 99国产精品久久久久久久久久久| 婷婷五月天香蕉| 97人人干。| 五月丁香六月婷婷成人电影| 色五月婷婷婷婷婷婷婷婷婷婷| 婷婷爱五月| 综合综合色色| 色婷婷亚洲综合网站| 天天插天天日| 欧美综合婷婷欧美综| 欧美性生交XXXXX无码小说| 国产寻花在线| 五月丁香色婷基地综合久久| 五月婷视频| 99re思思精品视频在线观看| 青吴乐视频| 色五月激情网| 丁香激惜男女| 久9精品| 色色色综合网| 99re思思精品在线观看| 激情99热| 婷婷影院A成人| 蜜乳中文字| 99久re热| av高清无码| 婷婷五月激情图片| 丁香五月激情六月| 伊人色综合影院视频| 情欲禁地| 久久激情综合| 看久久性爱99视频| 99热精在线九九久久保| 97碰碰碰| 99免费超碰在线| AV人人操| 九九黄色网| 五月丁香婷在线| 六月丁香停| 九月婷婷久久| 丁香五月最新地址| 激情五月婷婷色播网| 99爱99操| 禁片二区| 一本道在线电影| 丁香五月婷婷五月天| 久久婷婷丁香五月一二三| 久久综合综合综合| 少妇搡BBBB搡BBB搡毛茸茸| 婷婷国产成人| 五月婷婷影视| 9有码中文| 久久久久人妻中文| 婷婷爱在线观看| 九九黄色网| 激情99热| 97在线/日本| 色色色成人网| 有码一区二区三区| 久久丁香五月天| www.色五月| 97丁香花五月天激情小说| 99精品偷拍视频| 国产av第一专区| 五月婷在线色视频| 欧美情月伍月天| 色丁香六月| 精品网站99| sewuyue第四色| 超碰免费在线| 色玖玖综合| 这里只有精品99视频| 丁香五月婷婷久久综合激情网 | 婷婷六月丁| www.夜夜| 99精品热视频| 久久黄色片| 开心婷婷五月| 少妇被下春药玩弄A片| 伊人久久艹| 五月丁香综合成人社区| 日日操,夜夜撸| 91一起操| 香蕉综合在线| 天天玩天天摸| 狠狠肏综合网| 99色视频在线观看| 米奇影视五月天| 婷婷夜夜夜夜| 色色色色色网站| 激情色情五月天| 婷婷五月中文字幕国产| www.99热. com这里只有精品| 97色五月天| 婷婷五月天亚洲天堂| 五月天久久婷婷婷| WWW.99热| 99无码精品| 亚洲成人中心| 99视频内射三四| 97干97色| 六月激情网| 99综合视频一体| 亚洲精品无AMM毛片| 色色欧美色色| 97人人操人人操人人操人人| 一起草无码| 4399在线日本A片| 婷婷五月天堂网| 狠狠88综合久久久久噜噜噜| 99热在线中文字幕| 婷婷五月丁香六月综合网| 九九在线精点品| 亚洲综合在线播放| 欧美经典片免费观看大全| 国外亚洲成AV人片在线观看| 丁香五月综合激情久久潮喷| 99精品久久久| 色高清无码视频| www.国产色| 97综合在线| 婷婷激情四射| 日韩精品一曲二曲三曲四曲五曲| 免费观看亚洲AV片| 天天舔天天摸天天透| 婷婷五月综合网| 色色五月天婷婷| 99国产精品久久久久久久久久久 | 九色porny在线观看激情四射| 成人短视频在线免费观看| 久久伊人五月天| 天天天天天色| 影音先锋四区| 99在线视频网址在线观看| 丁香五月婷婷五月| 久久这里有精品99| 久久99视频| 婷色天堂| 狠狠操狠狠爱| 欧美丁香婷婷五月天| 久操操| 91九色白丝| 日本系列_4页_777FP| 婷婷五月天 偷拍| 久久a热| 五月天色色色| 99综合自拍| 成 久久| 欧美婷婷丁香五月社区| 久9热插入| 天天激情5月天亚洲| 婷婷六月视频| 国产成人综合网| 九九热91| 五月停停丁香| 69精品人人人人人人人人人| 亚洲人妻av| 五月丁香六月婷婷国产视频| 专区无日本视频高清8| 色婷婷偷拍| 欧美97p| 婷婷丁香18| 99热久久日本| 九九精品网| 成人国产欧美大片一区| 五月花婷婷在线精品视频| 99热色精品| WWW色五月| 立川无码av| 久操无码| 性爱网五月天| 91九色在线视频| 黄色成人AV在线| 激情网开心网| 青柠影视免费高清电视剧 | 国产高清精品色| 久久思思热| 激情五月综合| 天天搞天天爽| 六月丁香啪啪| 色吧五月婷婷| 99啪啪| 91干| 久久aaaa片一区二区| 久久总和99| 日韩AV成人电影| 激情五月天色爱| 99ER热精品视频| 综合欧美五月婷婷| 91精品久久久久久77777| 久热 91| 天天草天天爽| 激情爱爱网站超大免费| 五月婷婷色播| 久久网日本| 亚洲在线操| 操碰99| 在线看片av| 久久资源网五月婷| 婷婷五月色| 人妻狠狠操| 激情五月综合网| 大香蕉AV在线| 大香蕉久久| WWW.五月天9999| 最近中文字幕2019视频1| 夜夜涩涩涩| 亚洲精品久久久无码| 五月的丁香六月的婷婷| 综合网精品99| 丁香婷婷成人网站| 91美女被操| 久久久噜噜噜久久人妻| 婷婷舔| 99久久国产宗和精品1上映| 六月丁香婷婷在线波多| 色五月中文字幕| 国产婷婷综合在线免费视频| 五月天五月色婷婷综合| 丁香六月婷婷缴情欧美| 婷婷五月六月| 97人人草| 人妻激情久久| 26UUU欧美| 五月天天综合| 开心五月婷婷| 热热久久99| 婷婷丁香五月天影院| 日本99视频| 亚洲综合视频一下| 噜噜视频| 日韩有码一区| 丁香六月色婷婷| 久久丁香五月| 欧美性生交XXXXX无码小说| 婷婷五月天成人网站| 丁香婷婷色情| 风流少妇A片一区二区蜜桃| 五月丁香在线看| 九九热九九| 伊久大香蕉| 久久婷婷亚洲| WWW.天天日| 欧美成人在线观看| 日本欧美在线| 日日日日操| 婷婷久久五月| 4399在线观看免费高清毛片| 99热在线精品观看| 99国产在线| 激情 五月 婷婷 丁香| 99热这里是精品| 99丁香五月婷| 在线天堂9| 国产高清av黄色看片| 婷婷久月| 丁香六月情| 欧美噜噜久久久XXX| 伊人影院久久网| 婷婷色综合| 婷婷六月综合基地| 亚洲综合视频网| 日本成人噜噜噜噜噜| 久久婷网| 五月天激情黄色网址| 丁香六月婷婷久久综合| 天天搡日日搡aaaaⅩ| 青草激情在线| 欧美三级视频下载| 天天日天天久久青青| 婷婷色网站| 天天噜噜| 五月天婷婷在线播放免费| 噜一噜免费视频| 丁香婷婷色九月| 另类图片五月天激情| 少妇高潮呻吟A片免费看软件| 亚洲中文字幕网| 狠狠搞狠狠操| 九九热思思| 开心五月激情五月丁香五月婷婷| 国产伊人五月天| 亚洲综合1024| 色婷婷操逼| 三级毛片7979| 2020日日干| 狠狠色九月| 影音先锋一区二区资源站| 少妇熟女视频一区二区三区| 狠狠大香婷婷爱| 六月婷婷网| 色色综合五月| 综合99在线| cao视频,现在观看| 丁香六月天婷婷| 99精品视频播放| WwW色婷婷| 丁香婷婷九月在线| 五月婷婷性爱网| 桃色五月婷婷| 亚洲情欲久久| 天久久久久| 色色影院黄大片| 丁香五月激情月| 天天色综| 婷婷伊人久久| 婷婷五月中文在线| 婷婷5月开心6月| 丁香五月婷婷乱| 伊人午夜综合色啪| 免费视频99| www.久久99热地址发布| 五月丁香婷婷色| 激情五月婷婷网| 色五月综合网| 狠狠五月婷婷| 99视频在线观看视频| 99热销国产这里有精品| 亚洲成人免费电影| 五月天播播综合| 这里只有九九精品| 久久狠狠干| 久久网日本| 丁香婷婷大香蕉| 久久人妻超碰一区| 久久99精品久久久久久三级| 91中文在线| 91啪级电影| 婷婷五月av| 欧美人妻一区二区| 久久婷婷五月天丁香| 五月情涩综合婷婷| 天天情天天狠天天透| 夜夜操夜夜姧| 色综合久久88色综合天天99| www婷婷| 天天射影院| 碰久久精品w| 大香蕉五月天婷婷丁香91| 97亚洲色 torrent magnet| Www.婷婷五月| www99精品| 免费无码毛片一区二区A片 | 婷婷久久婷婷色五月| 蜜桃婷婷丁香| 五月丁香婷草| 国产永久一二一起草| 五月婷婷婷婷网| www.久久爱| 91se精品国产| 日本欧美在线| 婷婷色色欧美| 欧美经典片免费观看大全| 四季AV综合网| 丁香综合伊人AV| 五月丁香激| 色级停停| 婷婷香香五月| 九九热免费视频| 五月丁香六月婷| 婷婷激情四射| 综合久久五月天| 欧美综合五月丁香五月天| 超碰chaompinm| 99在线看视频| 九九综合精品| 超碰亚洲天堂| 丁香五月婷婷婷桃花影院| 婷婷丁香色五月天久久88| 五月天社区婷婷丁香社区| 欧美特大片黄| 婷婷激情伍月网| 色欲婷婷五月天丁香| www,黄色在线,con| 婷婷第六色| 久久久久亚洲AV成人无码电影| 中文婷婷狠狠| 内射丰满人妻| 蜜桃人妻无码AV天堂三区| 黄色五月婷婷| 国产综合婷婷| 五月天婷婷色综合| 毛片新网地| 五月天综合网| 丁香五月自拍| 久久免片| 丁香五月花| 综合激情五月四射婷婷| 丁香五月色| 色色色五月天婷婷| 成人欧美一区二区三区在线观看| 男女99免费视频| 97婷婷狠狠久久综合9色| 婷婷久久亚洲| 综合另类激情| 天天夜天天色天天| 5月丁香综合图区| 亚洲人妻一区二区| 五月婷丁香在线视频在线| 丁香九月婷| 久久激情五月网| 色99网| 潘金莲AAAAAAAAAA| 丁香五月天成人| 七月丁香五月婷婷在线| 成人狠狠成人狠狠成人狠狠成人狠狠 | 亚洲区1| 日夜夜久久| 久久久久久久,99精品视频| 99热这里只有在线| 色吊丝中文字幕| 五月丁香六月婷婷综合网站| 五月婷婷亚洲综合在线| 五月停停激情网| 亚洲电影中文字幕| 九九99久久| 日韩欧美老妇性视频91久久久| 九九热精品在线| 成人永久免费视频在线观看| 中文字幕永久免费| WWW.五月天9999| 欧美怡红院黄站| 九九久久视频| 激情亭亭五月| 丁香五月欧美成人| 久久五月丁香伊人青草| 狠狠色丁香乆乆| 亚洲综合激情五月| 91操片| 91碰碰| 色狠狠综合| 丁香五月123| 超碰AV在线| 五月婷婷视频啪啪美女| 亚洲AV成人无码精品| 色婷婷五月天久久| AV堂狠狠干| 欧美日韩二区在线| 狠狠插狠狠插| 五月激情啪啪| 国产成人综合亚洲| 超碰在线9| 婷婷伊人无码| 婷婷综合另类| 深爱激情丁香| 午夜电影网VA内射| 人妻九九九九| 日本色色色色色色色色一色二色| 狠狠人人婷婷| 狠狠色婷婷7| 日韩三级视频一区二区| 色婷婷av在线观看| 天天综合网亚洲综合网| 新97人人上人人| www.wuyuetian啪啪| 九热...av| 激情五月丁香在线观看直播| 丁香久月婷| 亚洲亚洲人成综合网络| 97亚洲婷婷| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 天天热夜夜操| 久久婷婷亚洲| 久久XX日本综合| 美女五月天| 五月婷婷性| 六月婷婷深深爱| 五月丁香偷拍| 亚洲色无码A片一区二区麻豆| 色久影院| 五月婷婷自拍视频| 五月婷婷丁香啪啪| 婷婷色在线播放| 婷婷伊人久久无码色五月| 久久HD| www99热| 天天日人人| 国产精品久久..4399| 九一牛视频探花| 久久久久久久人妻| www.五月婷婷.com| 免费五月婷婷网| 六月丁香深深爱| 色婷婷久久综合| 久久超级碰视频| 琪琪布丁香社区激情五月天| 天天插天天爽| 亚洲国产成人在线| 色色com| 婷婷五月丁综合| 天天射射夜| 最新热中文字幕| 天天操婷婷| 免费AV黄在线播放| 婷婷激情五月吧| 2017狠狠干| 日本在线观看91| 大战熟女丰满人妻AV| 九九人人操| 伊人网大香| 俺去也综合| 日本va欧美va欧美| 丁香花五月天| 五月天激情在线视频| www.粉嫩av.com| 91久久久久久| 99精品自拍视频| 99久久精品色老| 狠狠第四色| 99噜噜| 九九热精品99| 色色婷婷婷丁香五月天| 97操碰98| 亚洲AV成人精品网站在线播放| 亚洲乱码日产精品BD| 国产做A爰片毛片A片美国| 色爱综合网| 色情成人五月天| 久99| caop视频| 六月婷婷色色网| 五月天丁香久久综合| 草了bav视频在线观看| 熟女人妻视频| 五月天婷婷青青草| 99热免费18| 噜噜五月天综合| 激情久久月| 东北黄色一级| 激情综合网址| 婷婷中文字幕| 婷婷在线五月天观看| 东北婷婷五月天| 天天干天天操| 五月天激情久久| 精品久久9| AV操操操| 大战熟女丰满人妻AV| A片天天| 天堂在线婷婷| 婷婷丁香九月| 天天日天天插天天操| 丁香五月天殴美激情| 午夜婷婷六月天| 亚洲精品婷婷| 丁香九月婷婷| 四川女人毛多水多A片| 五月婷久草| 欧美人久久| 午夜理论片最新午夜理论剧| 丁香五月亚洲综合| 天天做天天爽| 亭亭玉月丁香| 九月婷婷人人操人人舔人人爱| 色 五月 天 婷婷 丁香 九月| 婷婷五月天亚洲综合| 五月婷婷狠狠干| 日韩成人无码片| 五月丁香五月丁香| 久久五月天综合| 亚洲操操操| 五月婷婷色五月| 少妇性按摩无码中文A片| 综合性爱网| 亚洲色情在线| 五月色丁香婷婷综合| 操逼在线视频| av五月天婷婷丁香| 五月情四婷婷| 4399亚洲视频| 有哪些A片网站| 婷婷五月天黄色| 丁香五月成人婷婷| 青青草婷婷久久| 亚洲激情97五月天| 婷婷影院A成人| VfJxEwPH| 亚洲超碰在线| WWW.久久.COM| 激情AV| 另类小说五月天| 婷婷综合干| 婷婷综合性爱网| 无码少妇高潮喷水A片免费| 久久成人性爱| yazhoujiqingav| 狠色狠色综合久久| 亚洲五月天另类小说图片| caop在线| 亚洲成人网址在线观看| 美日韩成人| 二色av| 色国产五月| 五月丁香婷婷爱激情综合网| 影院久久久| 久久婷色| 久热婷婷| 啪到高潮激情丁香五月| 99久久www| 成人精品视频99在线观看免费 | 亭亭五月激情亚洲在线| 九九热这里只有精品一| 97人人操人人爽| 亚洲成人AV一区在线观看| 婷婷五月激情视频网| 开心五月丁香综合久久| 9久久精品| 91在线看免费 九九九九| 亚洲行行色色| 五月天婷婷综合网| 91狠狠综合久久久| 久久总和99| 九九综合图片网| www.俺去也com| 国产成人精品一区二三区熟女在线| 99热国产精品| 婷婷娱乐丁香综合网| 亚洲激情四射| 日本黄色精品| 五月婷婷激情综合视频| 大地资源色婷婷视频在线| 丁香五月色| 96精品久久久久久久久| www.夜夜爱.com| 婷婷五月色丁香在线看| 99ER热精品视频| 97亚洲色 torrent magnet| 亚洲永久免费| 超碰chaompinm| 丁香花五月天激情| 久99久热| 亚洲综合草草| 日韩精品999| 99热9999| 99综合在线| 五月丁香啪啪网| 久久性视频| 91久久婷婷| 色欲丁香| 日韩成人精品中文字幕| 91久久婷婷| 九九热视频在线观看| 丁香五月天信号| 日本一级黄色电影| site:wpjngj.com| 亚洲无AV在线中文字幕| 国产丁香五月天婷婷| 亚洲无AV在线中文字幕| 激情综合网亚洲色图| 超碰只有精品在线| 亚洲欧州色情在线观看| 亚洲乱啪| 99精品国产在热久久婷婷| 大香蕉伊人99| 天天日,天天干,天天操| 狠狠色丁香五月婷巨| 99∨VTV| 秋霞网在线观看理论91| 91在线精品一区二区| 月婷婷婷婷五月| 丁香花五月天激情| 婷婷五月天伊人| 日韩AAA| 欲求不满的人妻| 婷婷欧美综合| 久久九九怡红院| 亚洲欧洲中文日韩久久AV乱码| 婷婷五月天论坛| 丁香六月av| 久久亚洲激情五码| 成人色五月天| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 玖玖@三月天天丁香婷婷| 丁香六月婷婷综合缴| 久热九九| 国产精品久久久久9999小说| 青草青青草| 超碰人人草| 九色在线五月婷婷网址| 色色综合激情| 99er免费在线观看| 天天久久婷婷| 欧美日韩91| 五月天婷婷开心| 久久狠婷婷| 亚洲天堂99| 午夜福利8055| 97人人做| 色婷五月丁香久亚洲| 99超碰人人| 五月婷婷无码| 六月丁香啪啪| 久久综合26p| 另类图片激情五月| 日本色婷婷久久99精品91| av人人操| 亚洲激情网| 五月天综合视频| 人妻久久久久久久久妻久久久久久久久| 极骚大香蕉伊人| 色欲丁香| 午夜丁香五月天综合| 色五月婷婷色| 99久久高清视频| 午夜少妇在线观看视频| 五月激情天| 亚洲一区先锋影音| 九九热黄色| 91精品国产综合久久蜜芽解析速度| 九九99久久| 久久9热| 婷婷六月激情丁香| 色5月婷婷| www.精品久9| 91妻人人爽人人看片| 97色婷婷| 51国精产品自偷自偷综合| 九九亚洲小视频| 亚洲免费看片| 婷婷玖玖五月天| 婷婷伊人综合| 欧美电影在线播放| 99热亚洲精品| 丁香激情五月| 色婷婷裸体色性在线| 天天摸天天舔天天爽| 六月丁香啪啪啪| 欧美啪啪网| 天堂久热| 国产XXXX搡XXXXX搡麻豆| 欧美成人A片AAA片在线播放 | 激情综合丁香五月| 亚洲婷婷丁香五月视频| 丁香丁婷五月激情| 亚洲无码成人| 噜噜狠狠色综合久| 日本天堂网站99| 一级片操逼视频| 成人做爰A片免费看视频| 亚洲免费婷婷| 色综合久| 久久婷婷网站| 女人天堂AV| 日日操日日撸| www.99情趣网| 中国激情网| 亚洲国产精品二二三三区| 六月99天天婷婷激情综合| 色欲婷婷五月天丁香| 色五婷婷在线视频| 另类综合色| 亚洲激情五月天| 久久99热在线观看| 午夜丁香婷婷| 日狠狠| 人妻少妇色综合| 五月天色不卡| 五月婷婷九九热| 色综合天天| 久99在线视频| 九月婷婷久久久| 操一区| 天天插天天日| 99热97| 国产美女无遮挡裸体毛片A片| 婷婷激情五月综合| 国产精品日本一区二区在线播放 | 91碰碰碰| 天天日夜夜高潮| 五月天成人伊人| 五月丁香六月婷婷婷婷| 99视频只有这里精品| 天天插天天爱| 日良久久| 五月丁香六月婷| A片试看120分钟做受图片| 噢美99| 日本黄色精品| 中文字幕视频在线播放| 五月婷婷基地| 色婷婷欧美在线| 九九热视频思思| 五月天婷婷乱论小说| 翔田千里 50岁 无码| 天天爽人人综合免费7799| 国产做A爰片毛片A片美国| 123日本不卡在线| 亚洲九九99精品视频在线播放| 久久婷婷五月激情网站| 丁香五月综合网亚洲综合欧美狠狠 | 婷婷色丁香五月| 丁香婷婷基地| 99国产精品久久久久久久久久久| 亚洲AV无码电影| AV成人在线播放| WWW丁香五月| 色婷视频| 久久九九网| 日韩AV无码影片| WWW久| 婷婷欧美色| 九九精品在线观看视频6| 久久免费操| 亚洲乱码日产精品BD在线观看| 伊人激情网| 大香蕉av在线| 天堂AV在线看| 九九综合| 日韩人妻AV在线| 99亚洲精美视频在线观看| 综合激情五月四射婷婷| 精品国产va久久久| 26UUU欧美| 在线色婷婷| 亚洲综合在线伊人婷| 99色最新在线视频网站| 六月婷婷综合| 九九九九九九九九九九九九九九九九九九九在线视频 | va婷婷在线免费观看| 久久精品夜色噜噜亚洲a∨| 99热在线观看| 久久婷视频| www天天干| 九九人人精品| 亚洲无码影音| 亚洲超碰在线| 伊人久久五月天综合| 99热精品在这里| 熟女国产在线一区二区三区四区| 五月丁香六月婷婷啪啪综合| 亚洲情欲| 久久精品国产一区二区三区四区| 欧美 日韩 成人| 思思热在线精品视频网站| 天天摸天天肏| 婷婷激情97| 黄色99网| 九九色逼| 久草丁香婷婷五月天婷| 六月五月久久丁香| 五月天婷婷视频| www.com.色色| 开心五月色婷婷综合开心网| 久久五月天婷婷| 五月天婷婷綜合院| 17.c黄色| 狠狠精品干练久久久无码中文字幕 | 激情五月婷婷五月| 国产精产国品一二三在观看| 99re热视频这里只有综合亚洲| 五月丁香六月在线| 久久综合久色欧美综合狠狠 | 无码人妻一区二区三区免费九色| 狠狠干婷婷| 久操激情| 少妇搡BBBB搡BBB搡毛茸茸 | 婷婷的五月天另类视频| 人妻内射麻豆视频| 日日.c| 在线观看中文字幕亚洲| 狠狠干在线| 色婷婷av综合网| 99热这里只有国产精品| 538在线精品| 操操操操操操婷婷五月天| 国产综合色婷婷精品久久| 日本三级毛片| 亚洲天天操| 国产综合丁香五月天| 九九这里是免费的视频5| 日本强伦片中文字幕免费看| 97色色色色色色色| 99久久婷婷国产综合精品草原| 超碰国产av| 综合婷婷都市激情| 夜夜AVV| 天天天久久人人人合| 99久久综合狠狠综合久久| 色六月天| 99超碰欧美| 婷婷五月天在婷| 五月综合人妻| 五月丁香六月婷综合成人综合| 国产性爱在线| 婷婷丁香激情| 99操网站| 激情综合网色播五月| 超碰在线免费9|