spark

자주사용되는 spark config

코드모헨 2024. 2. 13. 14:03

spark.executorEnv.[EnvironmentVariableName]

-> 각 executor의 환경 변수를 지정한다.

더보기

주로 사용되는 환경변수
spark.executorEnv.JAVA_HOME 
-> 자바 홈 디렉토리 설정
spark.executorEnv.PYSPARK_PYTHON 
-> 파이썬 환경 디렉토리 설정

 

spark.pyspark.python

-> driver와 executor의  Python binary를 설정 (Pyspark용)

-> python binary란 python 실행파일이라 생각하면 쉽다.

 

spark.archives

-> driver와 executor노드에 공통으로 사용될 파일을 만든다. (archiving)

(사용되는 형식은 .jar, .tar.gz, .tgz and .zip)

 You can specify the directory name to unpack via adding # after the file name to unpack, for example, file.zip#directory. This configuration is experimental.

(쉼표로 나누어서 여러개 파일 등록가능) 

 

 

spark.default.parallelism 

-> 기본 파티션수 단 트랜스포메이션에서 rdd로 반환되는데 사용되는 파티션이다. join, reduceByKey그리고 parallelize 같은 command에서 사용된다(suffle partition)

만약 spark.sql.shuffle.partitions를 셋팅하지 않으면 이 옵션으로 설정한 값이 셔플 파티션이 된다.

 

spark.sql.shuffle.partitions

-> 셔플하는데 사용되는 기본 파티션수 (default 200) 셔플은 join 혹은 집계함수를 사용할 떄 발생

 

※ 단, 구조화된 스트리밍 쿼리가 체크포인트를 사용하여 장애 발생 후 재시작될 떄,

이 설정값을 변경할 수 없다. 

-> 왜냐하면 해당 쿼리가 이전에 사용했던 설정을 유지해야 하기 때문이다.

어떤 이유로 쿼리가 중단되었다가 체크포인트 위치에서 재시작되는 경우, Spark는 체크포인트 데이터를 사용하여 쿼리의 상태를 복원한다. 이때, 만약 spark.sql.shuffle.partitions
설정을 변경하려고 시도한다면, 예를 들어 100으로 줄이려고 한다면, Spark 구조화된 스트리밍 엔진은 설정 변경을 허용하지 않는다. 이는 체크포인트와의 일관성을 유지하기 위함.

 

spark.executor.memory 

-> executor당 사용되는 메모리량을 설정

 

spark.executor.cores

-> execuotr당 사용되는 코어수를 설정

-> 경험적 측면에서 3~5개 사이의 core를 설정하는게 가장 좋다.

 

 


spark 옵션 적용 우선순위

(python 기준)

SparkSession.builder.config > spakr-defaulte.conf > spark-env.sh

SparkSession.builder.config가 가장 높은 우선 순위를 가진다.

'spark' 카테고리의 다른 글

spark 와 db연동 하기  (0) 2025.01.22
spark memory 관리  (0) 2024.02.27
Repartiotion 방법  (0) 2024.02.16
Spark partition 이해하기  (1) 2024.02.16
Spark 설치하기 in Linux - ubuntu  (0) 2023.12.22