@InterfaceAudience.Private public class HRegionFileSystem extends Object
| Modifier and Type | Field and Description |
|---|---|
static String |
REGION_INFO_FILE
Name of the region info file that resides just under the region directory.
|
static String |
REGION_MERGES_DIR
Temporary subdirectory of the region directory used for merges.
|
static String |
REGION_SPLITS_DIR
Temporary subdirectory of the region directory used for splits.
|
| Modifier and Type | Method and Description |
|---|---|
void |
cleanupMergedRegion(RegionInfo mergedRegion)
Remove merged region
|
org.apache.hadoop.fs.Path |
commitDaughterRegion(RegionInfo regionInfo,
List<org.apache.hadoop.fs.Path> allRegionFiles,
MasterProcedureEnv env)
Commit a daughter region, moving it from the split temporary directory to the proper location
in the filesystem.
|
void |
commitMergedRegion(List<org.apache.hadoop.fs.Path> allMergedFiles,
MasterProcedureEnv env)
Commit a merged region, making it ready for use.
|
org.apache.hadoop.fs.Path |
commitStoreFile(String familyName,
org.apache.hadoop.fs.Path buildPath)
Move the file from a build/temp location to the main family store directory.
|
static HRegionFileSystem |
createRegionOnFileSystem(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path tableDir,
RegionInfo regionInfo)
Create a new Region on file-system.
|
void |
createSplitsDir(RegionInfo daughterA,
RegionInfo daughterB)
Creates region split daughter directories under the table dir.
|
org.apache.hadoop.fs.Path |
createTempName()
Generate a unique temporary Path.
|
org.apache.hadoop.fs.Path |
createTempName(String suffix)
Generate a unique temporary Path.
|
void |
deleteFamily(String familyName)
Remove the region family from disk, archiving the store files.
|
static void |
deleteRegionFromFileSystem(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path tableDir,
RegionInfo regionInfo)
Remove the region from the table directory, archiving the region's hfiles.
|
Collection<String> |
getFamilies()
Returns the set of families present on disk n
|
org.apache.hadoop.fs.FileSystem |
getFileSystem()
Returns the underlying
FileSystem |
org.apache.hadoop.fs.Path |
getRegionDir()
Returns
Path to the region directory. |
RegionInfo |
getRegionInfo()
Returns the
RegionInfo that describe this on-disk region view |
RegionInfo |
getRegionInfoForFS() |
org.apache.hadoop.fs.Path |
getSplitsDir(RegionInfo hri) |
String |
getStoragePolicyName(String familyName)
Get the storage policy of the directory of CF.
|
org.apache.hadoop.fs.Path |
getStoreDir(String familyName)
Returns the directory path of the specified family
|
List<StoreFileInfo> |
getStoreFiles(String familyName)
Returns the store files available for the family.
|
List<StoreFileInfo> |
getStoreFiles(String familyName,
boolean validate)
Returns the store files available for the family.
|
static List<org.apache.hadoop.fs.LocatedFileStatus> |
getStoreFilesLocatedStatus(HRegionFileSystem regionfs,
String familyName,
boolean validate)
Returns the store files' LocatedFileStatus which available for the family.
|
static org.apache.hadoop.fs.Path |
getStoreHomedir(org.apache.hadoop.fs.Path tabledir,
RegionInfo hri,
byte[] family) |
static org.apache.hadoop.fs.Path |
getStoreHomedir(org.apache.hadoop.fs.Path tabledir,
String encodedName,
byte[] family) |
org.apache.hadoop.fs.Path |
getTableDir()
Returns
Path to the region's root directory. |
org.apache.hadoop.fs.Path |
getTempDir()
Returns
Path to the region's temp directory, used for file creations |
boolean |
hasReferences(String familyName)
Returns true if the specified family has reference files
|
boolean |
hasReferences(TableDescriptor htd)
Check whether region has Reference file
|
static RegionInfo |
loadRegionInfoFileContent(org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path regionDir)
Create a
RegionInfo from the serialized version on-disk. |
org.apache.hadoop.fs.Path |
mergeStoreFile(RegionInfo mergingRegion,
String familyName,
HStoreFile f)
Write out a merge reference under the given merges directory.
|
static HRegionFileSystem |
openRegionFromFileSystem(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path tableDir,
RegionInfo regionInfo,
boolean readOnly)
Open Region from file-system.
|
void |
removeStoreFile(String familyName,
org.apache.hadoop.fs.Path filePath)
Archives the specified store file from the specified family.
|
void |
removeStoreFiles(String familyName,
Collection<HStoreFile> storeFiles)
Closes and archives the specified store files from the specified family.
|
void |
setStoragePolicy(String policyName)
Set storage policy for a whole region.
|
void |
setStoragePolicy(String familyName,
String policyName)
Set the directory of CF to the specified storage policy.
|
org.apache.hadoop.fs.Path |
splitStoreFile(RegionInfo hri,
String familyName,
HStoreFile f,
byte[] splitRow,
boolean top,
RegionSplitPolicy splitPolicy)
Write out a split reference.
|
public static final String REGION_INFO_FILE
public static final String REGION_MERGES_DIR
public static final String REGION_SPLITS_DIR
public org.apache.hadoop.fs.FileSystem getFileSystem()
FileSystempublic RegionInfo getRegionInfo()
RegionInfo that describe this on-disk region viewpublic RegionInfo getRegionInfoForFS()
public org.apache.hadoop.fs.Path getTableDir()
Path to the region's root directory.public org.apache.hadoop.fs.Path getRegionDir()
Path to the region directory.public org.apache.hadoop.fs.Path getTempDir()
Path to the region's temp directory, used for file creationspublic org.apache.hadoop.fs.Path getStoreDir(String familyName)
familyName - Column Family NamePath to the directory of the specified familypublic static org.apache.hadoop.fs.Path getStoreHomedir(org.apache.hadoop.fs.Path tabledir,
RegionInfo hri,
byte[] family)
tabledir - Path to where the table is being storedhri - RegionInfo for the region.family - ColumnFamilyDescriptor describing the column familypublic static org.apache.hadoop.fs.Path getStoreHomedir(org.apache.hadoop.fs.Path tabledir,
String encodedName,
byte[] family)
tabledir - Path to where the table is being storedencodedName - Encoded region name.family - ColumnFamilyDescriptor describing the column familypublic void setStoragePolicy(String familyName, String policyName)
HdfsConstants for more details.familyName - The name of column family.policyName - The name of the storage policy: 'HOT', 'COLD', etc. See hadoop 2.6+
org.apache.hadoop.hdfs.protocol.HdfsConstants for possible list e.g 'COLD',
'WARM', 'HOT', 'ONE_SSD', 'ALL_SSD', 'LAZY_PERSIST'.public void setStoragePolicy(String policyName)
HdfsConstants for more details.policyName - The name of the storage policy: 'HOT', 'COLD', etc. See hadoop 2.6+
org.apache.hadoop.hdfs.protocol.HdfsConstants for possible list e.g 'COLD',
'WARM', 'HOT', 'ONE_SSD', 'ALL_SSD', 'LAZY_PERSIST'.@Nullable public String getStoragePolicyName(String familyName)
familyName - The name of column family.null if not using HFileSystem or exception
thrown when trying to get policypublic List<StoreFileInfo> getStoreFiles(String familyName) throws IOException
familyName - Column Family NameStoreFileInfo for the specified family.IOExceptionpublic List<StoreFileInfo> getStoreFiles(String familyName, boolean validate) throws IOException
familyName - Column Family NameStoreFileInfo for the specified family.IOExceptionpublic static List<org.apache.hadoop.fs.LocatedFileStatus> getStoreFilesLocatedStatus(HRegionFileSystem regionfs, String familyName, boolean validate) throws IOException
familyName - Column Family NameIOExceptionpublic boolean hasReferences(String familyName) throws IOException
familyName - Column Family NameIOExceptionpublic boolean hasReferences(TableDescriptor htd) throws IOException
htd - table desciptor of the regionIOExceptionpublic Collection<String> getFamilies() throws IOException
IOExceptionpublic void deleteFamily(String familyName) throws IOException
familyName - Column Family NameIOException - if an error occours during the archivingpublic org.apache.hadoop.fs.Path createTempName()
Path file = fs.createTempName();
...StoreFile.Writer(file)...
fs.commitStoreFile("family", file);
Path of the temporary filepublic org.apache.hadoop.fs.Path createTempName(String suffix)
Path file = fs.createTempName();
...StoreFile.Writer(file)...
fs.commitStoreFile("family", file);
suffix - extra information to append to the generated namePath of the temporary filepublic org.apache.hadoop.fs.Path commitStoreFile(String familyName, org.apache.hadoop.fs.Path buildPath) throws IOException
familyName - Family that will gain the filebuildPath - Path to the file to commit.Path of the committed fileIOExceptionpublic void removeStoreFile(String familyName, org.apache.hadoop.fs.Path filePath) throws IOException
familyName - Family that contains the store filesfilePath - Path to the store file to removeIOException - if the archiving failspublic void removeStoreFiles(String familyName, Collection<HStoreFile> storeFiles) throws IOException
familyName - Family that contains the store filesstoreFiles - set of store files to removeIOException - if the archiving failspublic org.apache.hadoop.fs.Path getSplitsDir(RegionInfo hri)
public org.apache.hadoop.fs.Path commitDaughterRegion(RegionInfo regionInfo, List<org.apache.hadoop.fs.Path> allRegionFiles, MasterProcedureEnv env) throws IOException
regionInfo - daughter RegionInfoIOExceptionpublic void createSplitsDir(RegionInfo daughterA, RegionInfo daughterB) throws IOException
IOExceptionpublic org.apache.hadoop.fs.Path splitStoreFile(RegionInfo hri, String familyName, HStoreFile f, byte[] splitRow, boolean top, RegionSplitPolicy splitPolicy) throws IOException
hri - RegionInfo of the destinationfamilyName - Column Family Namef - File to split.splitRow - Split Rowtop - True if we are referring to the top half of the hfile.splitPolicy - A split policy instance; be careful! May not be full populated; e.g. if this
method is invoked on the Master side, then the RegionSplitPolicy will NOT
have a reference to a Region.IOExceptionpublic void cleanupMergedRegion(RegionInfo mergedRegion) throws IOException
mergedRegion - RegionInfoIOExceptionpublic org.apache.hadoop.fs.Path mergeStoreFile(RegionInfo mergingRegion, String familyName, HStoreFile f) throws IOException
mergingRegion - RegionInfo for one of the regions being merged.familyName - Column Family Namef - File to create reference.IOException - if the merge write fails.public void commitMergedRegion(List<org.apache.hadoop.fs.Path> allMergedFiles, MasterProcedureEnv env) throws IOException
IOExceptionpublic static RegionInfo loadRegionInfoFileContent(org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path regionDir) throws IOException
RegionInfo from the serialized version on-disk.fs - FileSystem that contains the Region Info fileregionDir - Path to the Region Directory that contains the Info fileRegionInfo instance gotten from the Region Info file.IOException - if an error occurred during file open/read operation.public static HRegionFileSystem createRegionOnFileSystem(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path tableDir, RegionInfo regionInfo) throws IOException
conf - the Configuration to usefs - FileSystem from which to add the regiontableDir - Path to where the table is being storedregionInfo - RegionInfo for region to be addedIOException - if the region creation fails due to a FileSystem exception.public static HRegionFileSystem openRegionFromFileSystem(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.fs.FileSystem fs, org.apache.hadoop.fs.Path tableDir, RegionInfo regionInfo, boolean readOnly) throws IOException
conf - the Configuration to usefs - FileSystem from which to add the regiontableDir - Path to where the table is being storedregionInfo - RegionInfo for region to be addedreadOnly - True if you don't want to edit the region dataIOException - if the region creation fails due to a FileSystem exception.public static void deleteRegionFromFileSystem(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path tableDir,
RegionInfo regionInfo)
throws IOException
conf - the Configuration to usefs - FileSystem from which to remove the regiontableDir - Path to where the table is being storedregionInfo - RegionInfo for region to be deletedIOException - if the request cannot be completedCopyright © 2007–2020 The Apache Software Foundation. All rights reserved.