【发布时间】:2015-08-27 16:19:48
【问题描述】:
我是 KERBEROS 的新手,遇到以下错误。
Exception in thread "main" java.io.IOException: Can't get Master Kerberos principal for use as renewer
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:116)
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:100)
at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodes(TokenCache.java:80)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:370)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1295)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1292)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)
at org.apache.hadoop.mapreduce.Job.submit(Job.java:1292)
at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1313)
at SampleUploader.main(SampleUploader.java:113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
当我运行以下代码时出现此错误(可在 GitHub 中找到:https://github.com/ddraj/hbase-trunk-mttr/blob/master/hbase-examples/src/main/java/org/apache/hadoop/hbase/mapreduce/SampleUploader.java)
conf.set("hadoop.security.authentication", "kerberos");
conf.set("dfs.namenode.kerberos.principal","hdfs/_HOST@REALM.COM");
UserGroupInformation.setConfiguration(conf);
System.out.println(UserGroupInformation.getLoginUser()+"***********");
我正在使用 CDH5.2.6
我可以像这样获取登录用户:
System.out.println(UserGroupInformation.getLoginUser()+"***********");
【问题讨论】:
-
产生此错误的代码是什么?
-
它是一个TableMapReduceUtil.initTableReducerJob
-
您能否提供一个重现错误的最小工作代码示例?
-
请参考 GitHub 中的代码:github.com/ddraj/hbase-trunk-mttr/blob/master/hbase-examples/… 附加代码:conf.set("hadoop.security.authentication", "kerberos"); conf.set("dfs.namenode.kerberos.principal","hdfs/_HOST@REALM.COM"); UserGroupInformation.setConfiguration(conf); System.out.println(UserGroupInformation.getLoginUser()+"***********");
标签: java mapreduce hbase kerberos hadoop-yarn