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

淺談Yarn的任務(wù)管理與資源管理

運維
在排查 yarn 任務(wù)異常情況時,首先關(guān)注任務(wù)的狀態(tài)和錯誤日志,根據(jù)具體情況采取相應(yīng)的排查方法。調(diào)試和日志記錄是解決問題的重要手段,同時需要注意集群配置和資源限制等因素。如果問題仍然存在,尋求相關(guān)技術(shù)支持或社區(qū)的幫助可能也是一個好的選擇。

一、概述

1、Yarn基本概念

YARN(Yet Another Resource Negotiator)是Hadoop 2.x的一個計算框架,旨在解決Hadoop 1.x中的資源管理和任務(wù)調(diào)度問題。它的主要目的是將MR1 JobTracker 的兩個主要功能(資源管理和作業(yè)調(diào)度/監(jiān)控)分離,以便更好地支持多種應(yīng)用程序,而不是僅支持MapReduce。

YARN采用了全新的架構(gòu),包括ResourceManager、NodeManager和ApplicationMaster等組件。其中,ResourceManager負責(zé)整個集群中的資源分配,NodeManager負責(zé)管理并監(jiān)控節(jié)點上的容器,ApplicationMaster是一個Yarn的客戶端,用于管理當(dāng)前任務(wù)的調(diào)度。

ResourceManager(RM)

  • 負責(zé)整個系統(tǒng)的資源管理和分配,包括處理客戶端請求、啟動/監(jiān)控APP master、監(jiān)控nodemanager、資源的分配與調(diào)度
  • Scheduler: 根據(jù)容量、隊列等限制條件(如每個隊列分配一定的資源,最多執(zhí)行一定數(shù)量的作業(yè)等),將系統(tǒng)中的資源分配給各個正在運行的應(yīng)用程序。Yarn提供了多種直接可用的調(diào)度器,比如FIFO Scheduler、Fair Scheduler和Capacity Scheduler等。
  • Applications Manager: 負責(zé)管理整個系統(tǒng)中所有應(yīng)用程序,包括應(yīng)用程序提交、與調(diào)度器協(xié)商資源以啟動ApplicationMaster、監(jiān)控ApplicationMaster運行狀態(tài)并在失敗時重新啟動它等。

NodeManager(NM)

  • 負責(zé)接收處理來自ResourceManager的資源分配請求,分配具體的Container給應(yīng)用
  • 它還負責(zé)監(jiān)控并報告Container使用信息給ResourceManager
  • Container是一個動態(tài)資源分配單位,它將內(nèi)存、cpu、磁盤、網(wǎng)絡(luò)等資源封裝在一起,從而限定每個任務(wù)使用的資源量
  • NodeManager只負責(zé)管理自身的Container,它并不知道運行在它上面應(yīng)用的信息。負責(zé)管理應(yīng)用信息的組件是ApplicationMaster

ApplicationMaster

  • 應(yīng)用程序級別的,運行在Container中,管理運行在YARN上的應(yīng)用程序。
  • 向ResourceManager申請資源
  • 和NodeManager協(xié)同工作來運行應(yīng)用的各個任務(wù)
  • 與NodeManager通信以啟動或停止任務(wù)
  • 監(jiān)控所有任務(wù)運行狀態(tài),并在任務(wù)運行失敗時重新為任務(wù)申請資源以重啟任務(wù)

2、任務(wù)管理及資源管理

通過YARN的任務(wù)管理,可以將任務(wù)分配到不同的容器中,運行在不同的節(jié)點上,以滿足任務(wù)的不同需求。通過任務(wù)分配、任務(wù)監(jiān)控和任務(wù)狀態(tài)跟蹤等方式,確保應(yīng)用程序能夠在集群中順利運行。

同時,YARN的資源管理模塊負責(zé)管理Master和slave節(jié)點的資源,包括CPU、內(nèi)存和磁盤等資源。通過YARN的資源管理,可以實現(xiàn)有效的資源池管理,通過實現(xiàn)資源調(diào)度和資源分配策略,使得不同應(yīng)用程序能夠充分利用集群資源,優(yōu)化集群的性能。

因此,YARN的任務(wù)管理和資源管理至關(guān)重要。接下來我們詳細介紹yarn的任務(wù)管理及資源管理。

二、任務(wù)管理

1、任務(wù)運行流程

當(dāng)用戶向YARN中提交一個應(yīng)用程序后,YARN將分兩個階段運行該應(yīng)用程序:第一個階段是啟動ApplicationMaster;第二個階段是由ApplicationMaster創(chuàng)建應(yīng)用程序,為它申請資源,并監(jiān)控它的整個運行過程,直到運行完成,如下圖所示。

(1)作業(yè)提交

第1步:Client調(diào)用job.waitForCompletion方法,向整個集群提交MapReduce作業(yè)。

第2步:Client向RM申請一個作業(yè)id。

第3步:RM給Client返回該job資源的提交路徑和作業(yè)id。

第4步:Client提交jar包、切片信息和配置文件到指定的資源提交路徑。

第5步:Client提交完資源后,向RM申請運行MrAppMaster。

(2)作業(yè)初始化

第6步:當(dāng)RM收到Client的請求后,將該job添加到資源調(diào)度器中。

第7步:某一個空閑的NM領(lǐng)取到該Job。

第8步:該NM創(chuàng)建Container,并產(chǎn)生MRAppmaster。

第9步:下載Client提交的資源到本地。

(3)任務(wù)分配

第10步:MrAppMaster向RM申請運行多個MapTask任務(wù)資源。

第11步:RM將運行MapTask任務(wù)分配給另外兩個NodeManager,另兩個NodeManager分別領(lǐng)取任務(wù)并創(chuàng)建容器。

(4)任務(wù)運行

第12步:MR向兩個接收到任務(wù)的NodeManager發(fā)送程序啟動腳本,這兩個NodeManager分別啟動MapTask,MapTask對數(shù)據(jù)分區(qū)排序。

第13步:MrAppMaster等待所有MapTask運行完畢后,向RM申請容器,運行ReduceTask。

第14步:ReduceTask向MapTask獲取相應(yīng)分區(qū)的數(shù)據(jù)。

第15步:程序運行完畢后,MR會向RM申請注銷自己。

(5)進度和狀態(tài)更新

