[hadoop] Exit Code 154

hadoop 2019. 6. 4. 17:20

 

아래와 같은 클라이언트에서 hadoop에러가 발생했다.

org.apache.http.conn.HttpHostConnectException: Connection to http://google-hadoop-dn4.dakao.io:40060 refused

 

hadoop ui에 다음과 같이 154 에러가 발생했다. 

Application application_1544089295328_663490 failed 1 times due to AM Container for appattempt_1544089295328_663490_000001 exited with exitCode: 154

 

이 이유는 Job 실행 중간에 노드가 내려가면서 발생한 것이었다.

 

 

컨테이너 (프로세스 트리)가 아직 실행 중일 때 RecoveredContainerLaunch(https://hadoop.apache.org/docs/r2.9.2/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/apidocs/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/RecoveredContainerLaunch.html)이 주기적으로 폴링하여 프로세스가 종료되었는지 확인하고 생성된 종료 코드 파일에서 종료 코드를 얻는다.

 

 

컨테이너에서 종료 코드가 없어서 다시 가져 오기를 하려고 하고. 

다시 실패하면 컨테이너는 LOST (Exit 154)로 알린다.

 

 

 

154번에 대한 에러 코드는 다음과 같다. 

 

https://github.com/apache/hadoop/blob/master/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/ContainerExecutor.java#L288

  public enum ExitCode {
    FORCE_KILLED(137),
    TERMINATED(143),
    LOST(154);
    private final int code;

    private ExitCode(int exitCode) {
      this.code = exitCode;
    }

    public int getExitCode() {
      return code;
    }

    @Override
    public String toString() {
      return String.valueOf(code);
    }
  }

 

RecoveryContainerLaunch 소스

 

https://zgrepcode.com/hadoop/apache/3.2.0-rc1/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/recoveredcontainerlaunch.java

Posted by 김용환 '김용환'

댓글을 달아 주세요