spark-shell 이나 spark-submit 으로 spark app을 실행시킬 때 자원에 제한을 두는 방법이다.

아래처럼 옵션을 줄 수 있다.

 

--executor-cores : 각 executor 당 core 개수
--executor-memory : 각 executor 당 memory 용량
--num-executors : 한 노드의 executor 개수

 

예)

spark-shell --master yarn \

    --num-executors 12 --executor-memory 4g --executor-cores \

    --conf spark.default.parallelism=12 \

    --conf spark.sql.shuffle.partitions=12

 

위의 예에서는 spark app 은

총 12개의 executor 를 사용하고

각 executor 당 4g의 메모리를 사용하며

각 executor 당 2개의 코어를 사용한다(2개 thread 만큼 병렬 실행이 가능)

 

추가적으로,

spark.default.parallelism 는 RDD의 파티션 개수

spark.sql.shuffle.partitions 는 셔플할 때 나눠지는 파티션 개수

를 의미한다.

 

 

 

+ Recent posts