HDFS-14396. Failed to load image from FSImageFile when downgrade from 3.x to 2.x. Contributed by Fei Hui.
This commit is contained in:
parent
edd708527d
commit
bd7baea5a5
@ -813,6 +813,8 @@ private long saveInternal(FileOutputStream fout,
|
||||
FSImageCompression compression, String filePath) throws IOException {
|
||||
StartupProgress prog = NameNode.getStartupProgress();
|
||||
MessageDigest digester = MD5Hash.getDigester();
|
||||
int layoutVersion =
|
||||
context.getSourceNamesystem().getEffectiveLayoutVersion();
|
||||
|
||||
underlyingOutputStream = new DigestOutputStream(new BufferedOutputStream(
|
||||
fout), digester);
|
||||
@ -839,11 +841,16 @@ private long saveInternal(FileOutputStream fout,
|
||||
// depends on this behavior.
|
||||
context.checkCancelled();
|
||||
|
||||
Step step;
|
||||
|
||||
// Erasure coding policies should be saved before inodes
|
||||
Step step = new Step(StepType.ERASURE_CODING_POLICIES, filePath);
|
||||
if (NameNodeLayoutVersion.supports(
|
||||
NameNodeLayoutVersion.Feature.ERASURE_CODING, layoutVersion)) {
|
||||
step = new Step(StepType.ERASURE_CODING_POLICIES, filePath);
|
||||
prog.beginStep(Phase.SAVING_CHECKPOINT, step);
|
||||
saveErasureCodingSection(b);
|
||||
prog.endStep(Phase.SAVING_CHECKPOINT, step);
|
||||
}
|
||||
|
||||
step = new Step(StepType.INODES, filePath);
|
||||
prog.beginStep(Phase.SAVING_CHECKPOINT, step);
|
||||
|
Loading…
Reference in New Issue
Block a user