Search code examples
hadoophdfscloudera-cdh

Role of 'prepare' command & 'safemode' in HDFS Rolling Upgrade


In HDFS rolling upgrade page at a high level I am seeing the steps mentioned like below

  1. hdfs dfsadmin -rollingUpgrade prepare
  2. Upgrade standby NN2 and start NN2 with hdfs dfsadmin -rollingUpgrade started
  3. Shutdown, upgrade NN1 and start NN1 with hdfs dfsadmin -rollingUpgrade started

But in cloudera documentation of Hadoop to prepare the cluster for upgrade it is just saying to enter NN in safemode & save namespace

sudo -u hdfs hdfs dfsadmin -safemode enter
sudo -u hdfs hdfs dfsadmin -saveNamespace 
  1. Can some one let me know why there is a difference in the above steps?
  2. Is it just sufficient to enter in -safemode before doing the upgrade?
  3. If yes what does -rollingUpgrade started do then?
  4. In the cloudera documentation I am not seeing anything about -safemode leave. When it will leave the safemode? Will it auto leave the safemode ?

Solution

  • The Cloudera instructions are not for upgrading with zero downtime on the core Hadoop services. It explicitly says to shutdown everything.

    I assume rollingUpgrade started command flags the namenode process to tell it not to attempt to become the active in case the standby fails over during the upgrade and it also makes the namenode become the standby, which is different from safe mode. Safe mode prevents metadata updates in the middle of the upgrade process

    I do not think it automatically leaves safe mode. Please comment on the answer once you get there and figure that out