Le 5 déc. 2013 à 05:30, Vinod Kumar Vavilapalli a écrit :

> 
> It is clearly mentioning that the renewer is wrong (renewer marked is 
> 'nobody' but mapred is trying to renew the token), you may want to check this.
> 
> Thanks,
> +Vinod
> 
> On Dec 2, 2013, at 8:25 AM, Rainer Toebbicke wrote:
> 
>> 2013-12-02 15:57:08,541 ERROR 
>> org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException 
>> as:mapred/xxx.cern...@cern.ch (auth:KERBEROS) 
>> cause:org.apache.hadoop.security.AccessControlException: Client mapred tries 
>> to renew a token with renewer specified as nobody
> 

Thanks, I had already guessed so far and finally the problem turned out a 
subtle bug in the Cloudera "Configuring MRv1 Security" instructions: they 
recommend to specify mapreduce.jobtracker.kerberos.principal as 
mapred/_h...@your-realm.com in mapred-site.xml. That won't work.

It confuses TokenCache.obtainTokensForNamenodesInternal() when it tries to 
obtain mapred's HadoopKerberosName.getShortname(): it finds the untranslated 
_HOST which a correctly configured hadoop.security.auth_to_local would not 
recognize as valid cluster node. That's where "nobody" comes in. 

Solution: mapreduce.jobtracker.kerberos.principal should really be full a fully 
resolved mapred/jobtracker-f...@your-realm.com and thus would usually pass the 
hadoop.security.auth_to_local rules.

One could argue that TokenCache.obtainTokensForNamenodesInternal() actually 
uses getShortname() from the wrong side of the fence but the little change 
fixes the problem.

Thanks, Rainer

Reply via email to