web-dev-qa-db-ja.com

YARNのジョブの総リソース割り当て

私はHadoopを初めて使用します。ジョブを実行すると、そのジョブの総リソース割り当てが251248654 MB秒、24462 vcore秒と表示されます。ただし、クラスターの詳細を見つけると、888 Vcor​​es-totalと15.90 TB Memory-total。 Vcore秒は、ジョブを参照します。

これらを知るためのオンライン資料はありますか?サーフィンしてみたが、正しい答えは得られなかった

15
blackfury
VCores-Total: Indicates the total number of VCores available in the cluster
Memory-Total: Indicates the total memory available in the cluster.

たとえば単一ノードのクラスターがあり、コンテナーごとのメモリ要件を1228 MBに設定しました(構成によって決定:yarn.scheduler.minimum-allocation-mb)とコンテナーあたりのvCoresを1 vCoreに(構成によって決定:yarn.scheduler.minimum-allocation-vcores)。

設定しました:yarn.nodemanager.resource.memory-mb〜9830 MB。したがって、ノードごとに合計8つのコンテナが存在する可能性があります(9830/1228 = 8)。

したがって、私のクラスターの場合:

VCores-Total = 1 (node) * 8 (containers) * 1 (vCore per container) = 8 
Memory-Total = 1 (node) * 8 (containers) * 1228 MB (memory per container) = 9824 MB = 9.59375 GB = 9.6 GB

次の図は、クラスターのメトリックを示しています。 enter image description here

"MB-seconds" "vcore-seconds"を見てみましょう。コードの説明に従って(ApplicationResourceUsageReport.Java):

MB-seconds:アプリケーションが割り当てたメモリの総量(メガバイト)に、アプリケーションが実行されている秒数を掛けます。

vcore-seconds:アプリケーションが割り当てたvcoreの合計数に、アプリケーションが実行されている秒数を掛けたもの。

説明は自明です(キーワードを覚えておいてください:集計)。

例を挙げて説明します。私はDistCpジョブ(25のコンテナーを生成しました)を実行しました。

Aggregate Resource Allocation : 10361661 MB-seconds, 8424 vcore-seconds

ここで、各コンテナにかかった時間を大まかに計算してみましょう。

For memory:
10361661 MB-seconds = 10361661 / 25 (containers) / 1228 MB (memory per container) = 337.51 seconds = 5.62 minutes

For CPU
8424 vcore-seconds = 8424 / 25 (containers) / 1 (vCore per container) = 336.96 seconds = 5.616 minutes

これは、平均で、各コンテナーの実行に5.62分かかったことを示しています。

これが明確になることを願っています。ジョブを実行して自分で確認できます。

32