Amazon EMR 클러스터에서 Spark 작업을 실행하고 있습니다. 하지만 코어 노드의 디스크 공간이 매우 부족합니다. 무슨 이유입니까?

코어 노드에서 디스크 공간 사용에 대한 다음과 같은 일반적인 원인을 확인합니다.

Spark 애플리케이션의 로컬 및 임시 파일

Spark 작업을 실행할 때 Spark 애플리케이션에서는 코어 노드에서 나머지 디스크 공간을 사용할 수 있는 로컬 파일을 만듭니다. 코어 노드에서 다음 디렉터리의 크기를 확인합니다.

  • /filecache
  • /usercache//filecache
  • /usercache//appcache/ /

참고: /etc/hadoop/conf/yarn-site.xml 파일의 yarn.nodemanager.local-dirs 속성에 의해 지정됩니다.

로컬 파일에서 나머지 디스크 공간을 사용하는 경우 클러스터를 확장합니다. 자세한 내용은 클러스터 리소스 확장을 참조하십시오.

참고: Spark 실행기의 수가 예상대로 확장되지 않는 경우 코어 노드에 연결된 Amazon EBS(Amazon Elastic Block Store) 볼륨의 스토리지 용량을 늘립니다. 경우에 따라 더 많은 Amazon EBS 볼륨을 코어 노드에 추가할 수 있습니다.

Spark 애플리케이션 로그 및 작업 기록 파일

Spark 작업을 실행할 때 Spark에서는 HDFS에 애플리케이션 로그와 작업 기록 파일을 만듭니다. 이러한 로그는 코어 노드에서 나머지 디스크 공간을 사용할 수 있습니다. 이 문제를 해결하려면 로그가 저장된 디렉토리를 확인하고 필요한 경우 보존 파라미터를 변경합니다.

Spark 작업에 대한 YARN 컨테이너 로그인 Spark 애플리케이션 로그는 코어 노드의 /var/log/hadoop-yarn/apps에 있습니다. 애플리케이션 실행이 완료되면 이러한 로그가 HDFS로 이동합니다. 기본적으로 YARN에서는 애플리케이션 로그를 48시간 동안 HDFS에 유지합니다. 보존 기간을 줄이려면 다음 단계를 수행합니다.

  1. SSH를 사용하여 마스터 노드에 연결합니다.
  2. Amazon EMR 클러스터의 각 노드(마스터, 코어 및 작업 노드)에서 /etc/hadoop/conf/yarn-site.xml 파일을 엽니다.
  3. 모든 노드에서 yarn.log-aggregation.retain-seconds 속성 값을 줄입니다.
  4. ResourceManager 데몬을 다시 시작합니다. 자세한 내용은 Amazon EMR 및 애플리케이션 프로세스(데몬) 보기 및 다시 시작을 참조하십시오.

참고: 애플리케이션 로그가 HDFS로 복사되면 로그 푸셔에서 해당 로그를 Amazon S3(Amazon Simple Storage Service)으로 푸시할 수 있도록 로컬 디스크에 유지됩니다. 기본 보존 기간은 4시간입니다. 보존 기간을 줄이려면 /etc/logpusher/hadoop.config 파일을 수정하십시오.

Spark 작업 기록 파일은 코어 노드의 /var/log/spark/apps에 있습니다. 파일 시스템 클리너를 실행하면 Spark에서는 7일보다 오래된 작업 기록 파일을 삭제합니다.

기본 보존 기간을 줄이려면 다음 단계를 수행합니다.

  1. SSH를 사용하여 마스터 노드에 연결합니다.
  2. 마스터 노드에서 /etc/spark/conf/spark-defaults.conf 파일을 엽니다.
  3. spark.history.fs.cleaner.maxAge 속성 값을 줄입니다.

기본적으로 파일 시스템 기록 클리너는 하루에 한 번 실행됩니다. 빈도는 spark.history.fs.cleaner.interval 속성에서 지정됩니다. 자세한 내용은 모니터링 및 계측을 참조하십시오.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018-08-08