본문 바로가기

IT/Spark

Spark Submit

반응형

정의

  • spark-submit은 Apache Spark 작업을 클러스터에서 실행하는 명령어입니다.
  • PySpark, Scala, Java, R 애플리케이션을 YARN, Kubernetes, Mesos 또는 Spark Standalone 모드에서 실행할 수 있습니다.

특징

 클러스터 모드 지원

  • local, yarn, mesos, kubernetes, standalone 등 다양한 실행 모드 제공
     리소스 조정 가능
  • --num-executors, --executor-memory, --executor-cores 옵션으로 클러스터 리소스를 최적화 가능
     다양한 배포 모드
  • client(로컬에서 실행) vs cluster(클러스터에서 실행) 지원
     다양한 언어 지원
  • PySpark, Java, Scala, R 애플리케이션 실행 가능
     HDFS 및 클라우드 저장소 연동 가능
  • s3://, hdfs://, gs:// 등을 활용하여 데이터 저장 가능
  • Spark Submit 명령어(기본형식)
spark-submit \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --num-executors <n> \
  --executor-cores <n> \
  --executor-memory <memory> \
  --driver-memory <memory> \
  <application.py or application.jar> \
  [application-arguments]

 

  • 옵션 설명
--master 실행할 클러스터 유형 (yarn, kubernetes, local, spark://<host>:<port> 등)
--deploy-mode client (로컬 실행) vs cluster (클러스터 실행)
--num-executors 실행할 Executor 개수 설정
--executor-cores 각 Executor의 CPU 코어 수 설정
--executor-memory 각 Executor의 메모리 설정 (4G, 8G 등)
--driver-memory 드라이버 프로그램 메모리 설정
<application.py> 실행할 PySpark 스크립트 또는 JAR 파일

 

3. 실행 모드별 명령어

1) Local 모드 (로컬에서 실행)

spark-submit --master local[4] wordcount.py

 

특징
 local[n]  n개의 코어 사용
✔ 단순한 테스트 및 디버깅에 적합

 

2) YARN 모드 (Hadoop 클러스터)

 Cluster Mode

spark-submit --master yarn --deploy-mode cluster \
  --num-executors 4 \
  --executor-cores 2 \
  --executor-memory 4G \
  --driver-memory 2G \
  wordcount.py

 

특징
 YARN 리소스 매니저 활용 → 클러스터가 실행 관리
✔ 실행이 클러스터에서 수행되므로 로컬 머신과 무관

 

반응형

'IT > Spark' 카테고리의 다른 글

RDD(Resilient Distributed Dataset)  (0) 2025.02.08
PySpark 관련 유투브  (0) 2025.02.08
Apache Spark 클러스터에서 Python 처리  (0) 2025.02.07
PySpark  (0) 2025.02.07
Spark 2.4 / 3.0 비교  (0) 2025.02.04