私はHadoopを初めて使用します。ジョブを実行すると、そのジョブの総リソース割り当てが251248654 MB秒、24462 vcore秒と表示されます。ただし、クラスターの詳細を見つけると、888 Vcores-totalと15.90 TB Memory-total。 Vcore秒は、ジョブを参照します。
これらを知るためのオンライン資料はありますか?サーフィンしてみたが、正しい答えは得られなかった
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
"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分かかったことを示しています。
これが明確になることを願っています。ジョブを実行して自分で確認できます。