YARN中的任務(wù)將其進度和狀態(tài)返回給應(yīng)用管理器, 客戶端每秒(通過mapreduce.client.progressmonitor.pollinterval設(shè)置)向應(yīng)用管理器請求進度更新, 展示給用戶。

(6)作業(yè)完成

除了向應(yīng)用管理器請求作業(yè)進度外, 客戶端每5秒都會通過調(diào)用waitForCompletion()來檢查作業(yè)是否完成。時間間隔可以通過mapreduce.client.completion.pollinterval來設(shè)置。作業(yè)完成之后, 應(yīng)用管理器和Container會清理工作狀態(tài)。作業(yè)的信息會被作業(yè)歷史服務(wù)器存儲以備之后用戶核查。

2、任務(wù)狀態(tài)跟蹤和監(jiān)控

在任務(wù)運行過程中,YARN使用ApplicationMaster來跟蹤和管理任務(wù)的狀態(tài),ApplicationMaster可以定期向ResourceManager匯報任務(wù)的狀態(tài),從而實現(xiàn)狀態(tài)跟蹤。此外,可以通過定期監(jiān)控Container的狀態(tài),了解任務(wù)的運行情況和狀態(tài)。

下面是YARN中應(yīng)用程序和Container的狀態(tài)詳細過程:

(1)Application 狀態(tài)

是指YARN應(yīng)用程序的狀態(tài)。每個應(yīng)用程序都有一個唯一的Application ID,并且可以通過ResourceManager API或YARN Web UI來獲取應(yīng)用程序的當(dāng)前狀態(tài)。在YARN中,應(yīng)用程序狀態(tài)可以有以下狀態(tài):

NEW:應(yīng)用程序剛創(chuàng)建時的狀態(tài)。應(yīng)用程序會被分配一個唯一的Application ID,但還沒有分配資源,也沒有進入資源隊列。

NEW_SAVING:應(yīng)用程序等待資源保存。這個狀態(tài)只存在于開啟了Application歷史保存的集群上,如果沒有保存歷史,則該狀態(tài)的轉(zhuǎn)換不會發(fā)生。

SUBMITTED:應(yīng)用程序已經(jīng)提交給YARN,等待調(diào)度器處理,****尚未進行資源分配。

調(diào)度器會根據(jù)調(diào)度算法和優(yōu)先級等因素,從隊列中選擇合適的應(yīng)用程序并為其分配資源。調(diào)度器會考慮集群中的負載情況,保證資源的合理利用和公平共享。調(diào)度器完成后,應(yīng)用程序的狀態(tài)將被更新為"ACCEPTED"

ACCEPTED:應(yīng)用程序已經(jīng)通過隊列,并ResourceManager已經(jīng)分配了它需要的初始和最小容器( 這只是一個預(yù)分配的過程,并不代表資源已經(jīng)真正分配給了應(yīng)用程序)。

應(yīng)用程序已通過隊列,并為其分配了初始和最小容器,但實際的計算資源尚未分配

RUNNING:應(yīng)用程序正在運行中,并具有正在運行的容器。

應(yīng)用程序已獲得實際的計算資源分配,并開始執(zhí)行任務(wù)

FINISHED:應(yīng)用程序已經(jīng)成功完成,并且其最終狀態(tài)已經(jīng)保存到Y(jié)ARN應(yīng)用歷史中。

FAILED:應(yīng)用程序運行失敗,并且其最終狀態(tài)已經(jīng)保存到Y(jié)ARN應(yīng)用歷史中。

KILLED:應(yīng)用程序已被終止,并且其最終狀態(tài)已經(jīng)保存到Y(jié)ARN應(yīng)用歷史中。

示例:

  • application_1687214371118_29142:
  • 第一次查詢時,任務(wù)狀態(tài)為ACCEPTED,這個狀態(tài)表示任務(wù)已經(jīng)被ResourceManager接受并等待資源分配
  • 等待資源分配的原因,可以是沒有可用資源了,也可能是正在對任務(wù)進行一些準備工作,例如檢查任務(wù)的依賴關(guān)系、資源需求等。這些準備工作可能需要一些時間。
  • 一旦適當(dāng)?shù)馁Y源可用,并且所有準備工作完成,任務(wù)將從ACCEPTED狀態(tài)轉(zhuǎn)換為RUNNING狀態(tài),并開始在相應(yīng)的容器中運行
資源不足情況下狀態(tài)變化

當(dāng)資源不足時,YARN的資源管理器會對應(yīng)用程序的狀態(tài)進行調(diào)整,以幫助其適應(yīng)現(xiàn)有的資源情況。下面是YARN中應(yīng)用程序狀態(tài)在資源不足的情況下的狀態(tài)變化:

  • 如果應(yīng)用程序在 SUBMITTED 狀態(tài)時,發(fā)現(xiàn)資源不足,那么應(yīng)用程序會進入 ACCEPTED****狀態(tài)。在這種情況下,YARN會嘗試為應(yīng)用程序分配資源,但可能需要等待其他應(yīng)用程序釋放資源后才能成功分配。
  • 如果應(yīng)用程序在 ACCEPTED 狀態(tài)時,發(fā)現(xiàn)資源不足,那么應(yīng)用程序會進入等待狀態(tài)。在等待狀態(tài)下,應(yīng)用程序不會分配任何容器,因為資源不足無法分配。
  • 如果應(yīng)用程序在等待狀態(tài)中,嘗試重新分配資源,但仍然可以找到空閑資源。在這種情況下,應(yīng)用程序會返回 ACCEPTED 狀態(tài),并成功分配新的容器。
  • 如果應(yīng)用程序在等待狀態(tài)中,無法重新分配資源,那么應(yīng)用程序會轉(zhuǎn)移到 KILLED 或 FAILED 狀態(tài)。在這種情況下,應(yīng)用程序無法分配所需的資源,因此無法完成任務(wù)。

(2)Container 狀態(tài)

