更新时间:2024-10-31 GMT+08:00

配置HDFS存储策略

功能简介

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

代码样例

  1. 登录FusionInsight Manager页面,选择“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 > 全部配置”。
  2. 搜索并查看“dfs.storage.policy.enabled”的参数值是否为“true”,如果不是,修改为“true”,并单击“保存”,重启HDFS。
  3. 查看代码。

    如下是代码片段,详细代码请参考com.huawei.bigdata.hdfs.examples中的HdfsExample类。

       /** 
       * 设置存储策略 
       * @param policyName 
       * 策略名称能够被接受: 
       * <li>HOT 
       * <li>WARM 
       * <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;
                }
                LOG.info("StoragePolicy:" + bs.getName());
            }
            if (!flag) {
                policyName = storage[0].getName();
            }
            dfs.setStoragePolicy(destPath, policyName);
            LOG.info("success to set Storage Policy path " + DEST_PATH);
            rmdir();
        } else {
            LOG.info("SmallFile not support to set Storage Policy !!!");
        }
    }