복붙노트

[HADOOP] Hadoop WordCount 예제가지도에서 멈춤 100 % 감소 0 %

HADOOP

Hadoop WordCount 예제가지도에서 멈춤 100 % 감소 0 %

[hadoop-1.0.2] → hadoop jar hadoop-examples-1.0.2.jar wordcount /user/abhinav/input     /user/abhinav/output
Warning: $HADOOP_HOME is deprecated.

****hdfs://localhost:54310/user/abhinav/input
12/04/15 15:52:31 INFO input.FileInputFormat: Total input paths to process : 1
12/04/15 15:52:31 WARN util.NativeCodeLoader: Unable to load native-hadoop library for     your platform... using builtin-java classes where applicable
12/04/15 15:52:31 WARN snappy.LoadSnappy: Snappy native library not loaded
12/04/15 15:52:31 INFO mapred.JobClient: Running job: job_201204151241_0010
12/04/15 15:52:32 INFO mapred.JobClient:  map 0% reduce 0%
12/04/15 15:52:46 INFO mapred.JobClient:  map 100% reduce 0%

나는이 안내서 (http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#run-the-mapreduce)를 사용하여 단일 노드에서 hadoop을 설정했다. -job) 그리고 제공된 예제를 실행하려고하는데지도가 100 % 줄어들어 0 %가 줄어들고 있습니다. 무엇이 이것을 일으킬 수 있습니까?

해결법

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

    1.먼저 작업 추적자를 열고 자유로운 감속기 슬롯 및 기타 실행중인 작업의 수를 살펴보십시오. 사용할 수있게 될 때 모든 무료 감속기 슬롯을 소모하는 다른 작업이 실행 중입니까?

    먼저 작업 추적자를 열고 자유로운 감속기 슬롯 및 기타 실행중인 작업의 수를 살펴보십시오. 사용할 수있게 될 때 모든 무료 감속기 슬롯을 소모하는 다른 작업이 실행 중입니까?

    일단 당신이 당신을 위해 감속기를 달리는 유효한 자유로운 감속기 구멍이다는 것을 증명하면, 일 추적자 웹 ui에있는 당신의 일을 찾아 내고 그것을 열기 위하여 클릭하십시오. 이제 완료된 매퍼의 수를 볼 수 있습니다. 매퍼가 실행 중이 지 않은 것을 확인하십시오. 콘솔의 % 완료는 때로는 거짓말이며 100 %라는 커밋 중에있는 매퍼가있을 수 있지만 문제를 마무리하는 중입니다.

    모든 매퍼가 완료되었다고 판단되면 실행중인 감속기의 수를 살펴보십시오. 0이 표시됩니까? 그렇지 않은 경우 일부가 실행 중임을 표시합니다. 실행중인 감속기의 수를 클릭하여 실행중인 감속기 페이지를 표시 한 다음 인스턴스를 클릭하면 감속기에 대한 로그를 볼 수있는 옵션이 표시됩니다. 이 감속기의 모든 로그를보고 싶을 것입니다 (첫 번째 / 지난 100k가 아님). 이것은 당신의 감속기가 실제로하고있는 것을 말해 주어야합니다 - 아마도 매퍼에서 감속기 노드로 결과를 복사하려 할 것입니다. 네트워크 또는 디스크 공간 중 하나 인 문제가 어디인지 상상해보십시오. 그러나 결국에는 hadoop이 감속기 인스턴스를 종료하고 다른 노드에서 실행되도록 다시 일정을 조정해야합니다.

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

    2.이 문제를 일으키는 데는 여러 가지 이유가있을 수 있습니다. 가장 가능성있는 것은 매퍼 (예외, 무한 루프, ...)에 버그가 있다는 것입니다.

    이 문제를 일으키는 데는 여러 가지 이유가있을 수 있습니다. 가장 가능성있는 것은 매퍼 (예외, 무한 루프, ...)에 버그가 있다는 것입니다.

    디버깅하려면 :

    아무것도 나오지 않으면 매퍼에 로깅 메시지를 넣어 각 단계마다 수동으로 디버깅하도록하십시오 (의사 배포 모드에서 실행되는 것으로 가정).

    그 일이 어떻게되는지 알려줘.

    편집 : 크리스 지적대로 감속기는 0 %에 있으므로 문제는 실제로 감소 단계 전에 놓여 있습니다.

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

    3.Suse 11을 실행하는 호스트에서도이 문제가 발생했습니다. 위의 Chris가 언급했듯이이 문제는 매퍼 (mapper)와 관련이 있습니다. 이 문제를 해결하기 위해 / etc / hosts 파일을 편집하고 호스트의 IP 주소를 제거했습니다. 예를 들어 / etc / hosts

    Suse 11을 실행하는 호스트에서도이 문제가 발생했습니다. 위의 Chris가 언급했듯이이 문제는 매퍼 (mapper)와 관련이 있습니다. 이 문제를 해결하기 위해 / etc / hosts 파일을 편집하고 호스트의 IP 주소를 제거했습니다. 예를 들어 / etc / hosts

    Ip.address.of.your.host      hostname
    

    로 변경

    127.0.0.1                    hostname
    

    위의 변경을 한 다음 다시 시작하면 단어 수 프로그램을 실행할 수있었습니다.

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

    4.Mac 10.7.4에서 pseudocluster를 실행하는 것과 동일한 문제가 나타납니다. 잠자기 모드에서 깨어날 때 발생합니다. 마치기 (wake-up)시 맵퍼 IP 주소가 재정의 된 것처럼 보입니다.

    Mac 10.7.4에서 pseudocluster를 실행하는 것과 동일한 문제가 나타납니다. 잠자기 모드에서 깨어날 때 발생합니다. 마치기 (wake-up)시 맵퍼 IP 주소가 재정의 된 것처럼 보입니다.

    syslog:2012-09-14 16:52:06,542 WARN org.apache.hadoop.mapred.ReduceTask: attempt_201209141640_0003_r_000000_0 copy failed: attempt_201209141640_0003_m_000000_0 from 172.19.131.144
    syslog:2012-09-14 16:52:06,546 INFO org.apache.hadoop.mapred.ReduceTask: Task attempt_201209141640_0003_r_000000_0: Failed fetch #1 from attempt_201209141640_0003_m_000000_0
    

    잠자기 모드에서 깨어 난 후, stop-all.sh와 start-all.sh를 통해 다시 시작하면 나를 위해이 문제가 해결됩니다.

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

    5.나는 "지도 100 % 0 % 감소"문제에 대한 또 다른 이유를 발견했을 것입니다.

    나는 "지도 100 % 0 % 감소"문제에 대한 또 다른 이유를 발견했을 것입니다.

    내지도 작업은 엄청난 양의 레코드를 생성하고 가상 클러스터 환경에서 hadoop을 실행합니다.

    매핑 작업 로그를 검사 한 결과 중간 세그먼트를 병합하기 위해 100 % 맵과 축소 시작 사이의 시간이 소비되고있는 것처럼 보입니다.

    2013-07-27 03:09:55,302 INFO org.apache.hadoop.mapred.Merger: Merging 10 intermediate segments out of a total of 334
    2013-07-27 03:10:15,166 INFO org.apache.hadoop.mapred.Merger: Merging 10 intermediate segments out of a total of 325
    2013-07-27 03:10:35,603 INFO org.apache.hadoop.mapred.Merger: Merging 10 intermediate segments out of a total of 316
    ...
    2013-07-27 03:26:18,738 INFO org.apache.hadoop.mapred.Merger: Merging 10 intermediate segments out of a total of 28
    2013-07-27 03:29:50,458 INFO org.apache.hadoop.mapred.Merger: Merging 10 intermediate segments out of a total of 19
    2013-07-27 03:33:48,368 INFO org.apache.hadoop.mapred.Merger: Down to the last merge-pass, with 10 segments left of total size: 4424592099 bytes
    

    이 절차는 세그먼트의 크기와 수 및 디스크의 읽기 / 쓰기 속도에 따라 많은 시간이 걸릴 수 있습니다.

    로그 외에도 많은 양의 데이터가 새 파일에 병합되기 때문에 일정한 높은 디스크 사용량을 확인하여이 문제가 발생했다는 것을 알 수 있습니다. 디스크 사용량이 변동하고, 병합 중에 증가하고 삭제 중에 감소하기 때문에 병합 후에 세그먼트가 제거 된 것을 알 수 있습니다.

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

    6.나 또한이 문제가 발생했습니다.하지만 파일 / etc / hosts를 다음과 같이 편집합니다.

    나 또한이 문제가 발생했습니다.하지만 파일 / etc / hosts를 다음과 같이 편집합니다.

    Ip.address.of.your.host      hostname   
    

    위의 한 줄 아래에 한 줄을 추가하면됩니다.

    127.0.1.1     hostname
    

    127.0.1.1이 아니라 (127.0.0.1이 아닌) "host some_hostname port 22에 연결 : 연결 시간이 초과되었습니다"와 같은 문제가 발생할 것입니다.

  7. ==============================

    7.리눅스를 사용하고 있고 단일 노드를 사용하고 있다면 hadoop : / etc / hosts 디렉토리로 이동 이 형식으로 귀하의 주소를 변경하십시오

    리눅스를 사용하고 있고 단일 노드를 사용하고 있다면 hadoop : / etc / hosts 디렉토리로 이동 이 형식으로 귀하의 주소를 변경하십시오

    너의 IP 주소 마스터 너의 IP 주소 노예

    / hadoop / conf 디렉토리로 가라. 주인을 열어 여기에 localhost를 입력하십시오 (다른 주소는 모두 제거하십시오!). 슬레이브를 열고 이것에 localhost를 설정하십시오 (다른 주소는 모두 제거하십시오!).

    이제 프로그램을 다시 실행하십시오. 제대로 작동해야합니다.

  8. ==============================

    8.나는 비슷한 문제 (동일하지 않음)를 가졌다. 내 작업이 100 % Map 및 16 % Reduce에서 멈추었습니다. 나는이 스레드에 부딪 치고 Chris의 대답을 보았을 때까지 (다른 프로그램의 경우 grep, wordcount 등) 꽤 많은 시간 동안이 문제에 직면했다. 기본적으로 디버그 또는 문제 해결을위한 좋은 방법을 제안했다. (분명히 나는 ​​그의 대답, 따라서이 게시물을 투표하는 명성이 없어).

    나는 비슷한 문제 (동일하지 않음)를 가졌다. 내 작업이 100 % Map 및 16 % Reduce에서 멈추었습니다. 나는이 스레드에 부딪 치고 Chris의 대답을 보았을 때까지 (다른 프로그램의 경우 grep, wordcount 등) 꽤 많은 시간 동안이 문제에 직면했다. 기본적으로 디버그 또는 문제 해결을위한 좋은 방법을 제안했다. (분명히 나는 ​​그의 대답, 따라서이 게시물을 투표하는 명성이 없어).

    작업 추적기의 웹 UI를보고 정확한 작업 스레드의 로그 파일 (이 로그가 존재하지 않음)로 이동 한 후 JobTracker가 데이터 노드의 호스트 이름을 확인할 수 없음을 알게되었습니다. 호스트 파일에 (ip, hostname) 쌍을 추가했는데 막힌 작업이 다시 생겨 성공적으로 완료되었습니다.

  9. ==============================

    9.나는 비슷한 문제에 직면했다. 문제는 감속 작업을위한 여지가 없다는 것이다. 그래서 나는 기억을 풀어 주었다. 가장 좋은 점은 jobtracker 로그를 살펴 보는 것입니다. 50030 / logs / hadoop-hadoop-jobtracker-localhost.localdomain.log. 로그 메시지 : "WARN org.apache.hadoop.mapred.JobInProgress : 줄이기 작업을위한 여유 공간이 없습니다 node tracker_localhost.localdomain : localhost.localdomain / 127.0.0.1 : 57829는 778543104 바이트의 여유 공간을 갖지만 reduce 입력은 1160706716"

    나는 비슷한 문제에 직면했다. 문제는 감속 작업을위한 여지가 없다는 것이다. 그래서 나는 기억을 풀어 주었다. 가장 좋은 점은 jobtracker 로그를 살펴 보는 것입니다. 50030 / logs / hadoop-hadoop-jobtracker-localhost.localdomain.log. 로그 메시지 : "WARN org.apache.hadoop.mapred.JobInProgress : 줄이기 작업을위한 여유 공간이 없습니다 node tracker_localhost.localdomain : localhost.localdomain / 127.0.0.1 : 57829는 778543104 바이트의 여유 공간을 갖지만 reduce 입력은 1160706716"

  10. from https://stackoverflow.com/questions/10165549/hadoop-wordcount-example-stuck-at-map-100-reduce-0 by cc-by-sa and MIT license