본문 바로가기

Programming/Tip&Informaion

[실수노트] Spark 무한 실행, 멈춤 오류

스파크로 작업을 위해 짜놓았던 테스트 코드를 돌렸더니, 실행 중인 클래스명과 함께 시간만 무한히 증가하는 화면만 나오는 상태로 끝나지 않았다. 한 번 돌기 시작하면 중간에 쉘에서 취소해도 멈추지 않고 프로세스를 강제로 죽여야 종료가 됐다.

뭔가 설정이 꼬였다고 생각해서 처음에는 메모리 등의 이슈인가 하여 늘려보고 spark session이나 context를 종료했다 실행하는 등 다양한 방법을 해봤지만 결론은 같았다.

알고 보니 원인은 어이없고 당연한 이유였는데...

udf 코드를 변경했는데 원래는 일정 횟수만큼 돌던 코드를 오류가 날 때까지 돌게 수정을 했는데 종료 조건이 명확하지 않아서 무한히 도는 문제였다.

scala를 사용해서 재귀로 짰는데.. 아마 자동으로 꼬리재귀로 메모리가 잘 관리돼서 stack over flow 같은 오류도 발생하지 않았나보다..