단일 노드 한계에서 분산을 선택하고 파티션 튜닝과 장애 재시도를 직접 다룬 결
졸업 프로젝트에서 1억 개 이상 텍스트 레코드를 전처리하다가 단일 노드로 12시간이 넘어가자 Spark로 전환했습니다. 분산이 빠르다기보다, OOM으로 노드가 죽는 게 반복돼서 다른 선택지가 없었습니다. 처음에는 기본 파티션 수로 돌렸다가 GC 경고가 쏟아지는 것을 보고 repartition으로 파티션을 늘렸고, 셔플 메모리 설정도 직접 손봤습니다. 태스크 재시도 기본값이 4회여서 그냥 뒀다가 특정 파티션이 데이터 치우침 때문에 반복 실패하는 걸 발견하고 salting 기법으로 분산시켰습니다. 분산 처리를 돌린다고 끝이 아니라 파티션이 고르게 퍼지는지 확인하는 게 운영의 핵심이라는 걸 그때 익혔습니다.