[HADOOP] YARN의 로그 파일을 보관하는 방법은 무엇입니까?
HADOOPYARN의 로그 파일을 보관하는 방법은 무엇입니까?
갑자기 내 YARN 클러스터가 작동을 멈추고 제출 한 모든 항목이 '종료 코드 1'로 실패합니다. 문제를 추적하고 싶지만 응용 프로그램이 실패하자마자 YARN이 로그 파일을 삭제합니다. 이 로그 파일을 보관하기 위해 YARN에 맞게 조정해야하는 구성 설정은 무엇입니까?
해결법
-
==============================
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
from https://stackoverflow.com/questions/32713587/how-to-keep-yarns-log-files by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 원사 클라이언트 모드에서 원격 마스터 노드에서 스파크 작업을 제출하는 방법은 무엇입니까? (0) | 2019.06.07 |
---|---|
[HADOOP] get "오류 : ZooKeeper에서 마스터 주소를 가져올 수 없습니다. znode data == null "Hbase 쉘을 사용할 때 (0) | 2019.06.07 |
[HADOOP] Pyspark : HDFS 경로에있는 파일 / 디렉토리 목록 가져 오기 (0) | 2019.06.07 |
[HADOOP] Hadoop on EC2와 Elastic Map Reduce (0) | 2019.06.07 |
[HADOOP] hadoop에서 파일에 대한 블록 수보기 (0) | 2019.06.07 |