设置存储策略
功能简介
为HDFS上某个文件或文件夹指定存储策略。
代码样例
- 登录FusionInsight Manager,选择“服务管理>HDFS>服务配置”,将“参数类别”设置为“全部配置”。
- 搜索并查看“dfs.storage.policy.enabled”的参数值是否为“true”,如果不是,修改为“true”,并单击“保存配置”,重启HDFS。
- 查看代码。 如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsMain类。
/**
* 设置存储策略
* @param policyName
* 策略名称能够被接受:
* <li>HOT
* <li>WARN
* <li>COLD
* <li>LAZY_PERSIST
* <li>ALL_SSD
* <li>ONE_SSD
* @throws IOException
*/
private void setStoragePolicy(String policyName) throws IOException{
if(fSystem instanceof DistributedFileSystem) {
DistributedFileSystem dfs = (DistributedFileSystem) fSystem;
Path destPath = new Path(DEST_PATH);
Boolean flag = false;
mkdir();
BlockStoragePolicySpi[] storage = dfs.getStoragePolicies();
for (BlockStoragePolicySpi bs : storage) {
if (bs.getName().equals(policyName)) {
flag = true;
}
System.out.println("StoragePolicy:" + bs.getName());
}
if (!flag) {
policyName = storage[0].getName();
}
dfs.setStoragePolicy(destPath, policyName);
System.out.println("success to set Storage Policy path " + DEST_PATH);
rmdir();
}
else{
System.out.println("SmallFile not support to set Storage Policy !!!");
}
}