指的是在YARN集群上運行的應(yīng)用程序內(nèi)部的container狀態(tài)。在YARN集群上運行的應(yīng)用程序是通過啟動多個container來實現(xiàn)的,每個container都運行著應(yīng)用程序的一部分(如MapReduce中的一個map或reduce任務(wù)),并使用一個或多個資源(如內(nèi)存、CPU等)來執(zhí)行任務(wù)。當(dāng)一個應(yīng)用程序啟動后,它的容器狀態(tài)可能有以下幾種:

  • NEW:Container剛剛創(chuàng)建,但還沒有分配資源。
  • LOCALIZED:Container已經(jīng)獲取了運行時環(huán)境和所需的資源,表示資源已經(jīng)被分配給某個容器,但資源還未完全在該容器上本地化。在容器執(zhí)行應(yīng)用程序之前,需要將應(yīng)用程序所需的資源(如JAR包、配置文件等)拷貝到容器所在的節(jié)點上,并在容器內(nèi)部完成相關(guān)配置。完成本地化操作后,容器就可以開始執(zhí)行應(yīng)用程序。
  • RUNNING:Container正在運行,并且已經(jīng)分配了資源。
  • COMPLETE:Container已經(jīng)完成工作并退出。
  • EXITED_WITH_SUCCESS:表示容器成功執(zhí)行完畢,并且已經(jīng)被清理。
  • EXITED_WITH_FAILURE:表示容器執(zhí)行失敗,并且已經(jīng)被清理。

從 NEW 狀態(tài)到 LOCALIZED 狀態(tài),Container 會向 NodeManager 發(fā)起本地化請求,要求 NodeManager 將所需的資源復(fù)制到本地磁盤。從 LOCALIZED 狀態(tài)到 RUNNING 狀態(tài),Container會通過啟動進程來運行任務(wù)。在運行過程中,Container 可能會由于各種原因失敗,進入 FAILED 狀態(tài)。如果Container 順利完成任務(wù),則進入 COMPLETE 狀態(tài)。

(3)Yarn任務(wù)監(jiān)控

Yarn提供了豐富的任務(wù)監(jiān)控和管理功能,可以實時監(jiān)控和管理Yarn集群中的任務(wù),并及時采取必要的措施來優(yōu)化性能、發(fā)現(xiàn)問題和確保任務(wù)的順利執(zhí)行。以下是一些常見的Yarn任務(wù)監(jiān)控方法:

Yarn Web UI:Yarn的Web界面是一個強大的任務(wù)監(jiān)控工具。通過訪問Yarn的Web UI地址,可以查看整個集群上運行的應(yīng)用程序、任務(wù)的執(zhí)行狀態(tài)、資源分配情況等詳細信息。可以通過該界面來監(jiān)視任務(wù)的進度、資源使用情況和容器的狀態(tài)。

Yarn命令行界面(CLI):Yarn提供了一組命令行工具,可以用于查看和管理任務(wù)。例如:

  • "yarn application -list"命令可以列出集群上正在運行的應(yīng)用程序及其狀態(tài);
  • "yarn application -status <application_id>"命令可獲取特定應(yīng)用程序的詳細狀態(tài)信息;
  • "yarn logs -applicationId <application_id>"命令可查看應(yīng)用程序日志等。

Yarn REST API:Yarn還提供了REST API接口,允許通過發(fā)送HTTP請求來獲取任務(wù)的狀態(tài)和其他相關(guān)信息。可以使用HTTP客戶端(如curl、Postman)向適當(dāng)?shù)腁PI端點發(fā)送請求,并解析響應(yīng)以獲取任務(wù)的監(jiān)控數(shù)據(jù)。

curl -X GET http://localhost:8088/ws/v1/cluster/apps/<application_id>/state

Yarn日志:Yarn會記錄任務(wù)執(zhí)行過程中的日志信息。可以通過查看任務(wù)的日志文件,了解任務(wù)的執(zhí)行情況、事件發(fā)生時間和錯誤信息等。任務(wù)日志會記錄在每個NodeManager上,并在任務(wù)完成后上傳到HDFS上的指定目錄中。

#查看hdfs上的日志文件
hdfs dfs -get /tmp/logs/$username/logs/application_xxx
 
#nm本地日志文件
#1.登錄到運行YARN作業(yè)的主節(jié)點(namenode)
#2.打開 Hadoop配置文件 yarn-site.xml,并找到以下屬性:yarn.nodemanager.log-dirs,指示NodeManager在本地的存儲路徑

3、yarn容錯機制

當(dāng)任務(wù)出現(xiàn)錯誤或容器出現(xiàn)故障時,錯誤處理和容錯配置可以幫助應(yīng)用程序更好地處理錯誤和異常情況,保證任務(wù)的正常執(zhí)行。針對任務(wù)或容器出現(xiàn)錯誤或異常情況時,可通過以下的錯誤處理和容錯配置來實現(xiàn):

  1. 容器級別的錯誤處理和容錯配置:容器級別的錯誤處理和容錯配置主要包括容器的重啟次數(shù)、重啟的時間間隔和日志的輸出等方面。通過配置容器的重試次數(shù)和時間間隔等參數(shù),可以實現(xiàn)容器故障自動重啟和容錯處理。同時,通過集成容器的日志內(nèi)容,可以了解到容器在執(zhí)行過程中的詳細情況,便于出現(xiàn)異常時定位和解決問題。
  2. 應(yīng)用程序級別的錯誤處理和容錯配置:應(yīng)用程序級別的錯誤處理和容錯配置主要包括單個任務(wù)的執(zhí)行錯誤處理、多個任務(wù)的執(zhí)行錯誤容忍、多個任務(wù)的執(zhí)行順序控制等。通過這些配置,可以使應(yīng)用程序在多個任務(wù)并行執(zhí)行時,自動容錯并協(xié)調(diào)任務(wù)的執(zhí)行順序,從而合理利用資源和提高任務(wù)執(zhí)行效率。

需要注意的是,在進行錯誤處理和容錯配置時,應(yīng)仔細分析異常和故障的原因和頻率,以合理地設(shè)置重試次數(shù)和時間間隔等參數(shù),并確保日志輸出方式和日志分析方法的正確性和有效性。

適當(dāng)?shù)剡M行錯誤處理和容錯配置,可以有效地解決任務(wù)執(zhí)行過程中出現(xiàn)的異常和位置問題,提高任務(wù)執(zhí)行效率和可靠性。

三、資源管理

1、節(jié)點管理和資源分配

節(jié)點注冊和心跳機制:

  • NodeManager在啟動時向資源管理器(ResourceManager)注冊自己,并定期發(fā)送心跳以保持與資源管理器的通信。
  • 心跳包含節(jié)點狀態(tài)、可用資源和運行容器等信息,幫助資源管理器進行節(jié)點健康監(jiān)測和資源調(diào)度。

