복붙노트

[HADOOP] Hadoop 파일의 분산 캐싱에서 예외를 찾을 수 없음

HADOOP

Hadoop 파일의 분산 캐싱에서 예외를 찾을 수 없음

캐시 된 파일을 생성했음을 나타냅니다. 그러나 가서 파일이없는 위치를 보았을 때 매퍼에서 읽으려고하면 File Not Found Exception이 표시됩니다.

이것은 내가 실행하려고하는 코드입니다.

    JobConf conf2 = new JobConf(getConf(), CorpusCalculator.class);
    conf2.setJobName("CorpusCalculator2");

    //Distributed Caching of the file emitted by the reducer2 is done here
    conf2.addResource(new Path("/opt/hadoop1/conf/core-site.xml"));
    conf2.addResource(new Path("/opt/hadoop1/conf/hdfs-site.xml"));

    //cacheFile(conf2, new Path(outputPathofReducer2));

    conf2.setNumReduceTasks(1);
    //conf2.setOutputKeyComparatorClass()

    conf2.setMapOutputKeyClass(FloatWritable.class);
    conf2.setMapOutputValueClass(Text.class);


    conf2.setOutputKeyClass(Text.class);
    conf2.setOutputValueClass(Text.class);

    conf2.setMapperClass(MapClass2.class);
    conf2.setReducerClass(Reduce2.class);



    FileInputFormat.setInputPaths(conf2, new Path(inputPathForMapper1));
    FileOutputFormat.setOutputPath(conf2, new Path(outputPathofReducer3));

    DistributedCache.addCacheFile(new Path("/sunilFiles/M51.txt").toUri(),conf2);
    JobClient.runJob(conf

로그 :

13/04/27 04:43:40 INFO filecache.TrackerDistributedCacheManager: Creating M51.txt in /tmp1/mapred/local/archive/-1731849462204707023_-2090562221_1263420527/localhost/sunilFiles-work-2204204368663038938 with rwxr-xr-x

13/04/27 04:43:40 INFO filecache.TrackerDistributedCacheManager: Cached /sunilFiles/M51.txt as /tmp1/mapred/local/archive/-1731849462204707023_-2090562221_1263420527/localhost/sunilFiles/M51.txt

13/04/27 04:43:40 INFO filecache.TrackerDistributedCacheManager: Cached /sunilFiles/M51.txt as /tmp1/mapred/local/archive/-1731849462204707023_-2090562221_1263420527/localhost/sunilFiles/M51.txt

13/04/27 04:43:40 INFO mapred.JobClient: Running job: job_local_0003

13/04/27 04:43:40 INFO mapred.Task:  Using ResourceCalculatorPlugin : o
org.apache.hadoop.util.LinuxResourceCalculatorPlugin@8c2df1

13/04/27 04:43:40 INFO mapred.MapTask: numReduceTasks: 1

13/04/27 04:43:40 INFO mapred.MapTask: io.sort.mb = 100

13/04/27 04:43:40 INFO mapred.MapTask: data buffer = 79691776/99614720

13/04/27 04:43:40 INFO mapred.MapTask: record buffer = 262144/327680

configure () 내부 :

Exception reading DistribtuedCache: java.io.FileNotFoundException: /tmp1/mapred/local/archive/-1731849462204707023_-2090562221_1263420527/localhost/sunilFiles/M51.txt (Is a directory)

Inside setup(): /tmp1/mapred/local/archive/-1731849462204707023_-2090562221_1263420527/localhost/sunilFiles/M51.txt

13/04/27 04:43:41 WARN mapred.LocalJobRunner: job_local_0003

저를 도와주세요. 지난 6 시간 동안 계속해서 솔루션을 찾고 있었고 내일에는 과제 제출이 있습니다. 대단히 감사합니다.

해결법

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

    1.더 간단한 -files 옵션을 사용하려고 할 수 있습니다.이를 사용하려면 드라이버 클래스에서 구성을 확장하고 도구를 구현해야합니다.

    더 간단한 -files 옵션을 사용하려고 할 수 있습니다.이를 사용하려면 드라이버 클래스에서 구성을 확장하고 도구를 구현해야합니다.

    예 :

    매퍼 또는 감속기에서 :

    BufferedReader reader1 = new BufferedReader(new FileReader("file1.xml"));
    BufferedReader reader2 = new BufferedReader(new FileReader("file2.txt"));
    
  2. ==============================

    2.다양한 컴퓨터에있는 모든 파일을 단일 파일로 병합하고 성공적으로 사용할 수있는 copyMerge () 속성을 사용 하여이 문제를 해결했습니다. 정상 파일을 사용하는 경우 실패합니다. 답장 해 주셔서 감사합니다.

    다양한 컴퓨터에있는 모든 파일을 단일 파일로 병합하고 성공적으로 사용할 수있는 copyMerge () 속성을 사용 하여이 문제를 해결했습니다. 정상 파일을 사용하는 경우 실패합니다. 답장 해 주셔서 감사합니다.

  3. from https://stackoverflow.com/questions/16251788/distributed-caching-in-hadoop-file-not-found-exception by cc-by-sa and MIT license