Chapter 3. Upgrading

Table of Contents

3.1. HBase version numbers
3.1.1. Odd/Even Versioning or "Development"" Series Releases
3.1.2. Binary Compatibility
3.1.3. Rolling Upgrade between versions/Binary compatibility
3.2. Upgrading from 0.94.x to 0.96.x
3.2.1. Executing the 0.96 Upgrade
3.3. Upgrading from 0.92.x to 0.94.x
3.4. Upgrading from 0.90.x to 0.92.x
3.4.1. You can’t go back!
3.4.2. MSLAB is ON by default
3.4.3. Distributed splitting is on by default
3.4.4. Memory accounting is different now
3.4.5. On the Hadoop version to use
3.4.6. HBase 0.92.0 ships with ZooKeeper 3.4.2
3.4.7. Online alter is off by default
3.4.8. WebUI
3.4.9. Security tarball
3.4.10. Experimental off-heap cache
3.4.11. Changes in HBase replication
3.4.12. RegionServer now aborts if OOME
3.4.13. HFile V2 and the “Bigger, Fewer” Tendency
3.5. Upgrading to HBase 0.90.x from 0.20.x or 0.89.x

You cannot skip major verisons upgrading. If you are upgrading from version 0.90.x to 0.94.x, you must first go from 0.90.x to 0.92.x and then go from 0.92.x to 0.94.x.

Review Chapter 2, Apache HBase Configuration, in particular the section on Hadoop version.

3.1. HBase version numbers

HBase has not walked a straight line where version numbers are concerned. Since we came up out of hadoop itself, we originally tracked hadoop versioning. Later we left hadoop versioning behind because we were moving at a different rate to that of our parent. If you are into the arcane, checkout our old wiki page on HBase Versioning which tries to connect the HBase version dots.

3.1.1. Odd/Even Versioning or "Development"" Series Releases

Ahead of big releases, we have been putting up preview versions to start the feedback cycle turning-over earlier. These "Development" Series releases, always odd-numbered, come with no guarantees, not even regards being able to upgrade between two sequential releases (we reserve the right to break compatibility across "Development" Series releases). Needless to say, these releases are not for production deploys. They are a preview of what is coming in the hope that interested parties will take the release for a test drive and flag us early if we there are issues we've missed ahead of our rolling a production-worthy release.

Our first "Development" Series was the 0.89 set that came out ahead of HBase 0.90.0. HBase 0.95 is another "Development" Series that portends HBase 0.96.0.

3.1.2. Binary Compatibility

When we say two HBase versions are compatible, we mean that the versions are wire and binary compatible. Compatible HBase versions means that clients can talk to compatible but differently versioned servers. It means too that you can just swap out the jars of one version and replace them with the jars of another, compatible version and all will just work. Unless otherwise specified, HBase point versions are binary compatible. You can safely do rolling upgrades between binary compatible versions; i.e. across point versions: e.g. from 0.94.5 to 0.94.6[13].

3.1.3. Rolling Upgrade between versions/Binary compatibility

Unless otherwise specified, HBase point versions are binary compatible. you can do a rolling upgrade between hbase point versions; for example, you can go to 0.94.6 from 0.94.5 by doing a rolling upgrade across the cluster replacing the 0.94.5 binary with a 0.94.6 binary.

[13] See Does compatibility between versions also mean binary compatibility? discussion on the hbaes dev mailing list.

comments powered by Disqus