Package org.apache.hadoop.hbase.snapshot
Class SnapshotRegionLocator
java.lang.Object
org.apache.hadoop.hbase.snapshot.SnapshotRegionLocator
- All Implemented Interfaces:
Closeable,AutoCloseable,RegionLocator
RegionLocator built using the most recent full backup's snapshot manifest for a given
table. Useful for aligning any subsequent incremental backups along the same splits as the full
backup-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classstatic final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ServerNameprivate final List<HRegionLocation>private final TreeMap<byte[],SnapshotRegionLocator.HRegionReplicas> private static final Stringprivate final TableNameFields inherited from interface org.apache.hadoop.hbase.client.RegionLocator
LOCATOR_META_REPLICAS_MODE, LOCATOR_META_REPLICAS_MODE_LOADBALANCE_SELECTOR -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateSnapshotRegionLocator(TableName tableName, TreeMap<byte[], SnapshotRegionLocator.HRegionReplicas> regions, List<HRegionLocation> rawLocations) -
Method Summary
Modifier and TypeMethodDescriptionvoidClear all the entries in the region location cache.voidclose()static SnapshotRegionLocatorRetrieves all of the regions associated with this table.getName()Gets the fully qualified table name instance of this table.getRegionLocation(byte[] row, int replicaId, boolean reload) Finds the region with the given replica id on which the given row is being served.getRegionLocations(byte[] row, boolean reload) Find all the replicas for the region on which the given row is being served.private static Stringstatic voidsetSnapshotManifestDir(org.apache.hadoop.conf.Configuration conf, String dir, TableName table) static booleanshouldUseSnapshotRegionLocator(org.apache.hadoop.conf.Configuration conf, TableName table) private static SnapshotRegionLocator.SnapshotHRegionLocationtoLocation(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo ri, TableName tableName) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.hbase.client.RegionLocator
getEndKeys, getRegionLocation, getRegionLocation, getRegionLocation, getRegionLocations, getStartEndKeys, getStartKeys
-
Field Details
-
SNAPSHOT_MANIFEST_DIR_PREFIX
- See Also:
-
FAKE_SERVER_NAME
-
tableName
-
regions
-
rawLocations
-
-
Constructor Details
-
SnapshotRegionLocator
private SnapshotRegionLocator(TableName tableName, TreeMap<byte[], SnapshotRegionLocator.HRegionReplicas> regions, List<HRegionLocation> rawLocations)
-
-
Method Details
-
create
public static SnapshotRegionLocator create(org.apache.hadoop.conf.Configuration conf, TableName table) throws IOException - Throws:
IOException
-
getRegionLocation
public HRegionLocation getRegionLocation(byte[] row, int replicaId, boolean reload) throws IOException Description copied from interface:RegionLocatorFinds the region with the given replica id on which the given row is being served.- Specified by:
getRegionLocationin interfaceRegionLocator- Parameters:
row- Row to find.replicaId- the replica idreload- true to reload information or false to use cached information- Returns:
- Location of the row.
- Throws:
IOException- if a remote or network exception occurs
-
getRegionLocations
Description copied from interface:RegionLocatorFind all the replicas for the region on which the given row is being served.- Specified by:
getRegionLocationsin interfaceRegionLocator- Parameters:
row- Row to find.reload- true to reload information or false to use cached information- Returns:
- Locations for all the replicas of the row.
- Throws:
IOException- if a remote or network exception occurs
-
clearRegionLocationCache
Description copied from interface:RegionLocatorClear all the entries in the region location cache. This may cause performance issue so use it with caution.- Specified by:
clearRegionLocationCachein interfaceRegionLocator
-
getAllRegionLocations
Description copied from interface:RegionLocatorRetrieves all of the regions associated with this table. Usually we will go to meta table directly in this method so there is noreloadparameter. Notice that the location for region replicas other than the default replica are also returned.- Specified by:
getAllRegionLocationsin interfaceRegionLocator- Returns:
- a
Listof all regions associated with this table. - Throws:
IOException- if a remote or network exception occurs
-
getName
Description copied from interface:RegionLocatorGets the fully qualified table name instance of this table.- Specified by:
getNamein interfaceRegionLocator
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
shouldUseSnapshotRegionLocator
public static boolean shouldUseSnapshotRegionLocator(org.apache.hadoop.conf.Configuration conf, TableName table) -
setSnapshotManifestDir
public static void setSnapshotManifestDir(org.apache.hadoop.conf.Configuration conf, String dir, TableName table) -
getSnapshotManifestDirKey
-
toLocation
private static SnapshotRegionLocator.SnapshotHRegionLocation toLocation(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionInfo ri, TableName tableName)
-