Yarn資源排程過程詳細 TEZ

2022-09-19 15:42:10 字數 2232 閱讀 1025

在mapreduce1.0中,我們都知道也存在和hdfs一樣的單點故障問題,主要是jobtracker既負責資源管理,又負責任務分配。

yarn中可以新增多種計算框架,hadoop,spark,mapreduce,不同的計算框架在處理不同的任務時,資源利用率可能處於互補階段,有利於提高整個集群的資源利用率。

同時yarn提供了一種共享集群的模式,隨著資料量的暴增,跨集群間的資料移動,需要花費更長的時間,且硬體成本會增大,共享集群模式可以讓多種框架共享資料和硬體資源。

yarn基本架構

整個的排程流程為:

resourcemanager

整個集群只有乙個,負責集群資源的統一管理和排程

處理客戶端請求

監控nodemanager

資源分配與排程

nodemanager

整個集群存在多個,負責單節點資源管理與使用

處理來自resourcemanager的命令

每乙個應用有乙個,負責應用程式的管理

資料切分,申請資源,任務監控,任務容錯

container

對任務環境的抽象

yarn的容錯性

yarn資源排程框架與排程器

yarn採用的雙層排程框架,rm將資源分配給am,am再將資源進一步分配給task,資源不夠時會為task預留,直到資源充足。在hadoop1.0中我們分配資源通過slot實現,但是在yarn中,直接分配資源。

資源排程器有:fifo,fair scheduler,capacity scheduler

yarn支援cpu和記憶體兩種資源隔離,記憶體時決定生死的資源,cpu時影響快滿的資源,記憶體隔離採用的是基於執行緒監控和基於cgroup的方案。

teztez俗稱dag計算,多個計算作業之間存在依賴關係,並形成乙個依賴關係的有向圖。

tez是執行在yarn上的dag,動態的生成計算的關係流。

如上圖左所示的top k問題,第乙個mapreduce實現wordcount的功能,第二個mapreduce只用使用reduce實現排序的問題,但是在mapreduce中必須建立兩個mapreduce任務,但是在tez優化後,可以直接再第乙個reduce後,不進行輸出,直接輸出到第二個reduce中,優化了mapreduce.

上圖中右為乙個hiveql實現的mapreduce,mapreduce為其建立了4個mapreduce任務,使用tez可以只使用乙個mapreduce任務。

tez on yarn和,mapreduce on yarn上的作業的流程基本一樣。

tez的優化技術

tez的好處就是避免產生較多的mapreduce任務,產生不必要的網路和磁碟io.

strom

strom是實時處理永不停止的任務,像流水一樣不斷的處理任務。

strom非常類似與mapreduce1.0的架構,如上圖所示。

但是其任務的排程的流程與mapreduce的不一樣。

spark

spark克服了mapreduce在迭代式計算和互動式計算方面的不足。

spark中引入了rdd,可以平行計算的資料集合,能夠被快取到能存和硬碟中。

spark on yarn 和mapreduce on yarn 基本上類似

mapreduce2.0和yarn

mr執行需要進行任務管理和資源管理排程,yarn只是負責資源管理排程。mapreduce只是執行在yarn上的應用。

mapreduce2.0包括yarn 和mrmapreduce,所以說yarn是從mapreudce中獨立出來的乙個模組。但是現在yarn已經成為多種計算框架的資源管理器。

mapreduce1.0與mapreduce2.0的區別

mapreduce1.0是可以直接執行的linux系統上的,因為其自帶了jobtracker服務和tasktracker服務,它們可以自己進行資源管理與任務的分配。

mapreduce2.0中mapreduce是只有任務管理,所以其必須執行在yarn上進行資源的排程。

Yarn資源排程

由於yarn良好的相容性和擴充套件性,目前可以支援大部分資料引擎,所以了解yarn的資源排程原理很有必要,yarn主要由四個重要角色組成 yarn排程主要分為8個步驟如上圖所示 1.有yarnclient提交program資訊打拼resourcemanager,包括 應用 和應用需要的一切引數和環境...

Yarn資源排程

yarn的介紹 yarn是hadoop集群當中的資源管理系統模組,從hadoop2.0開始引入yarn模組,yarn可為各類計算框架提供資源的管理和排程,主要用於管理集群當中的資源 主要是伺服器的各種硬體資源,包括cpu,記憶體,磁碟,網路io等 以及排程執行在yarn上面的各種任務。yarn核心出...

yarn 資源排程

目錄關於yarn常用引數設定 yarn我們都知道主要是用於做資源排程,任務分配等功能的,那麼在hadoop當中,究竟使用什麼演算法來進行任務排程就需要我們關注了,hadoop支援好幾種任務的排程方式,不同的場景需要使用不同的任務排程器.把任務按提交的順序排成乙個佇列,這是乙個先進先出佇列,在進行資源...