code: public static Configuration createConfiguration(UnderFileSystemConfiguration conf) {
      Preconditions.checkNotNull(conf, "conf");
      Configuration hdfsConf = new Configuration();
  
      // Load HDFS site properties from the given file and overwrite the default HDFS conf,
      // the path of this file can be passed through --option
      for (String path : conf.get(PropertyKey.UNDERFS_HDFS_CONFIGURATION).split(":")) {
        hdfsConf.addResource(new Path(path));
      }
  
      // On Hadoop 2.x this is strictly unnecessary since it uses ServiceLoader to automatically
      // discover available file system implementations. However this configuration setting is
      // required for earlier Hadoop versions plus it is still honoured as an override even in 2.x so
      // if present propagate it to the Hadoop configuration
      String ufsHdfsImpl = conf.get(PropertyKey.UNDERFS_HDFS_IMPL);
      if (!StringUtils.isEmpty(ufsHdfsImpl)) {
        hdfsConf.set("fs.hdfs.impl", ufsHdfsImpl);
      }
  
      // Disable HDFS client caching so that input configuration is respected. Configurable from
      // system property
      hdfsConf.set("fs.hdfs.impl.disable.cache",
          System.getProperty("fs.hdfs.impl.disable.cache", "true"));
  
      // Set all parameters passed through --option
      for (Map.Entry<String, String> entry : conf.getMountSpecificConf().entrySet()) {
        hdfsConf.set(entry.getKey(), entry.getValue());
      }
      return hdfsConf;
    }
docs: Prepares the Hadoop configuration necessary to successfully obtain a {@link FileSystem}
  instance that can access the provided path.
  <p>
  Derived implementations that work with specialised Hadoop {@linkplain FileSystem} API
  compatible implementations can override this method to add implementation specific
  configuration necessary for obtaining a usable {@linkplain FileSystem} instance.
  </p>
  
  @param conf the configuration for this UFS
  @return the configuration for HDFS