資源容量計算和分配:

  • 資源管理器根據(jù)每個節(jié)點注冊的資源信息,計算出整個集群的總資源容量。
  • 在分配資源給應(yīng)用程序之前,資源管理器會考慮已分配的資源、隊列配置和其他策略,進行資源分配決策。

節(jié)點黑名單管理:

  • Yarn提供了黑名單機制來解決節(jié)點故障或不可靠節(jié)點的問題。
  • 當(dāng)節(jié)點出現(xiàn)故障或無法達到預(yù)期性能時,可以添加節(jié)點到黑名單,資源管理器將不再向其分配任務(wù),以避免任務(wù)失敗或延遲。

2、資源隔離和限制

CPU資源管理:

  • YARN使用CPU資源管理來控制和分配集群中的處理器資源。
  • 它通過預(yù)先設(shè)置的CPU配額或優(yōu)先級來限制每個應(yīng)用程序或任務(wù)可以使用的CPU核心數(shù)量。
  • 資源調(diào)度器會根據(jù)預(yù)定義的調(diào)度策略和調(diào)度規(guī)則將CPU資源分配給不同的應(yīng)用程序,確保公平和合理的資源分配。

內(nèi)存資源管理:

  • YARN采用內(nèi)存資源管理機制,以控制和分配集群中的內(nèi)存資源。
  • 它使用內(nèi)存配額和限制來確保每個應(yīng)用程序或任務(wù)能夠獲得足夠的內(nèi)存,并避免超出分配的內(nèi)存限制。
  • ResourceManager會跟蹤可用的內(nèi)存資源,并根據(jù)應(yīng)用程序的需求進行內(nèi)存分配。此外,動態(tài)內(nèi)存調(diào)整功能使應(yīng)用程序能夠根據(jù)需要增加或釋放內(nèi)存資源。

網(wǎng)絡(luò)和磁盤資源管理:

  • YARN還提供了網(wǎng)絡(luò)資源管理和磁盤資源管理的機制,以確保應(yīng)用程序可靠地訪問網(wǎng)絡(luò)和磁盤資源。
  • 網(wǎng)絡(luò)資源管理涉及網(wǎng)絡(luò)帶寬的配額和分配,以避免應(yīng)用程序之間的網(wǎng)絡(luò)擁塞和競爭。
  • 磁盤資源管理關(guān)注應(yīng)用程序?qū)Υ疟PI/O的訪問。YARN可以限制每個應(yīng)用程序或任務(wù)可以使用的磁盤空間,并防止它們相互干擾。

通過這些資源隔離和限制的措施,YARN能夠在集群中有效地管理和分配CPU、內(nèi)存、網(wǎng)絡(luò)和磁盤等資源。這使得不同的應(yīng)用程序能夠并行地運行在同一個集群上,而不會相互干擾或搶占資源,從而提高了整體的資源利用率和系統(tǒng)的穩(wěn)定性。

3、資源調(diào)度器

目前,Hadoop作業(yè)調(diào)度器主要有三種:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop 默認的資源調(diào)度器是Capacity Scheduler。CDH框架默認調(diào)度器是Fair Scheduler。

(1)先進先出調(diào)度器(FIFO)

先進先出:單隊列,根據(jù)提交作業(yè)的先后順序,先來先服務(wù)。同一時間隊列中只有一個任務(wù)在執(zhí)行。

優(yōu)點:簡單易懂。

缺點:不支持多隊列,生產(chǎn)環(huán)境很少使用

容量調(diào)度器(Capacity Scheduler)

多隊列:每個隊列內(nèi)部先進先出, 同一時間隊列中只有一個任務(wù)在執(zhí)行, 隊列的并行度為隊列的個數(shù)。

容量調(diào)度器支持多個隊列,每個隊列可配置一定的資源量,每個隊列采用FIFO調(diào)度策略;

支持多用戶共享集群和多應(yīng)用程序同時運行。為了防止同一個用戶的作業(yè)獨占隊列中的資源,該調(diào)度器會對同一用戶提交的作業(yè)所占資源進行限定:

  • 首先,計算每個隊列中正在運行的任務(wù)數(shù)與其應(yīng)該分得的計算資源之間的比值,選擇一個該比值最小的隊列(即最閑的)。
  • 其次,按照作業(yè)優(yōu)先級和提交時間的順序,同時考慮用戶資源量限制和內(nèi)存限制對隊列內(nèi)任務(wù)排序。

如上圖,三個隊列同時按照任務(wù)的先后順序依次執(zhí)行,比如:job11,job21和job31分別排在隊列最前面,先運行,也是并行運行。

公平調(diào)度器(Fair Scheduler)

多隊列:每個隊列內(nèi)部按照缺額大小分配資源啟動任務(wù),同一時間隊列中有多個任務(wù)執(zhí)行。隊列的并行度大于等于隊列的個數(shù)。

與容量調(diào)度器相同點:

  • 多隊列:支持多隊列多作業(yè)
  • 容量保證:管理員可為每個隊列設(shè)置資源最低保證和資源使用上線
  • 靈活性:如果一個隊列中的資源有剩余,可以暫時共享給那些需要資源的隊列,而一旦該隊列有新的應(yīng)用程序提交,則其他隊列借調(diào)的資源會歸還給該隊列。
  • 多租戶:支持多用戶共享集群和多應(yīng)用程序同時運行;為了防止同一個用戶的作業(yè)獨占隊列中的資源,該調(diào)度器會對同一用戶提交的作業(yè)所占資源量進行限定。

與容量調(diào)度器不同點:

核心調(diào)度策略不同:

  • 容量調(diào)度器:優(yōu)先選擇資源利用率低的隊列。
  • 公平調(diào)度器:優(yōu)先選擇對資源的缺額比例大的。
  • 每個隊列可以單獨設(shè)置資源分配方式。
  • 容量調(diào)度器:FIFO、 DRF。
  • 公平調(diào)度器:FIFO、FAIR、DRF。

公平調(diào)度器設(shè)計目標是:在時間尺度上,所有作業(yè)獲得公平的資源。某一時刻一個作業(yè)應(yīng)獲資源和實際獲取資源的差距叫“缺額” 。調(diào)度器會優(yōu)先為缺額大的作業(yè)分配資源 。

