복붙노트

[HADOOP] 'yarn application -list'는 결과를 보여주지 못한다.

HADOOP

'yarn application -list'는 결과를 보여주지 못한다.

YARN 클러스터에서 일부 Spark 응용 프로그램을 실행했습니다. 응용 프로그램은 YARN UI http : // host : 8088 / cluster의 "All applications"페이지에 표시되지만 yarn application -list 명령은 결과를 제공하지 않습니다. 이것의 원인이 무엇일까요?

해결법

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

    1."-appTypes"또는 "-appStates"옵션없이 "-list"옵션을 사용하면 "application-types"및 "states"에 대한 기본 필터링을 적용합니다 (아래 강조 표시된 부분 확인). 응용 프로그램 중 어느 것도 기본 필터링과 일치하지 않으면 결과가 표시되지 않습니다.

    "-appTypes"또는 "-appStates"옵션없이 "-list"옵션을 사용하면 "application-types"및 "states"에 대한 기본 필터링을 적용합니다 (아래 강조 표시된 부분 확인). 응용 프로그램 중 어느 것도 기본 필터링과 일치하지 않으면 결과가 표시되지 않습니다.

    총 응용 프로그램 수 (응용 프로그램 유형 : [] 및 상태 : [SUBMITTED, ACCEPTED, RUNNING]) : 0

    "-list"에 대한 도움말이 표시되면 다음과 같이 표시됩니다.

    "응용 프로그램 나열 - 응용 프로그램 유형에 따라 응용 프로그램을 필터링하기 위해 -appTypes 옵션 사용을 지원하고 응용 프로그램 상태를 기반으로 응용 프로그램을 필터링하기 위해 -appStates를 지원합니다.

    이것은 약간 오도하는 것 같습니다.

    "-appStates"를 지정하지 않으면 기본적으로 상태를 "SUBMITTED", "ACCEPTED"및 "RUNNING"으로 필터링합니다. 아래의 코드를 "org.apache.hadoop.yarn.client.cli.ApplicationCLI.java"의 "listApplications ()"메소드에서 확인하십시오.

    private void listApplications()
    {
        ............
    
        if (allAppStates) {
          for (YarnApplicationState appState : YarnApplicationState.values()) {
            appStates.add(appState);
          }
        } else {
          if (appStates.isEmpty()) {
            appStates.add(YarnApplicationState.RUNNING);
            appStates.add(YarnApplicationState.ACCEPTED);
            appStates.add(YarnApplicationState.SUBMITTED);
          }
        }
    
        ............
    }
    

    위의 코드에 따라 다음 논리가 적용됩니다.

    CMD> 원사 신청 - 목록

    총 응용 프로그램 수 (응용 프로그램 유형 : [] 및 상태 : [SUBMITTED, ACCEPTED, RUNNING]) : 0

    CMD> 원사 신청 - 목록 -appStates ALL

    ALL 응용 프로그램의 총 수 (응용 프로그램 유형 : [] 및 상태 : [NEW, NEW_SAVING , 제출 됨, 수락 됨, 실행 중, 종료 됨, 실패됨, Killed]) : 268

    CMD> 원사 신청 - 목록 -appStates FINISHED

    총 응용 프로그램 수 (응용 프로그램 유형 : [] 및 상태 : [FINISHED]) : 136

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

    2.YARN에서 로그 집계를 활성화했지만 yarn.nodemanager.remote-app-log-dir을 사용자 정의 hdfs 디렉토리 (/ tmp / yarnlogs)로 설정 했으므로 로그는 실제로 / tmp / yarnlogs에 집계되었습니다. HDFS 였지만 원사 명령은 여전히 ​​HDFS (/ tmp / logs)의 기본 위치에서 로그를 검색했습니다. 그래서 속성을 기본값으로 변경하면 나를 위해 그것을 고쳤습니다.

    YARN에서 로그 집계를 활성화했지만 yarn.nodemanager.remote-app-log-dir을 사용자 정의 hdfs 디렉토리 (/ tmp / yarnlogs)로 설정 했으므로 로그는 실제로 / tmp / yarnlogs에 집계되었습니다. HDFS 였지만 원사 명령은 여전히 ​​HDFS (/ tmp / logs)의 기본 위치에서 로그를 검색했습니다. 그래서 속성을 기본값으로 변경하면 나를 위해 그것을 고쳤습니다.

    노트: 로그 집계 디렉토리가 잘못 구성된 경우 웹 UI에서 작업 기록에 액세스하는 동안 다음과 같은 오류가 발생합니다. 로그 집계가 완료되지 않았거나 활성화되어 있지 않습니다.

  3. from https://stackoverflow.com/questions/32836740/yarn-application-list-doesnt-show-any-results by cc-by-sa and MIT license