Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Internal Server Error

hadoop的web界面上查看hdfs时web界面显示如下异常:

Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Internal Server Error

这个异常会由很多原因发生,如果想确定是什么原因要查看,所访问的web界面的namenode的日志。

我本次遇到的这个异常,在namenode日志看到如下内容:

2019-02-19 14:12:26,838 WARN org.apache.hadoop.hdfs.web.resources.ExceptionHandler: INTERNAL_SERVER_ERROR
java.lang.NullPointerException
	at org.apache.hadoop.hdfs.DFSUtil.bytes2String(DFSUtil.java:314)
	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.getINodeAttrs(FSPermissionChecker.java:238)
	at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:183)
	at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1752)
	at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1736)
	at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPathAccess(FSDirectory.java:1710)
	at org.apache.hadoop.hdfs.server.namenode.FSDirStatAndListingOp.getListingInt(FSDirStatAndListingOp.java:70)
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getListing(FSNamesystem.java:4446)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getListing(NameNodeRpcServer.java:999)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods.getDirectoryListing(NamenodeWebHdfsMethods.java:938)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods.getListingStream(NamenodeWebHdfsMethods.java:950)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods.get(NamenodeWebHdfsMethods.java:855)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods.access$300(NamenodeWebHdfsMethods.java:99)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods$3.run(NamenodeWebHdfsMethods.java:794)
	at org.apache.hadoop.hdfs.server.namenode.web.resources.NamenodeWebHdfsMethods$3.run(NamenodeWebHdfsMethods.java:790)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)

从日志namenode.FSPermissionChecker.getINodeAttrs(FSPermissionChecker.java:238)能看出是在校验用户权限时出错了。然后查到在webhdfs默认用户是在core-siste.xml中用hadoop.http.staticuser.user参数配置。我是因为没有配置这个参数引起的。然后将此参数配置为hadoop的超级用户hadoop。问题解决。

猜你喜欢

转载自blog.csdn.net/join_null/article/details/87709989