公平調(diào)度器隊列資源分配方式

(1)FIFO策略

公平調(diào)度器每個隊列資源分配策略如果選擇FIFO的話,此時公平調(diào)度器相當(dāng)于上面講過的容量調(diào)度器。

(2)Fair策略

Fair 策略(默認)是一種基于最大最小公平算法實現(xiàn)的資源多路復(fù)用方式,默認情況下,每個隊列內(nèi)部采用該方式分配資源。這意味著,如果一個隊列中有兩個應(yīng)用程序同時運行,則每個應(yīng)用程序可得到1/2的資源;如果三個應(yīng)用程序同時運行,則每個應(yīng)用程序可得到1/3的資源。

(3)DRF策略

DRF(Dominant Resource Fairness),我們之前說的資源,都是單一標準,例如只考慮內(nèi)存(也是Yarn默認的情況)。但是很多時候我們資源有很多種,例如內(nèi)存,CPU,網(wǎng)絡(luò)帶寬等,這樣我們很難衡量兩個應(yīng)用應(yīng)該分配的資源比例。

那么在YARN中,我們用DRF來決定如何調(diào)度:假設(shè)集群一共有100 CPU和10T 內(nèi)存,而應(yīng)用A需要(2 CPU, 300GB),應(yīng)用B需要(6 CPU,100GB)。則兩個應(yīng)用分別需要A(2%CPU, 3%內(nèi)存)和B(6%CPU, 1%內(nèi)存)的資源,這就意味著A是內(nèi)存主導(dǎo)的, B是CPU主導(dǎo)的,針對這種情況,我們可以選擇DRF策略對不同應(yīng)用進行不同資源(CPU和內(nèi)存)的一個不同比例的限制。

<?xml versinotallow="1.0" encoding="UTF-8" standalnotallow="yes"?>
<!-- https://community.cloudera.com/t5/Support-Questions/Unable-to-start-Node-Manager/td-p/285976 -->
<!-- TODO 這個只是我從好未來集群上抄的配置 實際配置QQ還沒給我 -->
<allocations>
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>drf</schedulingPolicy>
        <queue name="default">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
        </queue>
        <queue name="users" type="parent">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
            <queue name="dr_dot_who" type="parent">
                <maxRunningApps>0</maxRunningApps>
                <weight>1.0</weight>
                <schedulingPolicy>drf</schedulingPolicy>
            </queue>
        </queue>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="nestedUserQueue">
            <rule name="default" create="true" queue="users"/>
        </rule>
        <rule name="default"/>
    </queuePlacementPolicy>
</allocations>
 
#當(dāng)一個應(yīng)用程序提交時,它將首先被匹配到specified規(guī)則,如果沒有匹配的則被路由到nestedUserQueue規(guī)則,再沒有匹配的則被放置到default規(guī)則對應(yīng)的隊列

配置資源使用限制

場景:在使用hdfsimporter導(dǎo)入數(shù)據(jù)時、distcp遷移hdfs數(shù)據(jù)時或者執(zhí)行數(shù)據(jù)去重、刪除等操作,為了避免資源爭搶,影響數(shù)據(jù)導(dǎo)入性能,可以通過配置調(diào)度策略,為指定隊列、應(yīng)用或用戶設(shè)置適當(dāng)?shù)馁Y源限制和配額,確保我們的數(shù)據(jù)導(dǎo)入的作業(yè)優(yōu)先獲得資源。

#限制運行在"users"隊列下 Application-Name 為 "HdfsImporter-*" 的程序資源使用上限
<allocations>
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>drf</schedulingPolicy>
        <queue name="default">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
        </queue>
        <queue name="users" type="parent">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
             
            <!-- 添加以下配置 -->
            <rule name="HdfsImporterLimit">
                <applicationName>HdfsImporter-*</applicationName>
                <maxResources>2048mb,2vcores</maxResources>
            </rule>
 
            <queue name="dr_dot_who" type="parent">
                <maxRunningApps>0</maxRunningApps>
                <weight>1.0</weight>
                <schedulingPolicy>drf</schedulingPolicy>
            </queue>
        </queue>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="nestedUserQueue">
            <rule name="default" create="true" queue="users"/>
        </rule>
        <rule name="default"/>
    </queuePlacementPolicy>
</allocations>
 
 
#限制運行在"users"隊列下的Flink應(yīng)用程序的資源使用
<allocations>
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>drf</schedulingPolicy>
        <queue name="default">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
        </queue>
        <queue name="users" type="parent">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
 
            <!-- 添加以下配置 -->
            <rule name="FlinkLimit">
                <type name="flink">
                  <maxResources>8192mb,8vcores</maxResources>
                </type>
            </rule>
             
            <queue name="dr_dot_who" type="parent">
                <maxRunningApps>0</maxRunningApps>
                <weight>1.0</weight>
                <schedulingPolicy>drf</schedulingPolicy>
            </queue>
        </queue>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="nestedUserQueue">
            <rule name="default" create="true" queue="users"/>
        </rule>
        <rule name="default"/>
    </queuePlacementPolicy>
</allocations>
 
 
#限定 用戶名為 "HdfsUser" 的用戶最大資源分配
<allocations>
    <queue name="root">
        <weight>1.0</weight>
        <schedulingPolicy>drf</schedulingPolicy>
        <queue name="default">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
        </queue>
        <queue name="users" type="parent">
            <weight>1.0</weight>
            <schedulingPolicy>drf</schedulingPolicy>
 
            <!-- 添加以下配置 -->
            <rule name="HdfsUserLimit">
                <username>HdfsUser</username>
                <maxResources>3096mb,3vcores</maxResources>
            </rule>
 
            <queue name="dr_dot_who" type="parent">
                <maxRunningApps>0</maxRunningApps>
                <weight>1.0</weight>
                <schedulingPolicy>drf</schedulingPolicy>
            </queue>
        </queue>
    </queue>
    <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
    <queuePlacementPolicy>
        <rule name="specified" create="true"/>
        <rule name="nestedUserQueue">
            <rule name="default" create="true" queue="users"/>
        </rule>
        <rule name="default"/>
    </queuePlacementPolicy>
</allocations>

四、Yarn常用命令

Yarn狀態(tài)的查詢,除了可以在yarn web頁面查看外,還可以通過命令操作。常見的命令操作如下

