【hadoop】关于ERROR security.UserGroupInformation

本文分析了在使用CDH版本Hadoop时遇到的一个错误,该错误与用户权限及Protobuf解析有关。为了成功运行MapReduce程序,文章建议将用户从hadoop切换为hdfs。


14/01/23 20:49:47 ERROR security.UserGroupInformation: PriviledgedActionException as:hadoop (auth:SIMPLE) cause:java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is: "hadoop1/192.168.1.148"; destination host is: "hadoop1":9000; 
java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.; Host Details : local host is: "hadoop1/192.168.1.148"; destination host is: "hadoop1":9000; 
	at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:763)
	at org.apache.hadoop.ipc.Client.call(Client.java:1242)
	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202)
	at com.sun.proxy.$Proxy9.getFileInfo(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164)
	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83)
	at com.sun.proxy.$Proxy9.getFileInfo(Unknown Source)
	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:629)
	at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1545)
	at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:820)
	at org.apache.hadoop.fs.FileSystem.globStatusInternal(FileSystem.java:1681)
	at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1627)
	at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:211)
	at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.getSplits(FileInputFormat.java:248)
	at org.apache.hadoop.mapred.JobClient.writeNewSplits(JobClient.java:1079)
	at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1096)
	at org.apache.hadoop.mapred.JobClient.access$600(JobClient.java:177)
	at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:995)
	at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:948)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:396)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
	at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:948)
	at org.apache.hadoop.mapreduce.Job.submit(Job.java:566)
	at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:596)
	at com.zdworks.bigdata.backup.ParseLog_Redis.runstat(ParseLog_Redis.java:383)
	at com.zdworks.bigdata.backup.ParseLog_Redis.main(ParseLog_Redis.java:394)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.
	at com.google.protobuf.InvalidProtocolBufferException.invalidEndTag(InvalidProtocolBufferException.java:73)
	at com.google.protobuf.CodedInputStream.checkLastTagWas(CodedInputStream.java:124)
	at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:213)
	at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:746)
	at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:238)
	at com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:282)
	at com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:760)
	at com.google.protobuf.AbstractMessageLite$Builder.mergeDelimitedFrom(AbstractMessageLite.java:288)
	at com.google.protobuf.AbstractMessage$Builder.mergeDelimitedFrom(AbstractMessage.java:752)
	at org.apache.hadoop.ipc.protobuf.RpcPayloadHeaderProtos$RpcResponseHeaderProto.parseDelimitedFrom(RpcPayloadHeaderProtos.java:985)
	at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:949)
	at org.apache.hadoop.ipc.Client$Connection.run(Client.java:847)

从apache hadoop换用CDH之后,权限用户发生了变化(hadoop转为hdfs)。 所以要运行MR程序时,要切换到hdfs用户才行。


An internal error occurred during: "Map/Reduce location status updater".java.lang.NullPointerException at org.apache.hadoop.mapred.JobClient.getAllJobs(JobClient.java:814) at org.apache.hadoop.mapred.JobClient.jobsToComplete(JobClient.java:790) at org.apache.hadoop.eclipse.server.HadoopServer$LocationStatusUpdater.run(HadoopServer.java:119) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)java.io.IOException: failure to login at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:796) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:748) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:621) at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:81) at org.apache.hadoop.mapreduce.Cluster.<init>(Cluster.java:75) at org.apache.hadoop.mapred.JobClient.init(JobClient.java:470) at org.apache.hadoop.mapred.JobClient.<init>(JobClient.java:449) at org.apache.hadoop.eclipse.server.HadoopServer.getJobClient(HadoopServer.java:488) at org.apache.hadoop.eclipse.server.HadoopServer$LocationStatusUpdater.run(HadoopServer.java:103) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: javax.security.auth.login.LoginException: No LoginModule found for com.sun.security.auth.module.NTLoginModule at java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:731) at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:672) at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:670) at java.base/java.security.AccessController.doPrivileged(AccessController.java:688) at java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:670) at java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:581) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:771) ... 9 more
04-02
start-dfs.sh [Fatal Error] yarn-site.xml:27:3: The element type "configuration" must be terminated by the matching end-tag "</configuration>". 25/06/17 04:01:18 FATAL conf.Configuration: error parsing conf yarn-site.xml org.xml.sax.SAXParseException; systemId: file:/opt/programs/hadoop-2.7.6/etc/hadoop/yarn-site.xml; lineNumber: 27; columnNumber: 3; The element type "configuration" must be terminated by the matching end-tag "</configuration>". at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:150) at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2552) at org.apache.hadoop.conf.Configuration.parse(Configuration.java:2540) at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2614) at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2564) at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2477) at org.apache.hadoop.conf.Configuration.get(Configuration.java:1047) at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1101) at org.apache.hadoop.conf.Configuration.getLong(Configuration.java:1374) at org.apache.hadoop.security.Groups.<init>(Groups.java:111) at org.apache.hadoop.security.Groups.<init>(Groups.java:99) at org.apache.hadoop.security.Groups.getUserToGroupsMappingService(Groups.java:434) at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:284) at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261) at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:806) at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:776) at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:649) at org.apache.hadoop.hdfs.tools.GetConf.run(GetCo
最新发布
06-18
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值