[Spark] history server 장애

2025. 4. 14. 14:18Big Data

새벽에 갑자기 namenode가 내려갔다는 장애 알림 메시지를 받게 됨!!!

 

일단 일어나서 부랴부랴 네임노드를 다시 재 시작해주고.. (다행히 ha 설정이 되어 있어서 서비스 상에서는 문제가 없었음)

 

자세히 왜 내려 갔는지 문제점을 파악하기 시작!!

 

일단 문제가 발생한 원인은 아래의 그래프에서 찾을 수 있었다. 바로바로 과도한 cpu 사용으로 인한 namenode shutdown

 

 

저렇게 과도하게 cpu를 먹고 있는게 과연 무엇을까 서버 접속해서 top를 쳐본 결과 spark history server에서 2000% 넘게 cpu를 사용하고 있는 걸 확인했다.

 

왜 history server가 2000%를 먹고 있는지 확인해 보기 위해 hdfs에 있는 history log list를 확인하려고 접근하려는 순간....

아... 접근이 안된다... 너무 데이터가 많아서 그런지 oom 메시지와 함께 폴더 접근이 안된다.

 

일단 수동으로 파일 삭제는 불가능하다고 판단하고, 자동으로 삭제 설정을 하기 위해서 spark-defaults.conf 파일에 아래와 같은 option을 추가했다.

 

spark.history.fs.cleaner.enabled true
spark.history.fs.cleaner.interval 5m
spark.history.fs.cleaner.maxAge 7d

 

cleaner 옵션을 true로 줘서 주기적으로 log를 삭제할 수 있도록 하고, cleaner interval도 일단 5분으로 줘서 기존의 log들을 7일치 데이터만 남기고 전부 삭제할 수 있도록 설정했다.

전부 삭제된 걸 확인 한 후에는 interval을 1d로 변경할 예정이다.

 

이렇게 옵션을 바꾼 후 spark-history-server를 재시작 해준다.

 

$> sh stop-history-server.sh
$> sh start-history-server.sh

 

5분 후에 추이를 보니 !! 제대로 잘 삭제하고 있는 걸 확인해 볼 수 있었다.!!

 

참고로 위와 같은 spark 설정을 안하게 되면 history log를 영구히 저장하게 되니 유의하기 바람!