욱'S 노트

Spark - 어플리케이션 서브밋 본문

Programming/Spark

Spark - 어플리케이션 서브밋

devsun 2017. 3. 6. 11:31

어플리케이션 서브밋

스파크 서브밋 스크립트는 스파크 bin 디렉토리 하위에 위치하며 클러스터 상에 어플리케이션을 구동하기 위해서 사용된다. 해당 스크립트는 스파크가 지원하는 모든 클러스터 매니저에서 사용되며 모든 클러스터에 대한 단일한 인터페이스를 제공한다.

어플리케이션 번들

일반적으로 어플리케이션은 다른 프로젝트에 디펜던시를 가진다. 그리고 우리는 스파크 클러스터에 어플리케이션을 구동하기위해 코드 뿐만 아니라 그 디펜던시도 필요하다. 이를 위해 어플리케이션 코드와 디펜던시는 함께 assembly jar(혹은 uber jar)로 함께 패키징되어야 하며, 그 방법은 sbt, maven 등 다양한 빌드툴에서 제공한다. 해당 내용은 여기서 다루지 않겠다.

어플리케이션 구동하기

어플리케이션 번들이 준비되면 bin/spark-submit 스크립트를 통해 구동할 수 있다.

./bin/spark-submit \
  --class <main-class> \
  --master <master-url> \
  --deploy-mode <deploy-mode> \
  --conf <key>=<value> \
  ... # other options
  <application-jar> \
  [application-arguments]

공통적인 옵션은 다음과 같다.

–class: 어플리케이션 엔트리 포인트 (e.g. org.apache.spark.examples.SparkPi)
–master: 클러스터의 마스터 URL (e.g. spark://23.195.26.187:7077)
–deploy-mode: 드라이버 프로그램을 워크노드 상에 배포할 것인지(cluster) 또는 외부 클라이언트로 사용할 것인지 (client)(default: client)
–conf: key=value 포맷의 스파크 설정. “key=value”처럼 따옴표로 묶어야되며 각 값들은 스페이스 구분된다.
application-jar: 번들된 jar의 경로. URL은 클러스터에서 글로벌하게 접근가능해야 한다. 예를 들어 hdfs:// path 또는 a file:// path는 모든 노드에서 접근 가능해야 한다.
application-arguments: 메인클래스 메인메소드에 전달할 인자

마스터 URL들의 의미는 다음과 같다.
- local - 스파크를 하나의 워커 스레드에서 구동
- local[K] - 스파크를 로컬에서 K개의 워커 스레드에서 구동
- spark://HOST:PORT - 주어진 스파크 standalone 마스터에 접속 어플리케이션 구동
- mesos://HOST:PORT - 주어진 mesos 클러스터 마스커에 접속 어플리케이션 구동
- yarn –deploy-mode 값에 따른 YARN 클러스터 모드로 접속하거나 YARN 클러스터 클러스터에 클라이언트로 연결

출처 : http://spark.apache.org/docs/latest/submitting-applications.html

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

Spark - Stand alone 클러스터  (0) 2017.02.17
Spark - 클러스터 개요  (0) 2017.02.16
Spark - RDD  (0) 2017.02.01
Spark - 개요 및 시작하기  (0) 2017.02.01
Spark + IntelliJ 프로젝트 구성하기  (0) 2017.02.01
Comments