HBase
  1. HBase
  2. HBASE-6691

HFile quarantine fails with missing files in hadoop 2.0

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.95.2
    • Fix Version/s: 0.95.0
    • Component/s: hadoop2, hbck
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Trunk/0.96 has a specific issue mentioned in HBASE-6686 when run against hadoop 2.0. This addresses this problem.

      2012-08-29 12:55:26,031 ERROR [IPC Server handler 0 on 41070] security.UserGroupInformation(1235): PriviledgedActionException as:jon (auth:SIMPLE) cause:java.io.FileNotFoundException: File does not exist: /user/jon/hbase/testQuarantineMissingHFile/4332ea87d02d33e443550537722ff4fc/fam/befbe65ff30e4a46866f04a5671f0e44
      2012-08-29 12:55:26,085 WARN  [Thread-2994] hbck.HFileCorruptionChecker(253): Failed to quaratine an HFile in regiondir hdfs://localhost:41070/user/jon/hbase/testQuarantineMissingHFile/4332ea87d02d33e443550537722ff4fc
      java.lang.reflect.UndeclaredThrowableException
      	at $Proxy23.getBlockLocations(Unknown Source)
      	at org.apache.hadoop.hdfs.DFSClient.callGetBlockLocations(DFSClient.java:882)
      	at org.apache.hadoop.hdfs.DFSInputStream.fetchLocatedBlocksAndGetLastBlockLength(DFSInputStream.java:152)
      	at org.apache.hadoop.hdfs.DFSInputStream.openInfo(DFSInputStream.java:119)
      	at org.apache.hadoop.hdfs.DFSInputStream.<init>(DFSInputStream.java:112)
      	at org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:955)
      	at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:212)
      	at org.apache.hadoop.hdfs.DistributedFileSystem.open(DistributedFileSystem.java:75)
      	at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:664)
      	at org.apache.hadoop.hbase.io.hfile.HFile.createReaderWithEncoding(HFile.java:575)
      	at org.apache.hadoop.hbase.io.hfile.HFile.createReader(HFile.java:605)
      	at org.apache.hadoop.hbase.util.hbck.HFileCorruptionChecker.checkHFile(HFileCorruptionChecker.java:94)
      	at org.apache.hadoop.hbase.util.TestHBaseFsck$1$1.checkHFile(TestHBaseFsck.java:1401)
      	at org.apache.hadoop.hbase.util.hbck.HFileCorruptionChecker.checkColFamDir(HFileCorruptionChecker.java:175)
      	at org.apache.hadoop.hbase.util.hbck.HFileCorruptionChecker.checkRegionDir(HFileCorruptionChecker.java:208)
      	at org.apache.hadoop.hbase.util.hbck.HFileCorruptionChecker$RegionDirChecker.call(HFileCorruptionChecker.java:290)
      	at org.apache.hadoop.hbase.util.hbck.HFileCorruptionChecker$RegionDirChecker.call(HFileCorruptionChecker.java:281)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      	at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.reflect.InvocationTargetException
      	at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.apache.hadoop.hbase.fs.HFileSystem$1.invoke(HFileSystem.java:261)
      	... 27 more
      Caused by: java.io.FileNotFoundException: File does not exist: /user/jon/hbase/testQuarantineMissingHFile/4332ea87d02d33e443550537722ff4fc/fam/befbe65ff30e4a46866f04a5671f0e44
      	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocationsUpdateTimes(FSNamesystem.java:1133)
      	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1095)
      	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlockLocations(FSNamesystem.java:1067)
      	at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getBlockLocations(NameNodeRpcServer.java:384)
      	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getBlockLocations(ClientNamenodeProtocolServerSideTranslatorPB.java:165)
      	at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:42586)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:427)
      	at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:916)
      	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1692)
      	at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1688)
      	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:1232)
      	at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1686)
      
      	at org.apache.hadoop.ipc.Client.call(Client.java:1161)
      	at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:184)
      	at $Proxy17.getBlockLocations(Unknown Source)
      	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
      	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:165)
      	at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:84)
      	at $Proxy17.getBlockLocations(Unknown Source)
      	at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getBlockLocations(ClientNamenodeProtocolTranslatorPB.java:149)
      	... 31 more
      
      1. hbase-6691-v2.patch
        3 kB
        Jonathan Hsieh
      2. 6691.patch
        3 kB
        Jonathan Hsieh

        Issue Links

          Activity

          No work has yet been logged on this issue.

            People

            • Assignee:
              Jonathan Hsieh
              Reporter:
              Jonathan Hsieh
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development