CDH6 3 2之YARN生產環境調優

2022-09-19 06:42:12 字數 4702 閱讀 6915

調整yarn

本主題僅適用於yarn群集,並介紹如何為群集調整和優化yarn。

概觀此概述提供yarn群集的抽象描述和yarn調整的目標。

yarn群集由主機組成。 主機提供記憶體和cpu資源。 vcore或虛擬核心是主機cpu的使用份額。

調整yarn主要包括在工作主機上最佳地定義容器。 您可以將容器視為由記憶體和vcores組成的矩形圖。 容器執行任務。

有些任務使用大量記憶體,對大量資料的處理最少。

其他任務需要大量處理能力,但使用的記憶體較少。例如,蒙特卡羅模擬評估許多可能的「如果?」場景在相對較小的資料集上使用大量處理能力。

yarn resourcemanager分配記憶體和vcores以盡可能以最有效的方式使用所有可用資源。理想情況下,很少或沒有資源閒置。

應用程式是由乙個或多個任務組成的yarn客戶端程式。通常,任務使用容器中的所有可用資源。任務不能超過其指定的分配,確保它不能使用所有主機cpu週期或超過其記憶體分配。

通過將容器配置為使用除開銷和其他服務所需的所有可用資源之外,調整yarn主機以優化vcores和記憶體的使用。

yarn調整有三個階段。這些階段對應於yarn調整電子**中的選項卡。

1、群集配置,您可以在其中配置主機。

2、yarn配置,您可以量化記憶體和vcores。

3、mapreduce配置,您可以為特定map和reduce任務分配最小和最大資源。

yarn和mapreduce具有許多可配置的屬性。有關完整列表,請參閱cloudera manager配置屬性。 yarn調整電子**列出了這些屬性的基本子集,這些屬性最有可能提高常見mapreduce應用程式的效能。大資料培訓

群集配置

在cluster configuration選項卡中,您可以為yarn實現定義工作主機配置和群集大小。

機器配置

第1步:工作者主機配置 //**中寫單個主機配置

在下面的輸入框中輸入您可能的機器配置。 如果您不確定您計畫購買哪種機器,請提供一些適合您預期購買的最小值。

與任何系統一樣,可用的記憶體和cpu資源越多,集群處理大量資料的速度就越快。 具有4個帶超執行緒的cpu的機器,每個cpu有6個核心,每個主機提供48個vcore。

2個單元伺服器安裝中的3 tb硬碟驅動器在jbod(just a bunch of disks)配置中有12個可用插槽,這是在建立電子**時效能和**之間的合理平衡。 儲存成本會隨著時間的推移而降低,因此您可能會考慮使用4 tb磁碟。 較大的磁碟**昂貴,並非所有用例都需要。

兩個1千兆位乙太網埠在電子**發布時提供了足夠的吞吐量,但10千兆位乙太網埠是**低於速度的選擇。

第2步:工人主持人計畫

現在您已從步驟1獲得基本主機配置,請使用下表將資源(主要是cpu和記憶體)分配給在主機上執行的各種軟體元件。

從您的作業系統開始至少8 gb,為cloudera manager開始至少1 gb。 如果cdh以外的服務需要其他資源,請在「其他服務」下新增這些數字。

hdfs datanode使用至少1個核心和大約1 gb記憶體。 相同的要求適用於yarn nodemanager。

電子**列出了幾個可選服務:

impala守護程式需要至少16 gb的守護程式。

hbase region servers需要12-16 gb的記憶體。

solr伺服器至少需要1 gb的記憶體。

kudu平板電腦伺服器至少需要1 gb的記憶體。

任何剩餘資源都可用於yarn應用程式(spark和mapreduce)。 在此示例中,有44個cpu核心可用。 在每個物理核心上設定所需的vcores乘數,以計算總可用vcores。

第3步:群集大小

定義了群集中每個主機的規範後,輸入支援業務案例所需的工作主機數。 要了解平行計算的好處,請將主機數設定為最小值10。

yarn配置

在yarn configuration選項卡上,驗證可用資源並設定每個容器的最小和最大限制。

第4步:在群集上配置yarn

這些是群集的第一組配置值。 您可以在yarn-> configuration中設定這些值

步驟4和5:驗證設定

步驟4從步驟2中提取記憶體和vcore編號。

步驟5顯示群集的總記憶體和vcores。

