2016-02-19 26 views
1

在YARN中,應用程序主控請求資源管理器獲取資源,以便啓動該應用程序的容器。紗線應用程序主控和容器分配

  1. 申請是否主等待分配所有資源甚至啓動的第一個容器,或者要求爲每一個容器之前和當它獲得資源的容器,它開始推出的是特定的容器? 即當只有部分資源可用時,情況如何?它是否等待資源被釋放?或基於可用資源繼續進行?

  2. MR應用程序主機如何決定MR作業的資源需求? YARN MR客戶端是否確定並將其發送給AM或AM發現它?如果是這樣,這是基於什麼?我相信這是可配置的,但我可能在談論內存,CPU沒有提供的默認情況。

回答

1

不,AM不等待分配所有資源。相反,它調度/啓動容器,資源由資源管理器提供給它。

當作業由驅動程序創建時,每個容器請求的大小在作業配置中定義。如果未針對作業明確設置值,則將mapreduce.map.memory.mb,mapreduce.reduce.memory.mb mapreduce.map.cpu的默認值使用來自mapred-site和mapred-default的值(請參閱https://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml)。 vcores和mapreduce.reduce.cpu.vcores。如何將這些值轉換爲授予的資源有點複雜,並且基於正在使用的調度程序,最小容器分配設置等。

我不確定MR應用程序主服務器是否有最大數量的容器除(映射器的輸入分割數量)+(減速器數量)以外的請求。 MR應用程序的主人在完成這些容器時會釋放容器(例如,如果您有1,000個映射容器,但只有20個容器,那麼一旦不再需要容器,它將釋放其他容器)。

+0

@Augus謝謝。我認爲,只有部分資源可用且工作完成一半,但仍在等待剩餘資源可用性的情況下,工作會超時。 – learninghuman

相關問題