2013-02-07 3 views
0

EMR 인스턴스가 중간 유형으로 실행 중일 때 EMR 인스턴스가 종료 된 단계 중 하나에서 발견되었습니다. 5 개의 인스턴스에 AWS의 중간 인스턴스를 사용했습니다. 용량은 3.75GB RAM입니다. mapred.child.java.opts 속성에 대해 힙 크기를 3000MB로 지정했습니다. JobConf를 사용하여 conf.set ("mapred.child.java.opts", "-Xmx3000m")과 같은 매개 변수를 설정하여이를 설정했습니다. 아마존 EMR 프로그램을 실행하려면 세 단계를 거쳐야합니다. 마지막 단계에서 java.lang.Throwable : Child Error라는 문제가 발생했습니다. 그 일이 실패한 이유는 무엇입니까? 또한 자식 노드의 매퍼에 필요한 최적의 힙 크기는 얼마입니까?Mapred Child Error : AWS EMR 인스턴스가 종료되었습니다.

+0

전체 스택 추적을 제공 할 수 있습니까? 또한 "최적의 힙 크기"가 없으며 작업의 성격, 데이터의 양 및 기타 많은 매개 변수에 따라 달라 지므로 정확하게 수행하려는 작업에 대해 더 자세히 설명해야합니다. –

+0

내 스택 추적 : 짧게 만듭니다. java.lang.Throwable의 : 자식 오류 \t org.apache.hadoop.mapred.TaskRunner.run (TaskRunner.java:271) 에 의해 발생 : 때 java.io.IOException : 137 의 제로가 아닌 상태로 작업 프로세스 종료 \t at org.apache.hadoop.mapred.TaskRunner.run (TaskRunner.java:258) java.lang.Throwable : 하위 오류 \t at org.apache.hadoop.mapred.TaskRunner.run (TaskRunner.java:271) 발생 원인 : java.io.IOException : 0이 아닌 상태 137 인 태스크 프로세스 종료 \t at org.apache.hadoop.mapred.TaskRunner.run (TaskRunner.java:258) – prasanna

+0

응답 해 주셔서 감사합니다. – prasanna

답변

0

특별한 것을하지 않는 한 - 3000M은 너무 높은 숫자입니다. 얼마나 많은지도 작업이 기계 당 실행 중인지 확인할 수 있습니까? 하나 이상을 실행한다면 - 3.75GB 램을 쉽게 날려 버릴 것입니다. (어쨌든 커널을 위해서는 자유롭게 사용해야합니다.)

우리는 서비스로 hadoop (Qubole)을 제공합니다. 기본적으로 여기에 (그리고 이전의 공연에서) - 기본값으로 1024M을 사용합니다. 당신은 그 아래에 io.sort.mb를 잘 설정하기를 원할 것입니다 (예를 들어 400-500MB). 사용자가 특수한 작업 (큰지도 쪽 조인과 같은)을 수행하는 경우에만 -이를 부딪 힐 이유가 있습니다. 증가해야하는 경우 시스템 당 최대 동시 맵 작업 수를 줄여야합니다 (둘 이상인 경우).

관련 문제