Hi,
I am trying to test a non-HDFS distributed filesystem (ceph) with yarn and I
think I am running into permissions issue. I am trying to run the
DistributedShell example and it fails.
hdfs@hadoop25:~$ yarn
org.apache.hadoop.yarn.applications.distributedshell.Client -jar
/usr/lib/hadoop-yarn/hadoop-yarn-applications-distributedshell-2.3.0.jar
-shell_command uptime
14/10/01 17:21:11 INFO distributedshell.Client: Initializing Client
14/10/01 17:21:11 INFO distributedshell.Client: Running Client
...
14/10/01 17:21:27 INFO distributedshell.Client: Application did not finish.
YarnState=FAILED, DSFinalStatus=FAILED. Breaking monitoring loop
14/10/01 17:21:27 ERROR distributedshell.Client: Application failed to complete
successfully
Looking at the nodemanager logs, I see that localization failed for
2014-10-01 17:21:26,460 DEBUG org.apache.hadoop.fs.ceph.CephFileSystem:
getFileStatus ceph://10.7.202.1:6789/user/hdfs/DistributedShell/1/shellCommands
2014-10-01 17:21:26,464 WARN org.apache.hadoop.security.UserGroupInformation:
PriviledgedActionException as:hdfs (auth:SIMPLE) cause:java.io.IOException:
Permission denied
2014-10-01 17:21:26,500 INFO
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService:
DEBUG: FAILED {
ceph://10.7.202.1:6789/user/hdfs/DistributedShell/1/shellCommands<http://10.7.202.1:6789/user/hdfs/DistributedShell/1/shellCommands>,
1412184072540, FILE, null }, Permission denied
2014-10-01 17:21:26,501 INFO
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalizedResource:
Resource
ceph://10.7.202.1:6789/user/hdfs/DistributedShell/1/shellCommands<http://10.7.202.1:6789/user/hdfs/DistributedShell/1/shellCommands>
transitioned from DOWNLOADING to FAILED
I see that the file does actually exist
hdfs@hadoop25:~$ hdfs dfs -cat /user/hdfs/DistributedShell/1/shellCommands
uptime
Also, if I submit the job as the yarn user, then it completes successfully.
Does it mean that since the Nodemanager is running as the yarn user, it can
only localize files that if has read permissions on. But then how can I make
this work in a multiuser environment and also this works fine with HDFS, so how
does it work fine with HDFS.
thanks
Gurmeet