Difference between 3 memory parameters in Hadoop 2?

The answer by @twid is ambiguous. According to the official document here:

yarn.app.mapreduce.am.resource.mb specifies

"The amount of memory the MR AppMaster needs."

In other words, it specifies how much memory the container that is used to run the application master needs, this is not related to containers that is used to run mappers/reducers.


as we know Yarn is new architecture to govern resources in hadoop ecosystem.

yarn.nodemanager.vmem-pmem-ratio property: Is defines ratio of virtual memory to available pysical memory, Here is 2.1 means virtual memory will be double the size of physical memory.

yarn.app.mapreduce.am.command-opts: In yarn ApplicationMaster(AM) is responsible for securing necessary resources. So this property defines how much memory required to run AM itself. Don't confuse this with nodemanager, where job will be executed.

yarn.app.mapreduce.am.resource.mb: This property specify criteria to select resource for particular job. Here is given 1536 Means any nodemanager which has equal or more memory available will get selected for executing job.