spark 모르는 옵션 정리

2024. 6. 21. 10:16Big 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 가 있음.