def prepare_non_rolling_upgrade(self, env): """ If in HA, on the Active NameNode only, examine the directory dfs.namenode.name.dir and make sure that there is no "/previous" directory. Create a list of all the DataNodes in the cluster. hdfs dfsadmin -report > dfs-old-report-1.log hdfs dfsadmin -safemode enter hdfs dfsadmin -saveNamespace Copy the checkpoint files located in ${dfs.namenode.name.dir}/current into a backup directory. Store the layoutVersion for the NameNode located at ${dfs.namenode.name.dir}/current/VERSION, into a backup directory Finalize any prior HDFS upgrade, hdfs dfsadmin -finalizeUpgrade """ import params Logger.info( "Preparing the NameNodes for a NonRolling (aka Express) Upgrade.") if params.security_enabled: Execute(format( "{kinit_path_local} -kt {hdfs_user_keytab} {hdfs_principal_name}" ), user=params.hdfs_user) hdfs_binary = self.get_hdfs_binary() namenode_upgrade.prepare_upgrade_check_for_previous_dir() namenode_upgrade.prepare_upgrade_enter_safe_mode(hdfs_binary) namenode_upgrade.prepare_upgrade_save_namespace(hdfs_binary) namenode_upgrade.prepare_upgrade_backup_namenode_dir() namenode_upgrade.prepare_upgrade_finalize_previous_upgrades( hdfs_binary)
def prepare_express_upgrade(self, env): """ During an Express Upgrade. If in HA, on the Active NameNode only, examine the directory dfs.namenode.name.dir and make sure that there is no "/previous" directory. Create a list of all the DataNodes in the cluster. hdfs dfsadmin -report > dfs-old-report-1.log hdfs dfsadmin -safemode enter hdfs dfsadmin -saveNamespace Copy the checkpoint files located in ${dfs.namenode.name.dir}/current into a backup directory. Finalize any prior HDFS upgrade, hdfs dfsadmin -finalizeUpgrade Prepare for a NameNode rolling upgrade in order to not lose any data. hdfs dfsadmin -rollingUpgrade prepare """ import params Logger.info( "Preparing the NameNodes for a NonRolling (aka Express) Upgrade.") if params.security_enabled: kinit_command = format( "{params.kinit_path_local} -kt {params.hdfs_user_keytab} {params.hdfs_principal_name}" ) Execute(kinit_command, user=params.hdfs_user, logoutput=True) hdfs_binary = self.get_hdfs_binary() namenode_upgrade.prepare_upgrade_check_for_previous_dir() namenode_upgrade.prepare_upgrade_enter_safe_mode(hdfs_binary) if not params.skip_namenode_save_namespace_express: namenode_upgrade.prepare_upgrade_save_namespace(hdfs_binary) if not params.skip_namenode_namedir_backup_express: namenode_upgrade.prepare_upgrade_backup_namenode_dir() namenode_upgrade.prepare_upgrade_finalize_previous_upgrades( hdfs_binary) summary = upgrade_summary.get_upgrade_summary() if summary is not None and summary.is_downgrade_allowed: # Call -rollingUpgrade prepare namenode_upgrade.prepare_rolling_upgrade(hdfs_binary) else: Logger.info( "Downgrade will not be possible. Skipping '-rollingUpgrade prepare'" )
def prepare_express_upgrade(self, env): """ During an Express Upgrade. If in HA, on the Active NameNode only, examine the directory dfs.namenode.name.dir and make sure that there is no "/previous" directory. Create a list of all the DataNodes in the cluster. hdfs dfsadmin -report > dfs-old-report-1.log hdfs dfsadmin -safemode enter hdfs dfsadmin -saveNamespace Copy the checkpoint files located in ${dfs.namenode.name.dir}/current into a backup directory. Finalize any prior HDFS upgrade, hdfs dfsadmin -finalizeUpgrade Prepare for a NameNode rolling upgrade in order to not lose any data. hdfs dfsadmin -rollingUpgrade prepare """ import params Logger.info("Preparing the NameNodes for a NonRolling (aka Express) Upgrade.") if params.security_enabled: kinit_command = format("{params.kinit_path_local} -kt {params.hdfs_user_keytab} {params.hdfs_principal_name}") Execute(kinit_command, user=params.hdfs_user, logoutput=True) hdfs_binary = self.get_hdfs_binary() namenode_upgrade.prepare_upgrade_check_for_previous_dir() namenode_upgrade.prepare_upgrade_enter_safe_mode(hdfs_binary) namenode_upgrade.prepare_upgrade_save_namespace(hdfs_binary) namenode_upgrade.prepare_upgrade_backup_namenode_dir() namenode_upgrade.prepare_upgrade_finalize_previous_upgrades(hdfs_binary) # Call -rollingUpgrade prepare namenode_upgrade.prepare_rolling_upgrade(hdfs_binary)