Hi Harsh, Thanks for the quick and detailed reply, it really helps. I am trying to use it and getting this error in node manager's log:
2013-08-05 08:57:28,867 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:dsadm (auth:SIMPLE) cause:java.io.FileNotFoundException: File does not exist: hdfs://isredeng/kishore/kk.ksh This file is there on the machine with name "isredeng", I could do ls for that file as below: -bash-4.1$ hadoop fs -ls kishore/kk.ksh 13/08/05 09:01:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Found 1 items -rw-r--r-- 3 dsadm supergroup 1046 2013-08-05 08:48 kishore/kk.ksh Note: I am using a single node cluster Thanks, Kishore On Mon, Aug 5, 2013 at 3:00 PM, Harsh J <ha...@cloudera.com> wrote: > The string for each LocalResource in the map can be anything that > serves as a common identifier name for your application. At execution > time, the passed resource filename will be aliased to the name you've > mapped it to, so that the application code need not track special > names. The behavior is very similar to how you can, in MR, define a > symlink name for a DistributedCache entry (e.g. foo.jar#bar.jar). > > For an example, checkout the DistributedShell app sources. > > Over [1], you can see we take a user provided file path to a shell > script. This can be named anything as it is user-supplied. > Onto [2], we define this as a local resource [2.1] and embed it with a > different name (the string you ask about) [2.2], as defined at [3] as > an application reference-able constant. > Note that in [4], we add to the Container arguments the aliased name > we mapped it to (i.e. [3]) and not the original filename we received > from the user. The resource is placed on the container with this name > instead, so thats what we choose to execute. > > [1] - > https://github.com/apache/hadoop-common/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java#L390 > > [2] - [2.1] > https://github.com/apache/hadoop-common/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java#L764 > and [2.2] > https://github.com/apache/hadoop-common/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java#L780 > > [3] - > https://github.com/apache/hadoop-common/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java#L205 > > [4] - > https://github.com/apache/hadoop-common/blob/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-distributedshell/src/main/java/org/apache/hadoop/yarn/applications/distributedshell/ApplicationMaster.java#L791 > > On Mon, Aug 5, 2013 at 2:44 PM, Krishna Kishore Bonagiri > <write2kish...@gmail.com> wrote: > > Hi, > > > > Can someone please tell me what is the use of calling > setLocalResources() > > on ContainerLaunchContext? > > > > And, also an example of how to use this will help... > > > > I couldn't guess what is the String in the map that is passed to > > setLocalResources() like below: > > > > // Set the local resources > > Map<String, LocalResource> localResources = new HashMap<String, > > LocalResource>(); > > > > Thanks, > > Kishore > > > > > > -- > Harsh J >