본문 바로가기
빅데이터 시스템

스파크 애플리케이션 작성 및 전개

by 볼록티 2019. 12. 15.
728x90
반응형

-이번장에서 배울 것

0.스파크 애플리케이션 작성하는 방법.

 

-WordCount.py 라는 애플리케이션을 사전에 만든다.

 import sys

 from pyspark import SparkContext

 

 if __name__ == "__main__":

     if len(sys.argv) < 2:

         print >> sys.stderr, “usage: WordCount <file>”

         exit(-1)

 

     sc = SparkContext()

 

     counts = sc.textFile(sys.argv[1]) \

          .flatMap(lambda line: line.split()) \

          .map(lambda word: (word,1)) \

          .reduceByKey(lambda v1,v2: v1+v2)

 

     for pair in counts.take(5): print pair

 

     sc.stop()

 

 -이제 이 WordCount.py 애플리케이션을 실행

  spark-submit WordCount.py fileURL

 

1.YARN 클러스터 상에서 스파크 애플리케이션과 쉘을 실행하는 방법.

 -스파크 애플리케이션 실행하기

 spark-submit --master 를 사용해서 클러스터 옵션을 설정한다.

 클러스터 옵션에는 yarn-client, yarn-cluster, spark://masternode:port(Spark Standalone),

  mesos://masternode:port(Mesos) 가 있다.

 

 spark-submit --master yarn-cluster

 WordCount.py fileURL

  yarn클러스터에서 스파크 애플리케이션 실행하기.

 

 -스파크 쉘 실행하기

  pyspark와 spark-shell 둘다 --master 옵션이 있다.

  옵션에는 yarn(client mode only), Spark나 Mesos 클러스터 매니저 URL, local[*],

  local[n], local 이 있다.

  

 pyspark --master yarn

  yarn클러스터에서 스파크 쉘 실행하기.

 

 -YARN에서 스파크가 어떻게 실행되나. 클라이언트 모드 예시)

1
2

Spark가 Spark Context를 통해 YARN에게 명령을 하면 YARN은 application master를 통해 실제 실행할 datanode에 접근한다. 그리고 그 datanode는 할당된 resource로 client랑 데이터를 주고받는다

 

 

 

 -YARN에서 스파크가 어떻게 실행되나. 클러스터 모드 예시)

1
2

Application을 yarn에다가 넘겨줘서 spark context가 아예 yarn으로 넘어 간다.

 

 

 

2.Web UI에서 스파크 애플리케이션을 접속, 사용하는 방법.

 스파크가 실행중에만 Spark UI를 이용가능하며 localhost:18080 URL을 통해 접속 가능하다. 접속하여 스파크 실행 내용

 과 기록을 확인한다.

 

3.애플리케이션의 속성과 로깅을 확인하는 방법.

 스파크는 로깅을 위해 아파치 Log4j를 사용한다. 

 information : http://logging.apache.org/log4j/1.2/ 

 

Welcome - Apache Logging Services

Apache logging services The Apache Logging Services Project creates and maintains open-source software related to the logging of application behavior and released at no charge to the public. Apache Log4j Log4j 2 is an upgrade to Log4j that provides signifi

logging.apache.org

  Log4j가 공급하는 로깅 레벨.

  -Fatal, Error, Warn, Info, Debug, Trace, Off

 

-주요 포인트

 1.스파크 쉘 애플리케이션을 통해서 대화형으로 데이터 탐색을 할 수 있다.

 2.스파크 애플리케이션을 독립적으로 작성할 수 있다.(예: 파이썬)

 3.스파크 애플리케이션은 Spark Context(sc)를 필요로 한다.

 4.스파크 애플리케이션은 spark-submit 스크립트를 사용하여 작동한다.

 5.스파크 configuration parameters는 spark-submit 스크립트 또는 SparkConf 객체를 

 사용하여 런타임에서 설정이 된다.

 6.스파크는 로깅을 위해 log4j를 사용한다

  log4j.properties 파일을 사용하여 구성한다.

 7.스파크는 하나의 클러스터에서 실행한다. Spark Standalone이라 불리는 기본 클러스터 

  관리 플랫폼을 포함하고 있고, 얀이나 Mesos에서도 작동이 가능하다.

 8.마스터는 클러스터에서 개별 워커들에게 작업을 분배한다.

 9.스파크 클러스터들은 HDFS와 가까이에서 일한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이글은 서울과학기술대학교 권혁윤 교수님의 강의를 토대로 필기한 내용임을 밝힙니다. :)

 

728x90
반응형

'빅데이터 시스템' 카테고리의 다른 글

스파크 병렬 처리  (0) 2019.12.15
Pair RDD와 함께 데이터 병합.  (0) 2019.12.15
RDD와 함께 스파크 활용하기.  (0) 2019.12.15
스파크 기초  (0) 2019.12.15
데이터 파일 파티셔닝  (0) 2019.12.15

댓글