No, even though the new hive command is used to invoke the de-register, the version which is used is from params.current_version, which is the version of hive before upgrade; vs the desired_version which is the post-upgrade version.
> On Feb 19, 2016, at 6:07 PM, Di Li <[email protected]> wrote: > > Hello there, > > I am looking at Hive Server2 rolling ugprade code. > > For the code here, Ambari issues post_upgrade_deregister() at the end of the > start method call. The deregister calculates the "current version" of Hive > via hive --version cmd. > Since the deregister is at the end of the start method, is the version > calculated be the one for the update hive and thus the deregister is > deregister the new hive server2 instance (the one started on 10010). I think > the goal is to deregister the old instance running on 10000 port. > > def start(self, env, upgrade_type=None): > import params > env.set_params(params) > self.configure(env) # FOR SECURITY > > hive_service( 'hiveserver2', action = 'start', upgrade_type=upgrade_type) > > # only perform this if upgrading and rolling; a non-rolling upgrade > doesn't need > # to do this since hive is already down > if upgrade_type == UPGRADE_TYPE_ROLLING: > hive_server_upgrade.post_upgrade_deregister()
