복붙노트

[HADOOP] Hadoop에서 파일 / 폴더 삭제 중

HADOOP

Hadoop에서 파일 / 폴더 삭제 중

로그 파일을 분석하는 데이터 파이프 라인에서 EMR 활동을 실행 중이고 파이프 라인이 실패 할 때 다음 오류가 발생합니다.

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://10.208.42.127:9000/home/hadoop/temp-output-s3copy already exists
    at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:121)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:944)
    at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:905)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1132)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:905)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:879)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1316)
    at com.valtira.datapipeline.stream.CloudFrontStreamLogProcessors.main(CloudFrontStreamLogProcessors.java:216)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:187)

Hadoop에서 해당 폴더를 삭제하려면 어떻게해야합니까?

해결법

  1. ==============================

    1.Hadoop에서 삭제를 말하면 실제로 HDFS에서 삭제를 의미합니다.

    Hadoop에서 삭제를 말하면 실제로 HDFS에서 삭제를 의미합니다.

    HDFS에서 무언가를 삭제하려면 두 가지 중 하나를 수행하십시오.

    커맨드 라인에서 :

    hadoop dfs -rmr hdfs : // 경로 / to / file

    hdfs dfs -rm -r hdfs : // 경로 / to / file

    또는 java :

    FileSystem fs = FileSystem.get(getConf());
    fs.delete(new Path("path/to/file"), true); // delete file, true for recursive 
    
  2. ==============================

    2.hdfs에서 파일을 삭제하려면 다음 명령을 사용할 수 있습니다 :

    hdfs에서 파일을 삭제하려면 다음 명령을 사용할 수 있습니다 :

    hadoop fs -rm -r -skipTrash /path_to_file/file_name
    

    hdfs에서 폴더를 삭제하려면 다음 명령을 사용할 수 있습니다.

    hadoop fs -rm -r -skipTrash /folder_name
    

    -skipTrash 옵션을 사용해야합니다. 그렇지 않으면 오류 메시지가 나타납니다.

  3. ==============================

    3.스칼라 :

    스칼라 :

    val fs:FileSystem = FileSystem.get(new URI(filePath), sc.hadoopConfiguration);
    fs.delete(new Path(filePath), true) // true for recursive
    

    sc는 SparkContext입니다.

  4. ==============================

    4.hdfs에서 파일을 삭제하려면 다음 명령을 사용하십시오 : hadoop fs -rm -r / FolderName

    hdfs에서 파일을 삭제하려면 다음 명령을 사용하십시오 : hadoop fs -rm -r / FolderName

  5. ==============================

    5.AWS 지원팀에 연락하여 문제가 로그 파일을 매우 크고 메모리 문제가 발생하는 것처럼 보였습니다. 내 파이프 라인 정의 "masterInstanceType"에 추가 : "m1.xlarge"는 EMRCluster 섹션에서 작동했습니다.

    AWS 지원팀에 연락하여 문제가 로그 파일을 매우 크고 메모리 문제가 발생하는 것처럼 보였습니다. 내 파이프 라인 정의 "masterInstanceType"에 추가 : "m1.xlarge"는 EMRCluster 섹션에서 작동했습니다.

  6. ==============================

    6.커맨드 라인에서 :

    커맨드 라인에서 :

     hadoop fs -rm -r /folder
    
  7. ==============================

    7.나는 hadoop 2.6.0을 사용한다. 명령 행 'hadoop fs -rm -r fileName.hib'은 hdfs 파일 sys의 hib 파일을 삭제하는데 잘 동작한다.

    나는 hadoop 2.6.0을 사용한다. 명령 행 'hadoop fs -rm -r fileName.hib'은 hdfs 파일 sys의 hib 파일을 삭제하는데 잘 동작한다.

  8. from https://stackoverflow.com/questions/16797358/deleting-file-folder-from-hadoop by cc-by-sa and MIT license