From 74ee21a7b1159a642fe332d5c9b4034a0361e52f Mon Sep 17 00:00:00 2001 From: Mingliang Liu Date: Tue, 27 Dec 2016 11:21:10 -0800 Subject: [PATCH] HDFS-11270. Document the missing options of NameNode bootstrap command. Contributed by Yiqun Lin (cherry picked from commit c0e0ef29696109af9a018462059f08fd99ee3121) --- .../hadoop/hdfs/server/common/HdfsServerConstants.java | 1 + .../apache/hadoop/hdfs/server/namenode/NameNode.java | 5 ++++- .../hdfs/server/namenode/ha/BootstrapStandby.java | 10 ++++++++-- .../hadoop-hdfs/src/site/markdown/HDFSCommands.md | 4 ++-- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java index 0b925f0d155..8b6fbfe74b3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/common/HdfsServerConstants.java @@ -149,6 +149,7 @@ public interface HdfsServerConstants { RECOVER ("-recover"), FORCE("-force"), NONINTERACTIVE("-nonInteractive"), + SKIPSHAREDEDITSCHECK("-skipSharedEditsCheck"), RENAMERESERVED("-renameReserved"), METADATAVERSION("-metadataVersion"), UPGRADEONLY("-upgradeOnly"), diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java index 41a752173d4..f2f3d8818b0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java @@ -308,7 +308,10 @@ public class NameNode extends ReconfigurableBase implements + StartupOption.FINALIZE.getName() + "] | \n\t[" + StartupOption.IMPORT.getName() + "] | \n\t[" + StartupOption.INITIALIZESHAREDEDITS.getName() + "] | \n\t[" - + StartupOption.BOOTSTRAPSTANDBY.getName() + "] | \n\t[" + + StartupOption.BOOTSTRAPSTANDBY.getName() + " [" + + StartupOption.FORCE.getName() + "] [" + + StartupOption.NONINTERACTIVE.getName() + "] [" + + StartupOption.SKIPSHAREDEDITSCHECK.getName() + "] ] | \n\t[" + StartupOption.RECOVER.getName() + " [ " + StartupOption.FORCE.getName() + "] ] | \n\t[" + StartupOption.METADATAVERSION.getName() + " ]"; diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/BootstrapStandby.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/BootstrapStandby.java index 5e192eaf94f..f509365c7c6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/BootstrapStandby.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ha/BootstrapStandby.java @@ -138,8 +138,14 @@ public class BootstrapStandby implements Tool, Configurable { } private void printUsage() { - System.err.println("Usage: " + this.getClass().getSimpleName() + - " [-force] [-nonInteractive] [-skipSharedEditsCheck]"); + System.out.println("Usage: " + this.getClass().getSimpleName() + + " [-force] [-nonInteractive] [-skipSharedEditsCheck]\n" + + "\t-force: formats if the name directory exists.\n" + + "\t-nonInteractive: formats aborts if the name directory exists,\n" + + "\tunless -force option is specified.\n" + + "\t-skipSharedEditsCheck: skips edits check which ensures that\n" + + "\twe have enough edits already in the shared directory to start\n" + + "\tup from the last checkpoint on the active."); } private NamenodeProtocol createNNProtocolProxy() diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md index 797054794be..72cca43abd0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md +++ b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSCommands.md @@ -484,7 +484,7 @@ Usage: [-finalize] | [-importCheckpoint] | [-initializeSharedEdits] | - [-bootstrapStandby] | + [-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] | [-recover [-force] ] | [-metadataVersion ] @@ -500,7 +500,7 @@ Usage: | `-finalize` | No longer supported. Use `dfsadmin -finalizeUpgrade` instead. | | `-importCheckpoint` | Loads image from a checkpoint directory and save it into the current one. Checkpoint dir is read from property dfs.namenode.checkpoint.dir | | `-initializeSharedEdits` | Format a new shared edits dir and copy in enough edit log segments so that the standby NameNode can start up. | -| `-bootstrapStandby` | Allows the standby NameNode's storage directories to be bootstrapped by copying the latest namespace snapshot from the active NameNode. This is used when first configuring an HA cluster. | +| `-bootstrapStandby` `[-force]` `[-nonInteractive]` `[-skipSharedEditsCheck]` | Allows the standby NameNode's storage directories to be bootstrapped by copying the latest namespace snapshot from the active NameNode. This is used when first configuring an HA cluster. The option -force or -nonInteractive has the same meaning as that described in namenode -format command. -skipSharedEditsCheck option skips edits check which ensures that we have enough edits already in the shared directory to start up from the last checkpoint on the active. | | `-recover` `[-force]` | Recover lost metadata on a corrupt filesystem. See [HDFS User Guide](./HdfsUserGuide.html#Recovery_Mode) for the detail. | | `-metadataVersion` | Verify that configured directories exist, then print the metadata versions of the software and the image. |