在 Yarn 的 UI 頁面你能夠看到什麼?

前言

前面咱們說了Yarn 是一個資源調度平臺,負責爲運算程序提供服務器計算資源,方便咱們編寫的 Spark、flink、MapReduce 這些應用在它上面運行。若是還不知道它是什麼的,請移步《Apache Hadoop YARN 的架構與運行流程》。node

那麼咱們有木有辦法看到 Yarn機器有多少資源呢?內存呀,CPU呀什麼的。 咱們提交到 Yarn的這些應用,它們的運行狀態是什麼樣子的,佔用了多少資源,到底哪些機器在爲他們跑任務呢?centos

答案是確定的,不止命令行,還有可視化的 UI 頁面。下面咱們就來看看到底長什麼樣子,都有什麼。服務器

集羣信息

about 菜單裏面能夠看到 Yarn 的 ResourceManager 的狀態,是不是HA,它的版本和Hadoop 的版本信息。session

主頁

記得以前本身在搭建 Hadoop 集羣的時候,把 Yarn 這個頁面整出來的時候不知道有多興奮,其實就長這樣子。架構

集羣監控信息

第一塊區域,是整個集羣的監控信息:app

  • Apps Submitted:已提交的應用,咱們這裏是71萬多
  • Apps Completed:已完成的應用
  • Apps Running:正在運行的應用
  • Containers Running:正在運行的容器
  • Memory Total:集羣總內存
  • Memory Used:已使用內存
  • VCores Total:集羣 CPU 總核數
  • VCores Used:已使用的 CPU 核數
  • Memory Reserved:預留的內存
  • VCores Reserved:預留的 CPU 核數

說明:框架

  1. Containers Running:正在運行的容器,爲何會有這個說法,是由於 Yarn 在運行任務以前,會先建立一個容器來跑。具體的原理,請看上面連接的文章。
  2. VCores Reserved 和 Memory Reserved: 爲何會存在預留的狀況?是由於 Yarn 爲了防止在分配一個容器到 NodeManager 的時候,,NodeManager當前還不能知足,那麼 如今 NodeManager 已經有的資源將被凍結,以達到 容器須要的標準,而後分給那個容器。關於這個問答能夠看這篇文章What is Memory reserved on Yarn

集羣節點信息

第二塊區域是 Yarn 的集羣節點的狀況,從 Active Nodes 下面的數字點擊進去,能夠看到具體的節點列表信息。裏面包含了所在機架、運行狀態、節點地址、最後健康上報上報時間、運行的容器個數、使用內存CPU 等信息,還有版本號。以下圖。運維

應用列表信息

第三塊內容是在 Yarn 上的任務執行狀況列表:oop

包括如下內容:ui

  1. 第一塊,能夠根據任務的不一樣狀態去篩選,上圖是篩選正在運行的任務。一搬來講,咱們就看正在運行(RUNNING)的,和已經運行完成的(FINISHED)。若是你發現沒你的任務了,那麼可能在已接受( ACCEPTED)尚未運行的狀態中,若是還找不到不到,那麼恭喜你,可能有問題,跑失敗了在失敗(FAILED)裏面,這時候,你就可點擊任務ID,去詳情頁裏面,找到日誌入口去查看日誌了,找問題了。
  2. 第二塊,是任務的ID,這沒什麼好說的,你能夠細心的看一下他的生成規則。
  3. 第三塊,是任務的名字,能夠看到圖中有按類名的,他是咱們本身提交的spark 任務的主類名。另一類是 hive on spark ,這類的名稱實際上是跑的 hive 的腳本,知識咱們 hive 的執行引擎是 spark。還有一類是 MapReduce 任務,這裏的 MapReduce 任務,可不是咱們真正用 MapReduce 去寫的代碼哈,只是咱們有用 sqoop 進行數據的抽取。它底層是 MapReduce 。還有一類是 Flink 任務,會顯示 Flink session cluster,只是咱們如今尚未用。
  4. 第四塊是應用的類型和所在隊列,常見的類型有 spark 、mapreduce和Apache Flink 。所在隊列,你們能夠回想一下在說 yarn 的架構的時候,咱們提交到 yarn 的任務,他會放到隊列裏面去,這個隊列有默認的,有能夠本身在提交時經過 --queue 進行指定的。若是咱們沒有制定,那麼它會以你提交任務的時候使用的那個帳戶來進行提交,好比我這裏就是 centos 的用戶,顯示則顯示成 root.users.centos。
  5. 第五塊,是任務的開始和結束時間。
  6. 第六塊是任務當前的狀態和最終狀態。
  7. 第七塊是任務佔用的相關資源。
  8. 第八塊是任務的應用類型主頁。若是是 spark 任務的話,顯示的是 spark 的 ui 頁面。

應用詳情頁

在任務列表,點擊 app ID 會來到這個應用的詳情頁:

查看應用日誌

從應用詳情頁 ApplicationMaster 中,點擊 最右邊 log ,能夠進入到應用的日誌頁面,日誌記錄了兩部分,一部分是你的應用運行框架打印的日誌,好比spark ,另一部分是你編寫的代碼中打印的日誌。point 打印的日誌都會記錄。以下圖:

進入到應用框架的監控UI頁面

在詳情頁中,能夠點擊 Tracking URL 中提供 ApplicationMaster 連接,或者在在應用列表也中也能夠,進入到 任務的運行框架UI頁面,下面以spark 爲例:

查看 yarn 的隊列

在主頁還有一個調度(Scheduler)的菜單,裏面能夠看到 yarn 的隊列信息。包含了有哪些隊列、每一個隊列的資源使用狀況、哪些任務運行在這個隊列中等等。

Yarn 的日誌

日常若是咱們發現Yarn 有些問題,那麼咱們能夠去看到 Yarn 的日誌,在 左側菜單 Tools->Local logs 裏面咱們能夠看到 Yarn 的日誌信息:

Yarn 的服務監控

在CDH 中實際上是對Yarn 有資源監控的,若是你沒有使用CDH 這些,只有本身搭建的 Yarn 集羣,那麼 Yarn 也提供了監控時間獲取方式,在左側菜單 Tools -> Server metrics 裏面,咱們能夠看到 以下數據,只是是 Json 數據。訪問地址:http://journalnode1:8088/jmx?qry=Hadoop:*

拿到這個數據,你也能夠寫一個頁面來可視化的展現它,給你們看一下 CDH 對於Yarn 的部分監控:

最後

在 Tools 菜單欄中還有 Yarn 的配置信息和 服務當前的堆棧信息,有興趣的去研究一下。

以上,是Yarn 的UI 界面的介紹,後面給你們帶來日常咱們使用 Yarn 的運維命令和它提供的 RestAPI。

相關文章
相關標籤/搜索