private static Put makePut(RegionInfo regionInfo, List<ServerName> favoredNodeList)
    throws IOException {
    if (CollectionUtils.isEmpty(favoredNodeList)) {
      return null;
    }
    long time = EnvironmentEdgeManager.currentTime();
    Put put = new Put(CatalogFamilyFormat.getMetaKeyForRegion(regionInfo), time);
    byte[] favoredNodes = getFavoredNodes(favoredNodeList);
    put.add(CellBuilderFactory.create(CellBuilderType.SHALLOW_COPY).setRow(put.getRow())
      .setFamily(HConstants.CATALOG_FAMILY).setQualifier(FAVOREDNODES_QUALIFIER).setTimestamp(time)
      .setType(Cell.Type.Put).setValue(favoredNodes).build());
    LOG.debug("Create the region {} with favored nodes {}", regionInfo.getRegionNameAsString(),
      favoredNodeList);
    return put;
  }
Update meta table with favored nodes info
hbase-balancer/src/main/java/org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.java