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()

Reply via email to