[ 
https://issues.apache.org/jira/browse/HDFS-6597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14062687#comment-14062687
 ] 

Chris Nauroth commented on HDFS-6597:
-------------------------------------

Hi, [~dvunjak].  This mostly looks good.  I have 2 comments:
# I built the distro after adding a bogus new feature to bump the version to 
-58 in {{NameNodeLayoutVersion}}.  I tried running -upgradeOnly, but it didn't 
actually upgrade the metadata files.  It looks like you'll need another change 
in {{FSImage#recoverTransitionRead}}.  There is a switch statement that looks 
for the {{UPGRADE}} option, but not the new {{UPGRADEONLY}} option.
# The new test suite is a copy of the existing {{TestStartupOptionUpgrade}} 
with the option changed to {{UPGRADEONLY}}.  Instead of cloning the code, this 
looks like a good opportunity for a JUnit {{Parameterized}} test.  See 
{{TestNameNodeHttpServer}} for an existing example of a {{Parameterized}} test. 
 I think you can make a fairly small change in the existing 
{{TestStartupOptionUpgrade}} so that it's parameterized to run on both options: 
{{UPGRADE}} and {{UPGRADEONLY}}.

> Add a new option to NN upgrade to terminate the process after upgrade on NN 
> is completed
> ----------------------------------------------------------------------------------------
>
>                 Key: HDFS-6597
>                 URL: https://issues.apache.org/jira/browse/HDFS-6597
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>            Reporter: Danilo Vunjak
>            Assignee: Danilo Vunjak
>         Attachments: HDFS-6597.04.patch, JIRA-HDFS-30.patch, 
> JIRA-HDFS-6597.02.patch, JIRA-HDFS-6597.03.patch, JIRA-HDFS-6597.patch
>
>
> Currently when namenode is started for upgrade (hadoop namenode -upgrade 
> command), after finishing upgrade of metadata, namenode starts working 
> normally and wait for datanodes to upgrade itself and connect to to NN. We 
> need to have option for upgrading only NN metadata, so after upgrade is 
> finished on NN, process should terminate.
> I have tested it by changing in file: hdfs.server.namenode.NameNode.java, 
> method: public static NameNode createNameNode(String argv[], Configuration 
> conf):
>  in switch added
>  case UPGRADE:
> case UPGRADE:
>       {
>         DefaultMetricsSystem.initialize("NameNode");
>           NameNode nameNode = new NameNode(conf);
>           if (startOpt.getForceUpgrade()) {
>                 terminate(0);
>                 return null;
>           }
>           
>           return nameNode;
>       }
> This did upgrade of metadata, closed process after finished, and later when 
> all services were started, upgrade of datanodes finished sucessfully and 
> system run .
> What I'm suggesting right now is to add new startup parameter "-force", so 
> namenode can be started like this "hadoop namenode -upgrade -force", so we 
> can indicate that we want to terminate process after upgrade metadata on NN 
> is finished. Old functionality should be preserved, so users can run "hadoop 
> namenode -upgrade" on same way and with same behaviour as it was previous.
>  Thanks,
>  Danilo



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to