spark 모르는 옵션 정리
2024. 6. 21. 10:16ㆍBig Data
- spark.task.maxFailures
- task의 실패 최대 횟수 (default 4)
- spark.stage.maxConsecutiveAttempts
- 노드 scale 조정, 트리거로 인한 노드 종료 등의 이유로 stage가 실패하게 되면 설정된 count 만큼 허용한다.
- 예를 들어 작업 중 어떤 한 노드를 강제 종료하게 되면 task 실패 횟수에 1이 추가되는게 아니라 maxCounsecutiveAttempts에 1이 추가가 된다. 설정된 값만큼의 실패 예외를 허용해 준다.
- spark.shuffle.file.buffer
- shuffle 시 파일 출력 스트림 버퍼 크기
- spark.sql.files.maxPartitionBytes
- input partition의 크기를 설정한다. (default 128mb (134217728))
- file이 크다면 input partition의 크기만큼 쪼개고 file이 설정 값보다 작다면 작은 크기 자체가 1개의 partition이 된다.
- spark.sql.shuffle.partitions
- join, groupby 등의 연산 시 쓰이는 partition
- partition 크기에 맞추어 설정해야 함.
- shuffle 시 메모리가 부족하게 되면 데이터를 직렬화 한 후 hdfs에 저장하고, 이 후 다시 역직렬화 해서 처리하는 작업을 하게 되는데 이 과정에서 task fail 이 많이 발생함.
- shuffle 시 파티션의 크기가 100~200 mb를 유지시키도록 설정하는 게 중요
- spark.shuffle.io.retryWait
- shuffle에서 fetch 시 재시도 대기 시간
- spark.shuffle.io.maxRetries
- shuffle fetch 재시도 횟수
- spark.driver.maxResultSize
- collection 등으로 driver에 데이터가 몰릴 때의 최대 크기
- spark.network.timeout
- spark의 모든 network 상호 작용 간의 timeout 시간
- spark.ui.retainedTasks
- 가비지 처리 전에 spark ui와 status api가 유지해야 할 task의 개수
- spark.ui.retainedStages
- 가비지 처리 전에 spark ui와 status api가 유지해야 할 stage의 개수
- spark.ui.retainedJobs
- 가비지 처리 전에 spark ui와 status api가 유지해야 할 job의 개수
- spark.ui.enabled
- spark application의 web ui를 실행할지 말지 여부
- spark.scheduler.mode
- job 실행 시 queue 사용 정책을 위한 schedule 모드. 대표적으로 FAIR 가 있음.