What is the MapReduce application master? From Hadoop The Definitive Guide


  
  
  The whole process is illustrated in Figure 7-1. At the highest level,
  there are five independent entities: 
  
  • The client, which submits the MapReduce job.
  
  • The YARN resource manager, which coordinates the allocation of
  compute re‐ sources on the cluster.
  
  • The YARN node managers, which launch and monitor the compute
  containers on machines in the cluster.
  
  • The MapReduce application master, which coordinates the tasks
  running the Map‐ Reduce job. The application master and the MapReduce
  tasks run in containers that are scheduled by the resource manager and
  managed by the node managers.


What is the MapReduce application master? 

In a MapReduce program written in Java, we need three things: a map function, a reduce function, and some code with main() function to run the job. Is  the MapReduce application master the code with main() function to run a map reduce job?

Thanks
MapReduce Application Master coordinates the tasks running the MapReduce job. It is the main container for requesting, launching and monitoring specific resources. It negotiates resources from the ResourceManager and works with the NodeManager to execute and monitor the granted resources.

For MapReduce program, you do not need map and reduce functions. You can have map-only jobs and reduce-only jobs.

MapReduce Application Master appropriately implements the code in the main().