Search code examples
hadoophadoop2resourcemanager

Resource Manager API using default user - webuser


I have been trying to use the resource manager api in hadoop to submit jobs (as given in http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Writeable_APIs).

When I try to submit a job, from any user (say hadoop), it gets submitted as user - webuser and the application fails with a message,

org.apache.hadoop.security.AccessControlException: User webuser cannot submit applications to queue ...

When I look into the configuration files of hadoop, I do not see any mention of the webuser. Also there is no local webuser available.

Where is this user getting picked up from? How to submit the job through the resource manager as the original user and proceed with the application?

Any guidance on this issue is appreciated. Thanks!


edit 1 - Adding input for the call. The application gets accepted.

{
"application-id": "application_1476245592339_0001",
"application-name": "rm-mr-test",
"queue": "default",
"am-container-spec": {
"commands": {
  "command": "hadoop jar /usr/hdp/2.3.0.0-2557/hadoop-mapreduce/hadoop-mapr educe-examples.jar teragen 100 /tmp/rm-api-test/1"
},
"unmanaged-AM": false,
"max-app-attempts": 2,
"resource": {
  "memory": 2250,
  "vCores": 8
},
"application-type": "MAPREDUCE",
"keep-containers-across-application-attempts": false
}
}

Solution

  • The webuser is used when the calls are made anonymously. Without anonymous usage, able to call the service as the intended user.