轉到資源管理器web ui(通常是http:// :8088 /並驗證「記憶體總計」和「vcores total」與上面的值匹配。如果您的機器沒有壞節點,那麼數字應該完全匹配。

步驟6:驗證群集上的容器設定

為了讓yarn作業乾淨地執行,您需要配置容器屬性。

在步驟6中,您可以更改影響容器大小的值。

最小vcores數應為1.當需要額外的vcores時,一次新增1將導致最有效的分配。 將vcore預留的最大數量設定為節點的大小。

設定記憶體的最小和最大預留。 增量應該是可以影響效能的最小量。 這裡,最小值約為1 gb,最大值約為8 gb,增量為512 mb。

步驟6a:集群容器容量

本節將告訴您群集的容量(就容器而言)。

步驟6a允許您根據輸入的數字驗證群集中容器的最小和最大數量。

最大可能容器數,基於記憶體配置

最大可能容器數,基於vcore配置

基於每個磁碟軸2個容器的容器編號

根據記憶體配置,最小可能容器數

根據vcore配置,最小可能容器數

步驟6b:容器健全檢查

本節將針對主機在step 6中對容器引數進行一些基本檢查。

mapreduce配置

在mapreduce configuration選項卡上,您可以規劃增加的特定於任務的記憶體容量。

第7步:mapreduce配置

對於cdh 5.5及更高版本,我們建議僅為map和reduce任務指定堆或容器大小。 未指定的值將根據設定mapreduce.job.heap.memory-mb.ratio計算。 此計算遵循cloudera manager並根據比率和容器大小計算堆大小。

步驟7a:mapreduce完整性檢查

完整性檢查mapreduce設定對容器的最小/最大屬性。

通過步驟7a,您可以一目了然地確認所有最小和最大資源分配都在您設定的引數範圍內。

連續排程

啟用或禁用連續排程會更改yarn連續或基於節點心跳排程的頻率。 對於較大的群集(超過75個節點)看到繁重的yarn工作負載,建議通常使用以下設定禁用連續排程:

yarn.scheduler.fair.continuous-scheduling-enabled應為false

yarn.scheduler.fair.assignmultiple應該是真的.

在大型群集上,連續排程可能導致resourcemanager無響應,因為連續排程會遍歷群集中的所有節點。

我們沒有75個節點,設定為yarn.scheduler.fair.continuous-scheduling-enabled 為true

yarn.scheduler.fair.assignmultiple = true

小結:yarn中容器記憶體的計算方法

yarn.nodemanager.resource.memory-mb

容器虛擬 cpu 核心

yarn.nodemanager.resource.cpu-vcores

//這2個值是更具最後用到的資源剩下來 多少給yarn的

最小容器記憶體

yarn.scheduler.minimum-allocation-mb = 1g //推薦值

最小容器虛擬 cpu 核心數量

yarn.scheduler.minimum-allocation-vcores = 1 //推薦值

最大容器記憶體

yarn.scheduler.maximum-allocation-mb = < yarn.nodemanager.resource.memory-mb

最大容器虛擬 cpu 核心數量

yarn.scheduler.maximum-allocation-vcores = < yarn.nodemanager.resource.cpu-vcores //推薦值

容器記憶體增量

yarn.scheduler.increment-allocation-mb = 512m

容器虛擬 cpu 核心增量

yarn.scheduler.increment-allocation-vcores = 1 //推薦值

堆與容器大小之比

mapreduce.job.heap.memory-mb.ratio = 0.8 預設

map 任務 cpu 虛擬核心

mapreduce.map.cpu.vcores = 1

map 任務記憶體

mapreduce.map.memory.mb = 1024

map 任務 j**a 選項庫

mapreduce.map.j**a.opts = 忽視 ignored

i/o 排序記憶體緩衝 (mib)

mapreduce.task.io.sort.mb = 400

reduce 任務 cpu 虛擬核心

mapreduce.reduce.cpu.vcores = 1

reduce 任務記憶體

mapreduce.reduce.memory.mb = 1024m

reduce 任務 j**a 選項庫

mapreduce.reduce.j**a.opts 忽視

map 任務最大堆疊 819 //是 mapreduce.map.memory.mb 0.8

reduce 任務最大堆疊 819m 0.8

鏈結中,有建議的值,但是我們這是測試集群,資源很小,生產集群上具體見鏈結最後的建議值

CDH6 3 2更換HDFS 資料目錄

事情是這樣的,樓主剛入職一家新公司,剛開始搭建的集群時ecs只有乙個系統盤,集群安裝完成執行幾天後,分分鐘就要爆了,於是申請增加磁碟,就有了下面這些嘗試 檢視未掛載的磁碟 lsblk f fdisk dev vdb fdisk l 3.格式化 mkfs.ext4 dev vdb 4.掛載 mkdir...

cdh6 3 2整合外部元件之phoenix

環境說明 cdh版本 cdh6.3.2 元件版本資訊如下 元件版本 1.方式一,製作yum源,配置parcel遠端倉庫 cd var www html mkdir phoenix5.0.0 cp soft phoenix phoenix5.0.0 cd phoenix5.0.0 createrepo...

生產環境之「程序」兩字

一 程序概念 執行中的程式的乙個副本,是被載入記憶體的乙個指令集合 程序id process id,pid 號碼被用來標記各個程序uid gid 和selinux語境決定對檔案系統的訪問和訪問許可權,通常從執行程序的使用者來繼承 存在生命週期。二 程序狀態 1 執行狀態 running 2 就緒狀態...