hdfs文件读写bug2

来源:互联网 发布:针织中长款开衫淘宝网 编辑:程序博客网 时间:2024/05/18 17:58

  多DFSClient同时写同一个文件,可能会导致以下异常。其中一个会获取权限写,另外的应该会报异常。(但是获取权限的顺序不太确定,也么有深究)

 IOExceptionLease mismatch on  xxxxx owned by DFSClient_NONMAPREDUCE_230060699_8but is accessed by DFSClient_NONMAPREDUCE_1017678927_8

         atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:2949)

         atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.analyzeFileState(FSNamesystem.java:2754)

         atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2662)

         atorg.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)

         atorg.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)

         atorg.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)

         atorg.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)

         atorg.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)

         atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)

         atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)

         atjava.security.AccessController.doPrivileged(Native Method)

         atjavax.security.auth.Subject.doAs(Subject.java:415)

         atorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)

         atorg.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)


 多DFSClient同时写同一个文件,报出异常之后,自以为是的在异常捕获中加入了将远程文件(上传的相同文件)删除的代码。结果又出了另一个bug。一个在上传,另一个把这个文件删除了。。。。

  IOException---No lease on   /XXXX: File does not exist. HolderDFSClient_NONMAPREDUCE_-223137850_8 does not have any open files.

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:2934)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.analyzeFileState(FSNamesystem.java:2754)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2662)

    atorg.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:584)

    atorg.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:440)

    atorg.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)

    atorg.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)

    atorg.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)

    atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)

    atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)

    atjava.security.AccessController.doPrivileged(Native Method)

    atjavax.security.auth.Subject.doAs(Subject.java:415)

    atorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)

    atorg.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)



0 0
原创粉丝点击