Hadoop CapacityScheduler は、使用可能なメモリがスケジュールされているジョブのニーズを満たさない場合 (TaskSchedulingMgr.getTaskFromQueue(...))、TaskTracker のスロットを予約します。ただし、これによりデッドロックが発生しますか? 2 つの異なるキューから 2 つの異なるジョブがあり、各マップ タスクには 3 つのスロットが必要だとします。各マシンには 4 つのマップ スロットしかありません。最初に、ジョブ 1 がスケジュールされているとき、マシン A で使用可能なスロットが 2 つあるため、ジョブ 1 はこれらの 2 つのスロットを予約します。その後、ジョブ 2 がマシン A でスケジュールされると、別の 2 つのスロットが使用可能になるため、ジョブ 2 は残りの 2 つのスロットを予約します。この場合、ジョブ 1 もジョブ 2 も、マシン A で実行するのに十分なスロットを取得できません。
これが起こらないように CapacityScheduler にスキームはありますか?