`
thecloud
  • 浏览: 882745 次
文章分类
社区版块
存档分类
最新评论

ShellBasedUnixGroupsMapping: got exception trying to get groups for user webuser

 
阅读更多

昨天好不容易把集群搞起来了,今天运行一个程序却在logs里出现这样的错误,让我无比的纠结呀:在终端中显示为:

logs中的部分提示为:

2012-09-13 11:29:40,780 WARN org.apache.hadoop.security.ShellBasedUnixGroupsMapping: got exception trying to get groups for user webuser
org.apache.hadoop.util.Shell$ExitCodeException: id: webuser:无此用户

	at org.apache.hadoop.util.Shell.runCommand(Shell.java:255)
	at org.apache.hadoop.util.Shell.run(Shell.java:182)
	at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:375)
	at org.apache.hadoop.util.Shell.execCommand(Shell.java:461)
	at org.apache.hadoop.util.Shell.execCommand(Shell.java:444)
	at org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getUnixGroups(ShellBasedUnixGroupsMapping.java:68)
	at org.apache.hadoop.security.ShellBasedUnixGroupsMapping.getGroups(ShellBasedUnixGroupsMapping.java:45)
	at org.apache.hadoop.security.Groups.getGroups(Groups.java:79)
	at org.apache.hadoop.security.UserGroupInformation.getGroupNames(UserGroupInformation.java:998)
	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.<init>(FSPermissionChecker.java:50)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5210)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkTraverse(FSNamesystem.java:5193)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:2019)
	at org.apache.hadoop.hdfs.server.namenode.NameNode.getFileInfo(NameNode.java:848)
	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:601)
	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
	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:1093)
	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)
我运行其他的程序完全可以的呀,为什么这个不行呢?我还重新格式化了整个集群,结果还是不行,最后居然是因为我的路径写错了,

比如:我的路径写为: hdfs://localhost:9000/user/fansy/input/data1 ,由于这个程序是我在伪分布式下编写的,当时的路径是没有问题的,但是现在是在集群中,所以路径写错了。应该改为: hdfs://192.168.0.123:9000/user/fansy/input/data1, 把localhost改为具体的Ip地址,如果在相应的路径上没有data1,那么会提示说没有文件,而不是在上文中终端中显示的那样。

今天还遇到一个问题,那就是我用10W条记录跑一个程序10分钟左右完成,用100W数据跑就要5到6Hours, 而且老是出现下面的错误:

就是不断的回去重新map,查了好多资料,比较靠谱的说法是内存溢出错误导致任务失败。所以对于大数据来说还是要写一些比较优化的程序才行。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics