[HADOOP] Hadoop 옵션이 효과가 없습니다 (mapreduce.input.lineinputformat.linespermap, mapred.max.map.failures.percent).
HADOOPHadoop 옵션이 효과가 없습니다 (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.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.'지도 작성'으로 시작하려면 오래된 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.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.새로운 API의 옵션은 대부분 문서화되지 않았습니다.
새로운 API의 옵션은 대부분 문서화되지 않았습니다.
from https://stackoverflow.com/questions/7457292/hadoop-options-are-not-having-any-effect-mapreduce-input-lineinputformat-linesp by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 64 비트 Centos 6.5에서 Apache Hadoop 2.4.0으로 작업하는 Sqoop 1.99.3을 가져올 수 없습니다. (0) | 2019.06.25 |
---|---|
[HADOOP] Java에서 실행할 수 있도록 실행 파일을 압축 할 수 있습니까? (0) | 2019.06.25 |
[HADOOP] Mahout의 sequencefile API 코드는 어떻게 사용할 수 있습니까? (0) | 2019.06.25 |
[HADOOP] 32 비트 프로세서가 탑재 된 Windows 7에 Hadoop을 설치 하시겠습니까? (0) | 2019.06.25 |
[HADOOP] 원사 항아리 업로드 문제에 대한 스파크 (0) | 2019.06.25 |