之前说过case有两个
switch (startOpt) { case FORMAT: boolean aborted = format(conf, true); System.exit(aborted ? 1 : 0); case FINALIZE: aborted = finalize(conf, true); System.exit(aborted ? 1 : 0); default: }
现在看下finalize:
private static boolean finalize(Configuration conf, boolean isConfirmationNeeded ) throws IOException { CollectiondirsToFormat = FSNamesystem.getNamespaceDirs(conf); Collection editDirsToFormat = FSNamesystem.getNamespaceEditsDirs(conf); FSNamesystem nsys = new FSNamesystem(new FSImage(dirsToFormat, editDirsToFormat), conf); System.err.print( "\"finalize\" will remove the previous state of the files system.\n" + "Recent upgrade will become permanent.\n" + "Rollback option will not be available anymore.\n"); if (isConfirmationNeeded) { System.err.print("Finalize filesystem state ? (Y or N) "); if (!(System.in.read() == 'Y')) { System.err.println("Finalize aborted."); return true; } while(System.in.read() != '\n'); // discard the enter-key } nsys.dir.fsImage.finalizeUpgrade(); return false; }
接下来会牵扯一些rpc相关的.
问题:
<property>
<name>dfs.namenode.handler.count</name> <value>10</value> <description>The number of server threads for the namenode.</description></property>