|
@@ -45,28 +45,27 @@ import org.apache.hadoop.hdfs.protocol.CachePoolInfo;
|
|
|
import org.apache.hadoop.hdfs.protocol.EncryptionZone;
|
|
|
import org.apache.hadoop.hdfs.protocol.HdfsConstants;
|
|
|
import org.apache.hadoop.security.AccessControlException;
|
|
|
-import org.apache.hadoop.hdfs.tools.DFSAdmin;
|
|
|
|
|
|
/**
|
|
|
* The public API for performing administrative functions on HDFS. Those writing
|
|
|
* applications against HDFS should prefer this interface to directly accessing
|
|
|
* functionality in DistributedFileSystem or DFSClient.
|
|
|
- *
|
|
|
- * Note that this is distinct from the similarly-named {@link DFSAdmin}, which
|
|
|
+ *
|
|
|
+ * Note that this is distinct from the similarly-named DFSAdmin, which
|
|
|
* is a class that provides the functionality for the CLI `hdfs dfsadmin ...'
|
|
|
* commands.
|
|
|
*/
|
|
|
@InterfaceAudience.Public
|
|
|
@InterfaceStability.Evolving
|
|
|
public class HdfsAdmin {
|
|
|
-
|
|
|
+
|
|
|
private DistributedFileSystem dfs;
|
|
|
private static final FsPermission TRASH_PERMISSION = new FsPermission(
|
|
|
FsAction.ALL, FsAction.ALL, FsAction.ALL, true);
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Create a new HdfsAdmin client.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param uri the unique URI of the HDFS file system to administer
|
|
|
* @param conf configuration
|
|
|
* @throws IOException in the event the file system could not be created
|
|
@@ -79,11 +78,11 @@ public class HdfsAdmin {
|
|
|
dfs = (DistributedFileSystem)fs;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Set the namespace quota (count of files, directories, and sym links) for a
|
|
|
* directory.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param src the path to set the quota for
|
|
|
* @param quota the value to set for the quota
|
|
|
* @throws IOException in the event of error
|
|
@@ -91,22 +90,22 @@ public class HdfsAdmin {
|
|
|
public void setQuota(Path src, long quota) throws IOException {
|
|
|
dfs.setQuota(src, quota, HdfsConstants.QUOTA_DONT_SET);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Clear the namespace quota (count of files, directories and sym links) for a
|
|
|
* directory.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param src the path to clear the quota of
|
|
|
* @throws IOException in the event of error
|
|
|
*/
|
|
|
public void clearQuota(Path src) throws IOException {
|
|
|
dfs.setQuota(src, HdfsConstants.QUOTA_RESET, HdfsConstants.QUOTA_DONT_SET);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Set the storage space quota (size of files) for a directory. Note that
|
|
|
* directories and sym links do not occupy storage space.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param src the path to set the space quota of
|
|
|
* @param spaceQuota the value to set for the space quota
|
|
|
* @throws IOException in the event of error
|
|
@@ -114,11 +113,11 @@ public class HdfsAdmin {
|
|
|
public void setSpaceQuota(Path src, long spaceQuota) throws IOException {
|
|
|
dfs.setQuota(src, HdfsConstants.QUOTA_DONT_SET, spaceQuota);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Clear the storage space quota (size of files) for a directory. Note that
|
|
|
* directories and sym links do not occupy storage space.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param src the path to clear the space quota of
|
|
|
* @throws IOException in the event of error
|
|
|
*/
|
|
@@ -151,7 +150,7 @@ public class HdfsAdmin {
|
|
|
public void clearQuotaByStorageType(Path src, StorageType type) throws IOException {
|
|
|
dfs.setQuotaByStorageType(src, type, HdfsConstants.QUOTA_RESET);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Allow snapshot on a directory.
|
|
|
* @param path The path of the directory where snapshots will be taken.
|
|
@@ -159,7 +158,7 @@ public class HdfsAdmin {
|
|
|
public void allowSnapshot(Path path) throws IOException {
|
|
|
dfs.allowSnapshot(path);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Disallow snapshot on a directory.
|
|
|
* @param path The path of the snapshottable directory.
|
|
@@ -170,7 +169,7 @@ public class HdfsAdmin {
|
|
|
|
|
|
/**
|
|
|
* Add a new CacheDirectiveInfo.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param info Information about a directive to add.
|
|
|
* @param flags {@link CacheFlag}s to use for this operation.
|
|
|
* @return the ID of the directive that was created.
|
|
@@ -180,10 +179,10 @@ public class HdfsAdmin {
|
|
|
EnumSet<CacheFlag> flags) throws IOException {
|
|
|
return dfs.addCacheDirective(info, flags);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Modify a CacheDirective.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param info Information about the directive to modify. You must set the ID
|
|
|
* to indicate which CacheDirective you want to modify.
|
|
|
* @param flags {@link CacheFlag}s to use for this operation.
|
|
@@ -196,7 +195,7 @@ public class HdfsAdmin {
|
|
|
|
|
|
/**
|
|
|
* Remove a CacheDirective.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param id identifier of the CacheDirectiveInfo to remove
|
|
|
* @throws IOException if the directive could not be removed
|
|
|
*/
|
|
@@ -207,7 +206,7 @@ public class HdfsAdmin {
|
|
|
|
|
|
/**
|
|
|
* List cache directives. Incrementally fetches results from the server.
|
|
|
- *
|
|
|
+ *
|
|
|
* @param filter Filter parameters to use when listing the directives, null to
|
|
|
* list all directives visible to us.
|
|
|
* @return A RemoteIterator which returns CacheDirectiveInfo objects.
|
|
@@ -222,7 +221,7 @@ public class HdfsAdmin {
|
|
|
*
|
|
|
* @param info
|
|
|
* The request to add a cache pool.
|
|
|
- * @throws IOException
|
|
|
+ * @throws IOException
|
|
|
* If the request could not be completed.
|
|
|
*/
|
|
|
public void addCachePool(CachePoolInfo info) throws IOException {
|
|
@@ -234,19 +233,19 @@ public class HdfsAdmin {
|
|
|
*
|
|
|
* @param info
|
|
|
* The request to modify a cache pool.
|
|
|
- * @throws IOException
|
|
|
+ * @throws IOException
|
|
|
* If the request could not be completed.
|
|
|
*/
|
|
|
public void modifyCachePool(CachePoolInfo info) throws IOException {
|
|
|
dfs.modifyCachePool(info);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* Remove a cache pool.
|
|
|
*
|
|
|
* @param poolName
|
|
|
* Name of the cache pool to remove.
|
|
|
- * @throws IOException
|
|
|
+ * @throws IOException
|
|
|
* if the cache pool did not exist, or could not be removed.
|
|
|
*/
|
|
|
public void removeCachePool(String poolName) throws IOException {
|