Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java (date 1477605507000) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java (revision ) @@ -27,6 +27,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.FileSystem; @@ -42,6 +43,7 @@ import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Result; +import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.regionserver.HRegionFileSystem; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.FSUtils; @@ -215,6 +217,10 @@ MetaTableAccessor.deleteMergeQualifiers(services.getConnection(), mergedRegion); services.getServerManager().removeRegion(regionA); services.getServerManager().removeRegion(regionB); + FavoredNodesManager fnm = this.services.getFavoredNodesManager(); + if (fnm != null) { + fnm.deleteFavoredNodesForRegion(Lists.newArrayList(regionA, regionB)); + } return true; } return false; @@ -360,6 +366,10 @@ HFileArchiver.archiveRegion(this.services.getConfiguration(), fs, parent); MetaTableAccessor.deleteRegion(this.connection, parent); services.getServerManager().removeRegion(parent); + FavoredNodesManager fnm = this.services.getFavoredNodesManager(); + if (fnm != null) { + fnm.deleteFavoredNodesForRegion(Lists.newArrayList(parent)); + } result = true; } return result; \ No newline at end of file Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java (date 1477605507000) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java (revision ) @@ -43,6 +43,7 @@ import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.exceptions.HBaseException; +import org.apache.hadoop.hbase.favored.FavoredNodesManager; import org.apache.hadoop.hbase.master.AssignmentManager; import org.apache.hadoop.hbase.master.MasterCoprocessorHost; import org.apache.hadoop.hbase.master.MasterFileSystem; @@ -365,6 +366,12 @@ // clean region references from the server manager env.getMasterServices().getServerManager().removeRegions(regions); + + // Clear Favored Nodes for this table + FavoredNodesManager fnm = env.getMasterServices().getFavoredNodesManager(); + if (fnm != null) { + fnm.deleteFavoredNodesForRegion(regions); + } } protected static void deleteAssignmentState(final MasterProcedureEnv env,