上图给出了最终会调用到complete RPC的客户端侧方法链路(除去Router那条线了)。
org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock):
下面这个方法在complete rpc返回true之前,会进行重试,直到超过最大重试次数抛异常。
另外需要注意的是,这个方法在锁里(锁的是当前的流对象)。
// should be called holding (this) lock since setTestFilename() may// be called during unit testsprotectedvoidcompleteFile(ExtendedBlock last)throwsIOException
版权归原作者 叹了口丶气 所有, 如有侵权,请联系我们删除。