多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(ClientNa

在HDFS中,多个DFSClient尝试同时写入同一文件可能导致 Lease mismatch 和 No lease 异常。异常发生在客户端尝试添加块时,由于权限冲突和文件不存在。错误处理中不恰当的删除远程文件会导致额外的问题,如正在上传的文件被意外删除。解决办法应确保单个客户端对文件的独占写入或使用适当的锁同步机制。
最低0.47元/天 解锁文章
347





