    //container launch context for application master
         ContainerLaunchContext applicationMasterContainer = Records.newRecord(ContainerLaunchContext.class);
         applicationMasterContainer.setCommands(
                 Collections.singletonList("$JAVA_HOME/bin/java MasteringYarn.DistributedShellApplicationMaster " +
                                            args[2]  +
                                            " "      +
                                            args[3]  +
                                            " "      +
                                            "1>"     +
                                            ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stdout "  +
                                            "2>"     +
                                            ApplicationConstants.LOG_DIR_EXPANSION_VAR + "/stderr")
         );
 
 
         LocalResource applicationMasterJar = Records.newRecord(LocalResource.class);
         setupJarFileForApplicationMaster(new Path(args[1]), applicationMasterJar);
         applicationMasterContainer.setLocalResources(
                 Collections.singletonMap("MasteringYarn.jar", applicationMasterJar)
         );
 
         Map<String, String> appMasterEnv = new HashMap<>();
         setupEnvironmentForApplicationMaster(appMasterEnv);
         applicationMasterContainer.setEnvironment(appMasterEnv);
 
         Resource resources = Records.newRecord(Resource.class);
         resources.setVirtualCores(1);
         resources.setMemory(100);
 
 
