Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.1.0
-
None
Description
HistoryServer cann't list event Log on WEB UI when there was a no permissions directory in the $spark.eventLog.dir. eg, The following files list is in the $spark.eventLog.dir directory:
[yangping.wu@master spark-1.1.0-bin-2.2.0]$ bin/hadoop fs -ls /spark-logs/eventLog
Found 45 items
drwxrwxrwx - root root 0 2014-09-24 18:31 /spark-logs/eventLog/scala.hbasetest-1411552435599
drwxrwxrwx - root root 0 2014-09-24 17:56 /spark-logs/eventLog/scala.hbasetest-1411552547780
drwxrwxrwx - root root 0 2014-09-24 18:00 /spark-logs/eventLog/scala.hbasetest-1411552747689
drwxrwxrwx - root root 0 2014-09-24 18:05 /spark-logs/eventLog/scala.hbasetest-1411553051906
drwxrwxrwx - root root 0 2014-09-24 18:09 /spark-logs/eventLog/scala.hbasetest-1411553328706
drwxrwxrwx - root root 0 2014-09-24 18:22 /spark-logs/eventLog/scala.hbasetest-1411554132311
drwxrwxrwx - root root 0 2014-09-26 10:57 /spark-logs/eventLog/simple-application-1411698604636
drwxrwxrwx - root root 0 2014-09-26 14:45 /spark-logs/eventLog/simple-application-1411712643513
drwxrwx--- - yangping.wu supergroup 0 2014-09-26 16:29 /spark-logs/eventLog/simple-application-1411720159090( didn't have permissions for historyServer)
drwxrwx--- - yangping.wu root 0 2014-09-26 16:29 /spark-logs/eventLog/simple-application-1411720190625
but when I start the historyServer, The historyServer meet a AccessControlException in the log file as following:
26 Sep 2014 17:50:26,561 ERROR [LogCheckingThread] (org.apache.spark.Logging$class.logError:96) - Exception in checking for event log updates org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=EXECUTE, inode="/spark-logs/eventLog/simple-application-1411720159090":yangping.wu:supergroup:drwxrwx--- at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:234) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:187) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:150) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5186) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5168) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkTraverse(FSNamesystem.java:5147) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getFileInfo(FSNamesystem.java:3286) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getFileInfo(NameNodeRpcServer.java:749) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getFileInfo(ClientNamenodeProtocolServerSideTranslatorPB.java:692) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:59628) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044) 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:1491) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106) at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:73) at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1681) at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1106) at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1102) at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1102) at org.apache.hadoop.fs.FileSystem.isFile(FileSystem.java:1423) at org.apache.spark.deploy.history.FsHistoryProvider$$anonfun$liftedTree1$1$1.apply(FsHistoryProvider.scala:126) at org.apache.spark.deploy.history.FsHistoryProvider$$anonfun$liftedTree1$1$1.apply(FsHistoryProvider.scala:125) at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:264) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34) at scala.collection.TraversableLike$class.filter(TraversableLike.scala:263) at scala.collection.AbstractTraversable.filter(Traversable.scala:105) at org.apache.spark.deploy.history.FsHistoryProvider.org$apache$spark$deploy$history$FsHistoryProvider$$checkForLogs(FsHistoryProvider.scala:123) at org.apache.spark.deploy.history.FsHistoryProvider$$anon$1$$anonfun$run$1.apply$mcV$sp(FsHistoryProvider.scala:70) at org.apache.spark.deploy.history.FsHistoryProvider$$anon$1$$anonfun$run$1.apply(FsHistoryProvider.scala:61) at org.apache.spark.deploy.history.FsHistoryProvider$$anon$1$$anonfun$run$1.apply(FsHistoryProvider.scala:61) at org.apache.spark.util.Utils$.logUncaughtExceptions(Utils.scala:1311)
Because the HistoryServer don't have permission to read the directory(/spark-logs/eventLog/simple-application-1411720159090). and lead the HistoryServer cann't show other event log file on the WEB UI. but show "No Completed Applications Found"! I think the HistoryServer can ignore the incorrect directory(eg: /spark-logs/eventLog/simple-application-1411720159090 as mentioned above).