Exemplo n.º 1
0
  /**
   * HDFS 상에서 지정한 파일을 다른 디렉토리로 파일을 이동시킨다.
   *
   * @param conf Hadoop Configuration
   * @param delayFiles 이동할 파일 목록
   * @param targetDirectory 목적 디렉토리
   * @throws java.io.IOException 파일을 이동할 수 없는 경우
   */
  public static void moveFilesToDirectory(
      Configuration conf, List<String> delayFiles, String targetDirectory) throws IOException {
    for (String path : delayFiles) {
      String filename = FileUtils.getFilename(path);
      String delayedFilePrefix = filename.split("-")[0];
      String outputHead = delayedFilePrefix.replaceAll("delay", "");
      String outputMiddle = delayedFilePrefix.substring(0, 5); // todo
      String outputTail = filename.replaceAll(delayedFilePrefix, "");

      System.out.println(
          "Acceleration Dir "
              + targetDirectory
              + "/"
              + outputHead
              + "_"
              + outputMiddle
              + outputTail);
      makeDirectoryIfNotExists(targetDirectory, conf);

      FileSystem fileSystem = FileSystem.get(conf);
      fileSystem.rename(
          new Path(path),
          new Path(targetDirectory + "/" + outputHead + "_" + outputMiddle + outputTail));

      System.out.println("\t Moved: '" + path + "' --> '" + targetDirectory + "'");
    }
  }