@Override
  BalanceAction generate(BalancerClusterState cluster) {
    BalanceAction balanceAction = generateCandidate(cluster, false);
    if (!willBeAccepted(cluster, balanceAction)) {
      LOG.debug("Generated action is not widely accepted by all conditionals. "
        + "Likely we are finding our way out of a deadlock. balanceAction={}", balanceAction);
    }
    return balanceAction;
  }
Generates a balancing action to appease the conditional.
@param cluster    Current state of the cluster.
@param isWeighing Flag indicating if the generator is being used for weighing.
@return A BalanceAction, or NULL_ACTION if no action is needed.
hbase-balancer/src/main/java/org/apache/hadoop/hbase/master/balancer/RegionPlanConditionalCandidateGenerator.java