Uploaded image for project: 'Spark'
  1. Spark
  2. SPARK-3697

HistoryServer cann't list event Log when there was a no permissions directory in the $spark.eventLog.dir

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 1.1.0
    • 1.2.0
    • Spark Core
    • 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).

      Attachments

        Activity

          People

            Unassigned Unassigned
            397090770 iteblog
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 8h
                8h
                Remaining:
                Remaining Estimate - 8h
                8h
                Logged:
                Time Spent - Not Specified
                Not Specified