设置存储策略


功能简介

为HDFS上某个文件或文件夹指定存储策略。

代码样例

  1. 登录FusionInsight Manager,选择“服务管理>HDFS>服务配置”,将“参数类别”设置为“全部配置”。
  2. 搜索并查看“dfs.storage.policy.enabled”的参数值是否为“true”,如果不是,修改为“true”,并单击“保存配置”,重启HDFS。
  3. 查看代码。 如下是代码片段,详细代码请参考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 !!!");
    }
  }

results matching ""

    No results matching ""