1、 yarn application查看任務(wù)

#列出所有Application
yarn application -list
 
#根據(jù)Application狀態(tài)過濾
yarn application -list -appStates (所有狀態(tài):ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)
例:yarn application -list -appStates FINISHED
 
#Kill掉 指定Application
yarn application -kill application_1612577921195_0001

2、yarn logs查看日志

#查詢Application日志
yarn logs -applicationId <ApplicationId>
 
 
#查詢Container日志
yarn logs -applicationId <ApplicationId> -containerId <ContainerId>
例:yarn logs -applicationId application_1612577921195_0001 -containerId container_1612577921195_0001_01_000001

3、yarn applicationattempt查看嘗試運行的任務(wù)

#列出所有Application嘗試的列表
yarn applicationattempt -list <ApplicationId>
 
#打印ApplicationAttemp狀態(tài)
yarn applicationattempt -status <ApplicationAttemptId>

4、yarn container查看容器

#列出所有Container
yarn container -list <ApplicationAttemptId>
 
#打印Container狀態(tài):yarn container -status <ContainerId>
#注:只有在任務(wù)跑的途中才能看到container的狀態(tài)

5、yarn node查看節(jié)點狀態(tài)

#列出所有節(jié)點
yarn node -list -all
#列出節(jié)點資源使用情況
yarn node -list -showDetails

6、yarn rmadmin更新配置

#加載隊列配置
yarn rmadmin -refreshQueues

7、yarn queue查看隊列

#查看YARN隊列的列表
#hadoop2.x
yarn queue -list
 
#hadoop3.x
mapred queue -list
 
#打印隊列信息
yarn queue -status <QueueName>

五、問題排查

1、排查思路

當(dāng)遇到 yarn 任務(wù)運行異常情況時,不同的任務(wù)狀態(tài)可能需要采取不同的排查方法。下面是針對不同狀態(tài)的一些常見排查方法:

任務(wù)提交失敗(Submission Failure):

  • 檢查網(wǎng)絡(luò)連接:確保與 YARN 集群的網(wǎng)絡(luò)連接正常。嘗試 ping 集群主機以驗證連接是否通暢。
  • 檢查配置文件:檢查任務(wù)的配置文件是否正確設(shè)置,在提交任務(wù)之前,特別是檢查集群和隊列的配置。

任務(wù)啟動失敗(Job Initialization Failure):

  • 檢查輸入/輸出路徑:確保任務(wù)所需的輸入/輸出路徑存在且權(quán)限正確。
  • 檢查日志:查看任務(wù)的日志輸出,尤其是初始化階段的錯誤日志。
  • 檢查資源配額:確認任務(wù)所需的資源配額是否可用。可能需要增加任務(wù)的資源配額。

任務(wù)運行失敗(Job Execution Failure):

  • 檢查任務(wù)日志:仔細查看日志,尋找具體的錯誤信息和異常堆棧跟蹤。
  • 檢查依賴項:確認任務(wù)所需的依賴項已正確安裝,并且版本匹配。
  • 檢查資源限制:確保集群資源足夠滿足任務(wù)的需求。可能需要增加資源配額或更換較大的集群。

任務(wù)超時(Job Timeout):

  • 檢查任務(wù)復(fù)雜性:確保任務(wù)的運行時間不超過了集群的限制。嘗試優(yōu)化任務(wù)以減少其運行時間。
  • 檢查資源配置:確認任務(wù)所需的資源配置是否合理,可能需要調(diào)整資源分配。
  • 檢查網(wǎng)絡(luò)延遲:排查集群與外部系統(tǒng)之間的網(wǎng)絡(luò)延遲是否超過了任務(wù)的超時設(shè)置。

任務(wù)被殺死(Job Killed):

  • 檢查資源限制:確認任務(wù)所需的資源配額是否超過了集群的限制。嘗試增加資源配額或更換較大的集群。
  • 檢查任務(wù)優(yōu)先級:確保任務(wù)的優(yōu)先級適當(dāng),以便在集群資源緊張時能夠得到足夠的資源支持。
  • 檢查管理員操作:確定是否有管理員手動終止了任務(wù)。聯(lián)系管理員以獲取更多信息。

總之,在排查 yarn 任務(wù)異常情況時,首先關(guān)注任務(wù)的狀態(tài)和錯誤日志,根據(jù)具體情況采取相應(yīng)的排查方法。調(diào)試和日志記錄是解決問題的重要手段,同時需要注意集群配置和資源限制等因素。如果問題仍然存在,尋求相關(guān)技術(shù)支持或社區(qū)的幫助可能也是一個好的選擇。

責(zé)任編輯:姜華 來源: 運維開發(fā)故事
相關(guān)推薦

2020-04-22 14:34:42

大數(shù)據(jù)Hadoop技術(shù)

2009-06-24 14:18:47

資源管理敏捷項目

2009-03-24 09:05:54

資源管理IT管理廣通信達

2013-12-21 19:58:32

SDN應(yīng)用資源管理平臺SDN

2021-11-22 16:21:28

Kubernetes 運維開源

2009-10-15 08:57:45

Windows 7電源管理

2011-02-22 14:47:52

SQL Server資

2011-02-28 08:57:10

SQL Server資內(nèi)存性能調(diào)優(yōu)

2016-12-15 19:41:23

應(yīng)用調(diào)度資源管理華為HDG

2013-12-03 18:31:43

SDN應(yīng)用編排資源管理

2011-07-28 16:06:34

IOS 應(yīng)用程序 資源

2021-07-19 09:47:37

阿里云Flink 1.12資源管理

2010-01-28 14:54:01

C++資源管理

2018-09-04 15:25:57

虛擬化云計算策略

2018-09-21 11:10:25

云計算數(shù)據(jù)中心數(shù)據(jù)驅(qū)動

2020-03-02 16:47:42

物聯(lián)網(wǎng)人力資源管理IOT

2024-04-26 00:03:00

機器學(xué)習(xí)人力資源管理

2023-08-24 16:24:44

TypeScript

2010-02-05 13:52:04

C++資源管理

2012-03-27 22:22:51

iMC基礎(chǔ)IT資源管理
點贊
收藏

51CTO技術(shù)棧公眾號

