The ResourceManager has two main components:
Scheduler - The core scheduler which allocates resources to applications based on the chosen policy (capacity guarantees, fairness etc.)
ApplicationsManager - The component of the ResourceManager which is responsible for accepting job-submissions, negotiating the first container for running the appropriate ApplicationMaster and provides service for restarting the ApplicationMaster container on failure.