日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop Yarn配置参数整理(非常全面)

發(fā)布時間:2025/1/21 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop Yarn配置参数整理(非常全面) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

RM與NM相關參數(shù)

ResourceManager

參數(shù)名稱作用默認值
yarn.resourcemanager.addressResourceManager 對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等。${yarn.resourcemanager.hostname}:8032
yarn.resourcemanager.scheduler.addressResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。${yarn.resourcemanager.hostname}:8030
yarn.resourcemanager.resource-tracker.addressResourceManager 對NodeManager暴露的地址.。NodeManager通過該地址向RM匯報心跳,領取任務等。${yarn.resourcemanager.hostname}:8031
yarn.resourcemanager.admin.addressResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發(fā)送管理命令等。${yarn.resourcemanager.hostname}:8033
yarn.resourcemanager.webapp.addressResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集群各類信息。${yarn.resourcemanager.hostname}:8088
yarn.resourcemanager.scheduler.class啟用的資源調度器主類。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
yarn.resourcemanager.resource-tracker.client.thread-count處理來自NodeManager的RPC請求的Handler數(shù)目。50
yarn.resourcemanager.scheduler.client.thread-count處理來自ApplicationMaster的RPC請求的Handler數(shù)目。50
yarn.scheduler.minimum-allocation-mb/ yarn.scheduler.maximum-allocation-mb單個可申請的最小/最大內存資源量。比如設置為1024和3072,則運行MapRedce作業(yè)時,每個Task最少可申請1024MB內存,最多可申請3072MB內存。1024/8192
yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores單個可申請的最小/最大虛擬CPU個數(shù)。比如設置為1和4,則運行MapRedce作業(yè)時,每個Task最少可申請1個虛擬CPU,最多可申請4個虛擬CPU。什么是虛擬CPU,可閱讀我的這篇文章:“YARN 資源調度器剖析”。1/32
yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-pathNodeManager黑白名單。如果發(fā)現(xiàn)若干個NodeManager存在問題,比如故障率很高,任務運行失敗率高,則可以將之加入黑名單中。注意,這兩個配置參數(shù)可以動態(tài)生效。(調用一個refresh命令即可)“”
yarn.resourcemanager.nodemanagers.heartbeat-interval-msNodeManager心跳間隔1000(毫秒)

NodeManager

參數(shù)名稱作用默認值
yarn.nodemanager.resource.memory-mbNodeManager總的可用物理內存。注意,該參數(shù)是不可修改的,一旦設置,整個運行過程中不可動態(tài)修改。另外,該參數(shù)的默認值是8192MB,即使你的機器內存不夠8192MB,YARN也會按照這些內存來使用(傻不傻?),因此,這個值通過一定要配置。不過,Apache已經(jīng)正在嘗試將該參數(shù)做成可動態(tài)修改的。8192
yarn.nodemanager.vmem-pmem-ratio每使用1MB物理內存,最多可用的虛擬內存數(shù)。2.1
yarn.nodemanager.resource.cpu-vcoresNodeManager總的可用虛擬CPU個數(shù)。8
yarn.nodemanager.local-dirs中間結果存放位置,類似于1.0中的mapred.local.dir。注意,這個參數(shù)通常會配置多個目錄,已分攤磁盤IO負載。${hadoop.tmp.dir}/nm-local-dir
yarn.nodemanager.log-dirs日志存放地址(可配置多個目錄)。${yarn.log.dir}/userlogs
yarn.nodemanager.log.retain-secondsNodeManager上日志最多存放時間(不啟用日志聚集功能時有效)。10800(3小時)
yarn.nodemanager.aux-servicesNodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序默認值:""

權限與日志聚集

日志聚集

