복붙노트

[HADOOP] Hadoop 옵션이 효과가 없습니다 (mapreduce.input.lineinputformat.linespermap, mapred.max.map.failures.percent).

HADOOP

Hadoop 옵션이 효과가 없습니다 (mapreduce.input.lineinputformat.linespermap, mapred.max.map.failures.percent).

나는 MapReduce 작업을 구현하려고하는데, 각 매퍼는 텍스트 파일의 150 줄을 가져 가고 모든 매퍼는 simmultaniously로 실행됩니다. 또한 얼마나 많은지도 작업이 실패하더라도 실패하지 않아야합니다.

다음은 구성 부분입니다.

        JobConf conf = new JobConf(Main.class);
        conf.setJobName("My mapreduce");

        conf.set("mapreduce.input.lineinputformat.linespermap", "150");
        conf.set("mapred.max.map.failures.percent","100");

        conf.setInputFormat(NLineInputFormat.class);

        FileInputFormat.addInputPath(conf, new Path(args[0]));
        FileOutputFormat.setOutputPath(conf, new Path(args[1]));

문제는 hadoop이 매 텍스트 줄마다 매퍼를 만들고, 순차적으로 실행되는 것처럼 보이며, 하나가 실패하면 작업이 실패합니다.

이것으로부터 내가 적용한 설정은 아무런 효과가 없다는 것을 추론합니다.

내가 뭘 잘못 했니?

해결법

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

    1.Hadoop 0.20을 사용하고 있다고 가정합니다. 0.20에서 구성 매개 변수는 "mapred.line.input.format.linespermap"이고 "mapreduce.input.lineinputformat.linespermap"을 사용하고 있습니다. 구성 매개 변수가 설정되지 않은 경우 기본값은 1이므로 쿼리에 언급 된 동작을 볼 수 있습니다.

    Hadoop 0.20을 사용하고 있다고 가정합니다. 0.20에서 구성 매개 변수는 "mapred.line.input.format.linespermap"이고 "mapreduce.input.lineinputformat.linespermap"을 사용하고 있습니다. 구성 매개 변수가 설정되지 않은 경우 기본값은 1이므로 쿼리에 언급 된 동작을 볼 수 있습니다.

    다음은 0.20 NLineInputFormat의 코드 스 니펫입니다.

    Hadoop 설정은 때로는 진짜 고통이며, 제대로 문서화되지 않았으며 설정 매개 변수가 때때로 릴리스간에 변경되는 것을 관찰했습니다. 가장 좋은 방법은 일부 구성 매개 변수가 불분명 할 때 코드를 보는 것입니다.

  2. ==============================

    2.'지도 작성'으로 시작하려면 오래된 api 및 "mapreduce." 새로운 API입니다. 그래서 그들을 함께 사용하지 않는 것이 좋습니다. 사용중인 버전을 확인하고 그 버전을 사용하십시오. 그리고 2 개의 NLineInputFormat도 있기 때문에 수입을 다시 확인하십시오 (mapred 및 mapreduce).

    '지도 작성'으로 시작하려면 오래된 api 및 "mapreduce." 새로운 API입니다. 그래서 그들을 함께 사용하지 않는 것이 좋습니다. 사용중인 버전을 확인하고 그 버전을 사용하십시오. 그리고 2 개의 NLineInputFormat도 있기 때문에 수입을 다시 확인하십시오 (mapred 및 mapreduce).

    둘째로이 링크를 확인할 수 있습니다. (중요한 부분을 붙여 넣습니다)

    NLineInputFormat은 N 줄의 입력을 하나의 분할로 나눕니다. 그래서, 각지도 N 라인을 얻는다.

    그러나 RecordReader는 여전히 LineRecordReader입니다. 시간, 따라서 Key는 파일의 오프셋이고 Value는 선입니다. N 줄을 Key로 사용하려면 LineRecordReader를 재정의해야합니다.

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

    3.hadoop의 새 API 옵션에 대한 올바른 이름을 빠르게 찾으려면 http://pydoop.sourceforge.net/docs/examples/intro.html#hadoop-0-21-0-notes 링크를 사용하십시오.

    hadoop의 새 API 옵션에 대한 올바른 이름을 빠르게 찾으려면 http://pydoop.sourceforge.net/docs/examples/intro.html#hadoop-0-21-0-notes 링크를 사용하십시오.

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

    4.새로운 API의 옵션은 대부분 문서화되지 않았습니다.

    새로운 API의 옵션은 대부분 문서화되지 않았습니다.

  5. from https://stackoverflow.com/questions/7457292/hadoop-options-are-not-having-any-effect-mapreduce-input-lineinputformat-linesp by cc-by-sa and MIT license