복붙노트

[HADOOP] YARN의 로그 파일을 보관하는 방법은 무엇입니까?

HADOOP

YARN의 로그 파일을 보관하는 방법은 무엇입니까?

갑자기 내 YARN 클러스터가 작동을 멈추고 제출 한 모든 항목이 '종료 코드 1'로 실패합니다. 문제를 추적하고 싶지만 응용 프로그램이 실패하자마자 YARN이 로그 파일을 삭제합니다. 이 로그 파일을 보관하기 위해 YARN에 맞게 조정해야하는 구성 설정은 무엇입니까?

해결법

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

    1.컨테이너가 종료 코드 1로 종료되고있는 것 같습니다.

    컨테이너가 종료 코드 1로 종료되고있는 것 같습니다.

    기본적으로 로그 집계는 사용 불가능하므로 UI에서 로그를 볼 수 없습니다. 다음 매개 변수는 로그 집계를 결정합니다. "yarn.log-aggregation-enable"(로그 집계가 비활성화 된 경우 "false"로 설정)

    이 값을 "false"로 설정하면 모든 노드 관리자가 컨테이너 로그를 다음 구성 매개 변수로 결정된 로컬 디렉토리에 저장합니다. "yarn.nodemanager.log-dirs".

    예 : 내 경우에는 다음과 같이 설정됩니다.

      <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>e:\hdpdata\hadoop\logs</value>
      </property>
    

    따라서 특정 응용 프로그램에 대한 모든 컨테이너 로그는 노드 관리자 컴퓨터의 "e : \ hdpdata \ hadoop \ logs \ {application-id} \ {container-id}"폴더에 있습니다. 응용 프로그램 마스터 도망 갔다.

    내 응용 프로그램 "application_1443377528298_0010"이 (가) 실패했다고 가정 해 봅시다. YARNRM의 UI (config 매개 변수 : yarn.resourcemanager.webapp.address에 의해 결정됨)에서 응용 프로그램 관리자가 실행 한 노드에 대한 정보를 얻을 수 있습니다. 아래 그림에서 응용 프로그램 관리자는 시스템 "120243"에서 실행되었습니다.

    이 컴퓨터에 로그인하여 "e : \ hdpdata \ hadoop \ logs \ application_1443377528298_0010 \"폴더를 검색하면 "application_1443377528298_0010"응용 프로그램의 모든 컨테이너에 대한 로그를 볼 수 있습니다.

    그러나 이제 YARN RM 웹 UI를 통해 로그를보고 싶다면 로그 집계를 활성화해야합니다. 이를 위해 yarn-site.xml에서 다음 매개 변수를 설정해야합니다.

      <property>
          <name>yarn.log-aggregation-enable</name>
          <value>true</value>
      </property>
      <property>
         <name>yarn.nodemanager.remote-app-log-dir</name>
         <value>/app-logs</value>
      </property>
      <property>
          <name>yarn.nodemanager.remote-app-log-dir-suffix</name>
          <value>logs</value>
      </property>
    

    위의 설정에서 내 로그는 HDFS의 "/ app-logs / {username} / logs /"에 집계됩니다. 이 폴더 아래에서 지금까지 실행되는 모든 응용 프로그램에 대한 로그를 찾을 수 있습니다. 다시 로그 보존은 구성 매개 변수 "yarn.log-aggregation.retain-seconds"(집계 된 로그를 보존하는 기간)에 의해 결정됩니다.

    MapReduce 애플리케이션이 실행 중일 때 YARN의 웹 UI에서 로그에 액세스 할 수 있습니다. 응용 프로그램이 완료되면 작업 기록 서버를 통해 로그가 제공됩니다.

    귀하의 경우, 웹 UI에서 로그를 보려면 응용 프로그램이 종료 된 후 MapReduce 작업 기록 서버를 실행해야합니다. 이를 사용하려면 mapred-site.xml에서 다음 구성 매개 변수를 설정하십시오.

      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>{job-history-hostname}:10020</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>{job-history-hostname}:19888</value>
      </property>
    

    그리고 yarn-site.xml의 다음 구성 매개 변수를 설정하십시오.

      <property>
        <name>yarn.log.server.url</name>
        <value>http://{job-history-hostname}:19888/jobhistory/logs</value>
      </property>
    

    Windows에서 HDP 설치의 설정을 복제했으며 이러한 설정이 저에게 효과적입니다. 이들은 또한 당신을 위해 작동해야합니다. 위에서 언급 한 각 구성에 대한 설명은 아래 링크를 참조하십시오.

    https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

    https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

  2. from https://stackoverflow.com/questions/32713587/how-to-keep-yarns-log-files by cc-by-sa and MIT license