參數(shù)名稱作用默認值
yarn.log-aggregation-enable是否啟用日志聚集功能。false
yarn.log-aggregation.retain-seconds在HDFS上聚集的日志最多保存多長時間。-1
yarn.log-aggregation.retain-check-interval-seconds多長時間檢查一次日志,并將滿足條件的刪除,如果是0或者負數(shù),則為上一個值的1/10。-1
yarn.nodemanager.remote-app-log-dir當應用程序運行結束后,日志被轉移到的HDFS目錄(啟用日志聚集功能時有效)。/tmp/logs
yarn.log-aggregation.retain-seconds遠程日志目錄子目錄名稱(啟用日志聚集功能時有效)。日志將被轉移到目錄[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GcYyaGuP-1626846701571)(https://math.jianshu.com/math?formula=%7Byarn.nodemanager.remote-app-log-dir%7D%2F)]{user}/${thisParam}下

MapReduce

本節(jié)所有配置都寫在mapred-site.xml中

MapReduce JobHistory

參數(shù)名稱作用默認值
mapreduce.jobhistory.addressMapReduce JobHistory Server地址。0.0.0.0:10020
mapreduce.jobhistory.webapp.addressMapReduce JobHistory Server Web UI地址。0.0.0.0:19888
mapreduce.jobhistory.intermediate-done-dirMapReduce作業(yè)產(chǎn)生的日志存放位置。/mr-history/tmp
mapreduce.jobhistory.done-dirMR JobHistory Server管理的日志的存放位置。/mr-history/done

MapReduce作業(yè)配置

下面的參數(shù)可以配置在客戶端的mapred-site.xml中,作為MapReduce作業(yè)的缺省配置。也可以在提交作業(yè)時單獨指定這些參數(shù)

參數(shù)名稱說明缺省值
mapreduce.job.name作業(yè)名稱
mapreduce.job.priority作業(yè)優(yōu)先級NORMAL
yarn.app.mapreduce.am.resource.mbApplicationMaster占用的內存量1536
yarn.app.mapreduce.am.resource.cpu-vcoresApplicationMaster占用的虛擬CPU個數(shù)1
mapreduce.am.max-attemptsApplicationMaster最大失敗嘗試次數(shù)2
mapreduce.map.memory.mb每個Map Task需要的內存量1024
mapreduce.map.cpu.vcores每個Map Task需要的虛擬CPU個數(shù)1
mapreduce.map.maxattemptsMap Task最大失敗嘗試次數(shù)4
mapreduce.reduce.memory.mb每個Reduce Task需要的內存量1024
mapreduce.reduce.cpu.vcores每個Reduce Task需要的虛擬CPU個數(shù)1
mapreduce.reduce.maxattemptsReduce Task最大失敗嘗試次數(shù)4
mapreduce.map.speculative是否對Map Task啟用推測執(zhí)行機制FALSE
mapreduce.reduce.speculative是否對Reduce Task啟用推測執(zhí)行機制FALSE
mapreduce.job.queuename作業(yè)提交到的隊列default
mapreduce.task.io.sort.mb任務內部排序緩沖區(qū)大小100
mapreduce.map.sort.spill.percentMap階段溢寫文件的閾值(排序緩沖區(qū)大小的百分比)0.8
mapreduce.reduce.shuffle.parallelcopiesReduce Task啟動的并發(fā)拷貝數(shù)據(jù)的線程數(shù)目5

Fair Scheduler相關參數(shù)

本節(jié)的參數(shù)需要在yarn-site.xml中,將配置參數(shù)yarn.resourcemanager.scheduler.class設置為org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler 才會生效。Fair Scheduler的配置選項包括兩部分,其中一部分在yarn-site.xml中,主要用于配置調度器級別的參數(shù),另外一部分在一個自定義配置文件(默認是fair-scheduler.xml)中,主要用于配置各個隊列的資源量、權重等信息。

yarn-site.xml

參數(shù)名稱說明缺省值
yarn.scheduler.fair.allocation.file自定義XML配置文件所在位置,該文件主要用于描述各個隊列的屬性,比如資源量、權重等,具體配置格式將在后面介紹。
yarn.scheduler.fair.user-as-default-queue當應用程序未指定隊列名時,是否指定用戶名作為應用程序所在的隊列名。如果設置為false或者未設置,所有未知隊列的應用程序將被提交到default隊列中true
yarn.scheduler.fair.preemption是否啟用搶占機制false
yarn.scheduler.fair.sizebasedweight在一個隊列內部分配資源時,默認情況下,采用公平輪詢的方法將資源分配各各個應用程序,而該參數(shù)則提供了另外一種資源分配方式:按照應用程序資源需求數(shù)目分配資源,即需求資源數(shù)量越多,分配的資源越多。false
yarn.scheduler.assignmultiple是否啟動批量分配功能。當一個節(jié)點出現(xiàn)大量資源時,可以一次分配完成,也可以多次分配完成。false
yarn.scheduler.fair.max.assign如果開啟批量分配功能,可指定一次分配的container數(shù)目。-1,表示不限制。
yarn.scheduler.fair.locality.threshold.node當應用程序請求某個節(jié)點上資源時,它可以接受的可跳過的最大資源調度機會。當按照分配策略,可將一個節(jié)點上的資源分配給某個應用程序時,如果該節(jié)點不是應用程序期望的節(jié)點,可選擇跳過該分配機會暫時將資源分配給其他應用程序,直到出現(xiàn)滿足該應用程序需的節(jié)點資源出現(xiàn)。通常而言,一次心跳代表一次調度機會,而該參數(shù)則表示跳過調度機會占節(jié)點總數(shù)的比例-1.0,表示不跳過任何調度機會
yarn.scheduler.fair.locality.threshold.rack當應用程序請求某個機架上資源時,它可以接受的可跳過的最大資源調度機會。
yarn.scheduler.increment-allocation-mb內存規(guī)整化單位默認是1024,這意味著,如果一個Container請求資源是1.5GB,則將被調度器規(guī)整化為ceiling(1.5 GB / 1GB) * 1G=2GB。
yarn.scheduler.increment-allocation-vcores虛擬CPU規(guī)整化單位默認是1,含義與內存規(guī)整化單位類似。

自定義配置文件

Fair Scheduler允許用戶將隊列信息專門放到一個配置文件(默認是fair-scheduler.xml),對于每個隊列,管理員可配置以下幾個選項:

參數(shù)名稱說明缺省值
minResources最少資源保證量,設置格式為“X mb, Y vcores”,當一個隊列的最少資源保證量未滿足時,它將優(yōu)先于其他同級隊列獲得資源,對于不同的調度策略(后面會詳細介紹),最少資源保證量的含義不同,對于fair策略,則只考慮內存資源,即如果一個隊列使用的內存資源超過了它的最少資源量,則認為它已得到了滿足;對于drf策略,則考慮主資源使用的資源量,即如果一個隊列的主資源量超過它的最少資源量,則認為它已得到了滿足。
maxResources最多可以使用的資源量,fair scheduler會保證每個隊列使用的資源量不會超過該隊列的最多可使用資源量。
maxRunningApps最多同時運行的應用程序數(shù)目。通過限制該數(shù)目,可防止超量Map Task同時運行時產(chǎn)生的中間輸出結果撐爆磁盤。
minSharePreemptionTimeout最小共享量搶占時間。如果一個資源池在該時間內使用的資源量一直低于最小資源量,則開始搶占資源。
schedulingMode/schedulingPolicy隊列采用的調度模式,可以是fifo、fair或者drf。
aclSubmitApps可向隊列中提交應用程序的Linux用戶或用戶組列表,默認情況下為“*”,表示任何用戶均可以向該隊列提交應用程序。需要注意的是,該屬性具有繼承性,即子隊列的列表會繼承父隊列的列表。配置該屬性時,用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。
aclAdministerApps該隊列的管理員列表。一個隊列的管理員可管理該隊列中的資源和應用程序,比如可殺死任意應用程序。

Capacity Scheduler相關參數(shù)

在Capacity Scheduler的配置文件中,隊列queueX的參數(shù)Y的配置名稱為yarn.scheduler.capacity.queueX.Y,為了簡單起見,我們記為Y,則每個隊列可以配置的參數(shù)如下:

資源分配相關參數(shù)

參數(shù)名稱說明缺省值
capacity隊列的資源容量(百分比)。 當系統(tǒng)非常繁忙時,應保證每個隊列的容量得到滿足,而如果每個隊列應用程序較少,可將剩余資源共享給其他隊列。注意,所有隊列的容量之和應小于100。
maximum-capacity隊列的資源使用上限(百分比)。由于存在資源共享,因此一個隊列使用的資源量可能超過其容量,而最多使用資源量可通過該參數(shù)限制。
minimum-user-limit-percent每個用戶最低資源保障(百分比)。任何時刻,一個隊列中每個用戶可使用的資源量均有一定的限制。當一個隊列中同時運行多個用戶的應用程序時中,每個用戶的使用資源量在一個最小值和最大值之間浮動,其中,最小值取決于正在運行的應用程序數(shù)目,而最大值則由minimum-user-limit-percent決定。比如,假設minimum-user-limit-percent為25。當兩個用戶向該隊列提交應用程序時,每個用戶可使用資源量不能超過50%,如果三個用戶提交應用程序,則每個用戶可使用資源量不能超多33%,如果四個或者更多用戶提交應用程序,則每個用戶可用資源量不能超過25%。
user-limit-factor每個用戶最多可使用的資源量(百分比)。比如,假設該值為30,則任何時刻,每個用戶使用的資源量不能超過該隊列容量的30%。

現(xiàn)在應用程序數(shù)目相關參數(shù)

參數(shù)名稱說明缺省值
maximum-applications集群或者隊列中同時處于等待和運行狀態(tài)的應用程序數(shù)目上限,這是一個強限制,一旦集群中應用程序數(shù)目超過該上限,后續(xù)提交的應用程序將被拒絕,所有隊列的數(shù)目上限可通過參數(shù)yarn.scheduler.capacity.maximum-applications設置(可看做默認值),而單個隊列可通過參數(shù)yarn.scheduler.capacity..maximum-applications設置適合自己的值。10000
maximum-am-resource-percent集群中用于運行應用程序ApplicationMaster的資源比例上限,該參數(shù)通常用于限制處于活動狀態(tài)的應用程序數(shù)目。該參數(shù)類型為浮點型。所有隊列的ApplicationMaster資源比例上限可通過參數(shù)yarn.scheduler.capacity. maximum-am-resource-percent設置(可看做默認值),而單個隊列可通過參數(shù)yarn.scheduler.capacity.. maximum-am-resource-percent設置適合自己的值。0.1,表示10%

隊列訪問和權限控制參數(shù)

參數(shù)名稱說明缺省值
state隊列狀態(tài)可以為STOPPED或者RUNNING,如果一個隊列處于STOPPED狀態(tài),用戶不可以將應用程序提交到該隊列或者它的子隊列中,類似的,如果ROOT隊列處于STOPPED狀態(tài),用戶不可以向集群中提交應用程序,但正在運行的應用程序仍可以正常運行結束,以便隊列可以優(yōu)雅地退出。
acl_submit_applications限定哪些Linux用戶/用戶組可向給定隊列中提交應用程序。需要注意的是,該屬性具有繼承性,即如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。配置該屬性時,用戶之間或用戶組之間用“,”分割,用戶和用戶組之間用空格分割,比如“user1, user2 group1,group2”。
acl_administer_queue為隊列指定一個管理員,該管理員可控制該隊列的所有應用程序,比如殺死任意一個應用程序等。同樣,該屬性具有繼承性,如果一個用戶可以向某個隊列中提交應用程序,則它可以向它的所有子隊列中提交應用程序。

總結

以上是生活随笔為你收集整理的Hadoop Yarn配置参数整理(非常全面)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。