Using rack awareness for read replicas

Rack awareness for read replicas is modeled after the mechanism used for rack awareness in Hadoop.

The default implementation, which you can override by setting hbase.util.ip.to.rack.determiner, to custom implementation, is ScriptBasedMapping, which uses a topology map and a topology script to enforce distribution of the replicas across racks.