You might want to invoke a rolling restart when upgrading to a new HBase version, or when you want to apply some configuration changes. As described in the Graceful node decommissioning recipe, a rolling restart minimizes downtime because we only take a single region offline at a time rather than a whole cluster. A rolling restart keeps the region distribution the same as what it was before the restart. This is important to retain data locality.
Note
New HBase versions are not always backward compatible. You can invoke a rolling restart to upgrade minor releases (for example, from 0.92.1 to 0.92.2), but not across major versions (for example, from 0.92.x to 0.94.x) because the protocol has changed between these versions. This will change in HBase 0.96 when you will be able to have old clients talk to new servers and vice versa.
Please check the following link for details about upgrading from one version to another:
A rolling restart...