Hadoop のジョブは実行中にそれが割り当てられているメモリ量やコア数をリアルタイムに確認することは可能。
メモリ量 Allocated Memory MB
コア数 Allocated CPU VCores
ただし、ジョブが終了するとそれぞれの値は N/A(API レスポンスでは -1 固定)になってしまい、後からどの程度のリソースを利用していたのかをここからトレースすることが出来ない。
そこで、その他の Hadoop metrics として、MemorySeconds と vCoreSeconds というものがある。
それぞれの意味は
1. MemorySeconds - そのジョブが割り当てられたメモリの総量 × ジョブの実行時間(単位はMB)
2. vCoreSeconds - そのジョブが割り当てられたコアの総量 × ジョブの実行時間
つまり、それぞれの値をジョブの実行時間で除算してあげることで、割り当てられたメモリやコアの平均値を算出することが可能。
この実行時間には、Accepted など Running 以外のステータス時間も含まれている可能性があるため、正確な値の算出にはならないかもしれないが、目安にはなる(全くトレース出来ないより良い)。
allocatedMBPerSeconds = memorySeconds / elapsedTime
allocatedVCoresPerSeconds = vcoreSeconds / elapsedTime