18禁男女爽爽爽午夜网站免费| 91精品国产综合久久香蕉最新版| 亚洲啪av永久无码精品放毛片 | 欧美美女直播网站| 亚洲欧洲三级| 国产熟女精品视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 精品久久久久久久久中文字幕 | 亚洲熟妇无码一区二区三区| 日韩中文字幕综合| 肉肉av福利一精品导航| 日韩少妇与小伙激情| 亚欧精品在线视频| 三妻四妾完整版在线观看电视剧 | 欧美激情日韩| 日韩av资源在线播放| 黄色一级大片在线观看| 国产精品剧情| 91社区在线播放| 国产精品久久久久久av福利软件| 久艹在线观看视频| 农村少妇一区二区三区四区五区| 一本色道久久综合狠狠躁的推荐| 一区二区三区的久久的视频| 人妻精品一区一区三区蜜桃91| 米奇777在线欧美播放| 欧美成人在线网站| 黄色正能量网站| 欧美成人高清视频在线观看| 午夜激情综合网| 宅男一区二区三区| 日本在线视频1区| 九九九久久久精品| 18久久久久久| 麻豆91精品91久久久| 国产欧美日韩免费观看 | 中文字幕在线视频精品| 四季久久免费一区二区三区四区| 91色综合久久久久婷婷| 69堂成人精品视频免费| 久久国产乱子伦精品| 亚洲欧美综合| 日韩天堂在线视频| 国产精品1000部啪视频| 日韩精品视频中文字幕| 欧美三级日韩三级| 鲁一鲁一鲁一鲁一色| a级影片在线观看| 中文字幕一区免费在线观看| 久久久com| 日韩在线观看视频一区二区三区| 精品一区二区在线播放| 日本91av在线播放| 国产精品免费人成网站酒店| 欧美综合视频| 亚洲激情国产精品| 精人妻一区二区三区| 成人午夜888| 在线电影国产精品| 天天操天天摸天天爽| 午夜影院在线播放| 午夜精品一区二区三区免费视频 | 成人午夜av| 亚洲欧洲激情在线| 国产特黄级aaaaa片免| 动漫av一区| 精品国产乱码久久久久久1区2区| 午夜激情影院在线观看| 欧美男女视频| 精品视频在线看| 国产精品又粗又长| av中文在线资源库| 偷拍日韩校园综合在线| 一二三四视频社区在线| av中文字幕电影在线看| 五月综合激情婷婷六月色窝| 中文字幕无码精品亚洲资源网久久| 成人福利网站| 亚洲综合在线免费观看| 国产乱子伦精品视频| www久久日com| 亚洲狠狠爱一区二区三区| 妺妺窝人体色www看人体| 日本动漫理论片在线观看网站 | 日韩精品久久久久久久| 影音先锋亚洲电影| 97色在线观看免费视频| 九九视频在线免费观看| 伊人久久大香线蕉av超碰演员| 久久噜噜噜精品国产亚洲综合| 国产亚洲精品久久久久久无几年桃 | av免费在线免费观看| 亚洲乱码中文字幕| 欧美一区二区视频在线播放| av手机在线观看| 精品动漫一区二区三区| 激情综合网婷婷| 国产三级一区| 欧美一级精品大片| 在线观看国产网站| 成人三级视频| 久久婷婷国产麻豆91天堂| 精品无码久久久久久久久| 99综合在线| 国产啪精品视频网站| a级片在线播放| 久久女同互慰一区二区三区| 亚洲欧美日韩不卡一区二区三区| 涩涩视频在线观看免费| 国产精品成人一区二区艾草 | 欧美久久精品一级黑人c片| 久久久久久国产精品免费播放| 国产欧美日韩亚洲一区二区三区| 国产国产精品人在线视| 国产aⅴ爽av久久久久成人| 成人18视频在线播放| 日韩av不卡在线播放| 超碰免费公开在线| 欧美视频在线免费看| 亚洲一级免费观看| 久久综合另类图片小说| 日韩在线视频二区| 中文字幕在线观看免费视频| 久久国产乱子精品免费女| 99久久99久久精品国产片| 国产中文字幕在线播放| 亚洲免费大片在线观看| 嫩草av久久伊人妇女超级a| 成人激情自拍| 久久在线免费视频| 天堂av免费在线观看| 丁香啪啪综合成人亚洲小说| 日韩欧美在线电影| 日本在线影院| 日韩欧美在线不卡| 俄罗斯毛片基地| 一区二区三区精品视频在线观看| 成人免费看吃奶视频网站| 黄色毛片在线观看| 亚洲狠狠爱一区二区三区| 国产精欧美一区二区三区白种人| 亚洲丝袜美腿一区| 欧美极品美女视频网站在线观看免费 | 隔壁老王国产在线精品| 国产成年妇视频| 国产精品视频第一区| 116极品美女午夜一级| 136国产福利精品导航网址应用| 最近2019年好看中文字幕视频| 久久久久久天堂| 国产一区二区三区精品视频| 亚洲电影免费| 欧美电影h版| 亚洲国产精品va在线看黑人| 欧美精品乱码视频一二专区| 看片网站欧美日韩| 亚洲精品成人自拍| 成人看片网站| 国产一区二区三区四区福利| 国产专区第一页| 99久久精品国产精品久久| 日韩 欧美 视频| 深夜激情久久| 欧美极品少妇与黑人| 91丨九色丨蝌蚪丨对白| 国产精品三级在线观看| 免费看的黄色大片| 亚洲春色h网| 4p变态网欧美系列| 每日更新在线观看av| 在线精品视频免费播放| 五月综合色婷婷| 丁香激情综合国产| avav在线看| 久久香蕉国产| 国产精品久久久久久久久久直播| www.综合| 夜夜嗨av色综合久久久综合网 | 国产在线精品免费| 日韩伦理在线免费观看| 欧美美乳视频| 亚洲www在线| 黄视频网站在线观看| 中日韩午夜理伦电影免费 | 亚洲精品美女久久久| 国产精品乱码一区二区视频| 亚洲人成网站在线| 人人妻人人澡人人爽人人精品 | 亚洲香蕉中文网| 日韩有码一区二区三区| 老司机午夜免费福利视频| 欧美亚洲tv| 91久久久久久久久久久| 三妻四妾的电影电视剧在线观看| 视频在线一区二区| 神马午夜在线观看| 欧美麻豆精品久久久久久| 欧美成人精品欧美一级| 中文字幕av不卡| 中文字幕99页| 国产在线播放一区三区四| 亚洲中文字幕无码专区| 中文精品久久| 偷拍视频一区二区| 久久99国产精品久久99大师 | 亚洲欧洲www| 少妇精品一区二区三区| 国产99久久久国产精品| 91制片厂毛片| 香蕉久久国产| 亚洲 欧美 综合 另类 中字| 99热国内精品| 日韩欧美在线一区二区| 偷拍亚洲精品| 国产精品一区免费观看| 亚洲午夜剧场| 国产精品成人播放| 成人av三级| 性欧美暴力猛交69hd| av在线下载| 久久精品久久精品亚洲人| 国产在线视频资源| 日韩精品中文字幕在线观看| 亚洲av无码一区二区三区性色| 欧美色爱综合网| 最好看的日本字幕mv视频大全| 精品动漫一区二区| 91精品国产乱码久久久张津瑜| 亚洲人吸女人奶水| 男人的午夜天堂| 国产精品三级视频| 国产成人在线网址| 欧美国产激情二区三区| 久久美女免费视频| 久久精品免视看| 国产精品手机在线观看| 不卡的av网站| 少妇精品无码一区二区三区| 成人性生交大片免费| 欧美xxxx日本和非洲| 国产裸体歌舞团一区二区| 精品人妻一区二区乱码| 国产盗摄一区二区三区| 亚洲精品视频三区| 国产高清视频一区| 91porn在线| av福利精品导航| 毛茸茸多毛bbb毛多视频| 99久久婷婷国产综合精品电影 | 国产一区二区电影在线观看| 欧美精品二区三区四区免费看视频 | 日韩av在线天堂| 欧美日韩国产中文精品字幕自在自线| 亚洲精品视频在线观看免费视频| 黄色一区二区在线| 97久久久久久久| 91久久精品日日躁夜夜躁欧美| 中文在线最新版天堂| 91精品麻豆日日躁夜夜躁| a天堂在线视频| 日韩不卡中文字幕| 国产午夜视频在线观看| 日韩中文字幕精品视频| av电影免费在线观看| 久久久久在线观看| 中文日产幕无线码一区二区| 国产精品久在线观看| 国产精品久久免费视频| 精品久久精品久久| 欧美精选一区二区三区| 国产美女视频免费| 亚洲美女啪啪| 五月婷婷丁香综合网| 国产精品一区免费在线观看| 麻豆国产精品一区| 中文字幕一区二区三区色视频 | 欧美在线你懂得| 国产视频在线观看免费 | 少妇户外露出[11p]| 中文字幕欧美激情一区| 久久久久久免费观看| 一本一道久久a久久精品| 国产三级伦理片| 亚洲男人天堂2023| 99视频免费在线观看| 欧洲成人在线视频| 欧美电影院免费观看| 欧美一区二区三区四区夜夜大片| 综合在线一区| 久久精品视频91| 国产美女精品在线| 深爱五月激情网| 亚洲老妇xxxxxx| 久久久久久久久久成人| 日韩精品综合一本久道在线视频| 免费观看成年在线视频网站| 欧美另类高清videos| 中文字幕乱码在线播放| www.久久艹| 日韩大片在线播放| 久久国产亚洲精品无码| 国产一区二区剧情av在线| 97超碰在线资源| 亚洲第一主播视频| 国产精品无码AV| 中文字幕av一区中文字幕天堂| 电影k8一区二区三区久久| 国产日本欧美视频| 国产精品羞羞答答在线观看| 99在线免费视频观看| 国产真实精品久久二三区| 波多野结衣一本| 香蕉乱码成人久久天堂爱免费| 国产精品无码久久av| 国产小视频国产精品| 亚洲天堂资源| 国产一区二区在线网站| 影音先锋在线一区| 日本wwww色| 一区二区三区在线视频免费 | 国产亚洲人成a一在线v站| 蜜臀久久精品| 国产免费高清一区| 伊人久久久大香线蕉综合直播 | 一级特黄性色生活片| 91欧美一区二区| 久草国产精品视频| 亚洲成人亚洲激情| 精品精品导航| 懂色一区二区三区av片| 亚洲一本二本| 一区二区三区人妻| 亚洲三级小视频| 国产精品色综合| 久久躁狠狠躁夜夜爽| 国产亚洲高清一区| 伊人网在线免费| 国产精品夜夜嗨| 精品无码人妻一区二区三区| 欧美mv日韩mv国产网站app| 欧美人与性动交α欧美精品济南到| 91久久精品在线| 亚洲欧美一级二级三级| wwwww在线观看| 亚洲福利视频三区| 亚洲日本在线播放| 国产精品aaaa| 91亚洲国产成人久久精品| www.超碰97.com| 亚洲免费观看高清完整版在线观看熊 | 国产一级淫片a| 日韩激情视频在线播放| 日韩大片欧美大片| 一区二区在线高清视频| 国产一区二区在线影院| 精品无码久久久久久久| 精品无人区乱码1区2区3区在线| 韩国美女久久| 一区二区精品视频| 国产福利视频一区二区三区| 日本特黄一级片| 亚洲天堂av网| 91麻豆精品| 国产中文字幕二区| 久久精品免费在线观看| 国产精品无码久久av| 国模视频一区二区| 国产探花一区二区| 中文字幕剧情在线观看| 亚洲一区二区三区视频在线 | 97久久伊人激情网| 红桃成人av在线播放| 尤物国产在线观看| 亚洲二区在线视频| 国产精品一区二区三区四区色| 成人自拍性视频| 亚洲影音先锋| 成人一级黄色大片| 亚洲精品久久久久中文字幕二区 | 精品日韩av| 日韩免费毛片| 国产盗摄一区二区三区| 欧美a视频在线观看| 久久综合伊人77777| 日韩电影不卡一区| 中文字幕资源在线观看| 精品久久久久久久久国产字幕| 欧美videos极品另类| 国产一区免费在线观看| 九九久久精品视频| 成人免费毛片视频| 欧美成人精品在线播放| 久草在线成人| av天堂一区二区| 在线不卡一区二区| 中文字幕资源网在线观看免费| 亚洲av首页在线| 国产女人aaa级久久久级| 欧美性受xxxx狂喷水| 成人夜晚看av|