anchor.diff:  [[upgrade2.2]]
   === Upgrade from 2.0 or 2.1 to 2.2+
   
  -HBase 2.2+ uses a new Procedure form assiging/unassigning/moving Regions. It does not process HBase 2.1 and 2.0's Unassign/Assign Procedure types. Upgrade requires that we first drain the Master Procedure Store of old style Procedures before starting the new 2.2 Master. So you need to make sure that before you kill the old version (2.0 or 2.1) Master, there is no region in transition. And once the new version (2.2+) Master is up, you can rolling upgrade RegionServers one by one.
  +HBase 2.2+ uses a new Procedure form assigning/unassigning/moving Regions. It does not process HBase 2.1 and 2.0's Unassign/Assign Procedure types. Upgrade requires that we first drain the Master Procedure Store of old style Procedures before starting the new 2.2 Master. So you need to make sure that before you kill the old version (2.0 or 2.1) Master, there is no region in transition. And once the new version (2.2+) Master is up, you can rolling upgrade RegionServers one by one.
   
   And there is a more safer way if you are running 2.1.1+ or 2.0.3+ cluster. It need four steps to upgrade Master.
   
  
positive.code: [[upgrade2.0.logging]]
  .Changed logging
  HBase-2.0.0 now uses link:https://www.slf4j.org/[slf4j] as its logging frontend.
  Prevously, we used link:http://logging.apache.org/log4j/1.2/[log4j (1.2)].
  For most the transition should be seamless; slf4j does a good job interpreting
  _log4j.properties_ logging configuration files such that you should not notice
  any difference in your log system emissions.
  
negative.code: * hbase.regionserver.hlog.blocksize defaults to 2x the HDFS default block size for the WAL dir. Previously it was equal to the HDFS default block size for the WAL dir.
  * hbase.client.start.log.errors.counter changed to 5. Previously it was 9.
  * hbase.ipc.server.callqueue.type changed to 'fifo'. In HBase versions 1.0 - 1.2 it was 'deadline'. In prior and later 1.x versions it already defaults to 'fifo'.
  * hbase.hregion.memstore.chunkpool.maxsize is 1.0 by default. Previously it was 0.0. Effectively, this means previously we would not use a chunk pool when our memstore is onheap and now we will. See the section <<gcpause>> for more information about the MSLAB chunk pool.
  * hbase.master.cleaner.interval is now set to 10 minutes. Previously it was 1 minute.
  * hbase.master.procedure.threads will now default to 1/4 of the number of available CPUs, but not less than 16 threads. Previously it would be number of threads equal to number of CPUs.
  * hbase.hstore.blockingStoreFiles is now 16. Previously it was 10.
  