I am using Cloudera's CDH distribution of Hadoop and have recently upgraded from CDH3 to CDH4.
In CDH3 I used to be able to add user names into hadoop-policy.xml for:
security.client.protocol.acl
security.job.submission.protocol.acl
And then run:
hadoop dfsadmin -refreshServiceAcl
hadoop mradmin -refreshServiceAcl
And, voila, the user could access HDFS and run MR jobs.
Now adding first user since upgrading to CDH4 and it looks like something has changed.
Still adding user to same in hadoop-policy.xml as above. For HDFS access I run:
hdfs dfsadmin -refreshServiceAcl
However, I cannot figure out what is appropriate to give user access to "security.job.submission.protocol.acl". When I run:
hadoop mradmin -refreshServiceAcl
I get:
DEPRECATED: Use of this script to execute mapred command is deprecated. Instead use the mapred command for it. refreshServiceAcl: java.io.IOException: Unknown protocol: org.apache.hadoop.security.authorize.RefreshAuthorizationPolicyProtocol
And of course user gets:
org.apache.hadoop.security.authorize.AuthorizationException: User username (auth:SIMPLE) is not authorized for protocol interface org.apache.hadoop.mapred.JobSubmissionProtocol, expected client Kerberos principal is null
I have not installed YARN/MRv2 and "/usr/lib/hadoop-0.20-mapreduce/bin/mapred" is just a soft link to "/usr/lib/hadoop-0.20-mapreduce/bin/hadoop".
Any idea how I can update the JobSubmissionProtocol to accept the new user?