Amazon EMR 클러스터의 코어 노드에 디스크 용량이 부족한 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 7월 8일

Amazon EMR 클러스터에서 Apache Spark 작업을 실행하고 있습니다. 코어 노드에 디스크 공간이 거의 없습니다. 이유가 무엇입니까?

해결 방법

코어 노드의 디스크 공간 사용률을 높이는 다음과 같은 일반적인 원인을 확인합니다.

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

Spark 작업을 실행하면 Spark 애플리케이션에서 로컬 파일이 생성됩니다. 이 파일에 코어 노드의 나머지 디스크 공간이 사용될 수 있습니다. 마스터 노드에서 다음 명령을 실행하여 디스크 공간을 가장 많이 사용하는 디렉터리 10개를 확인합니다.

sudo du -hsx * | sort -rh | head -10

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

참고: Spark 실행기 수가 예상대로 증가하지 않으면 코어 노드에 연결된 Amazon Elastic Block Store(Amazon EBS) 볼륨의 스토리지 용량을 늘리십시오. 또는 코어 노드에 EBS 볼륨을 추가합니다.

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

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

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

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

참고: Spark에서 애플리케이션 로그가 HDFS로 복사된 후 이러한 로그는 로그 푸셔에 의해 Amazon Simple Storage Service(Amazon S3)로 푸시될 수 있도록 로컬 디스크에 유지됩니다. 기본 보존 기간은 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 속성에서 지정됩니다. 자세한 내용은 Spark 설명서의 Monitoring and instrumentation을 참조하십시오.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?