Contents
-
RDD
-
Shared Variables
RDD
모든 Spark 어플리케이션은 사용자의 main 함수를 실행하고 , 다양한 병렬 작업을 실행하는
driver 프로그램으로 구성된다.
RDD 는 Spark 가 제공하는 추상환데 ,
병렬 클러스터의 노드 전체에 걸쳐 분할된 collection of elements 다
RDD 는 하둡 파일이스템의 파일 또는 driver 프로그램 안에있는 Scala collection에서 시작하여 생성된다.
User 는 병렬 작업 전체에 걸쳐 재사용 할 수 있도록 RDD를 메모리에 유지하도록 Spark에 요청할 수 있다.
또한 RDD는 노드 장애로부터 자동 복구된다.
Shared Variables
Spark 의 두번째 추상화 기능은 병렬 연산에 사용할 수 있는 Shared Variables(공유 변수) 다
기본적으로 스파크는 서로 다른 노드에서 병렬로 기능을 실행할 때, 기능에 사용된 각각의 변수의 copy를 각 작업에 전송한다.
가끔 변수는 여러 tasks 그리고 driver program 에 공유 되어야한다.
Spark 는 broadcast 변수와 accumulator 2가지 유형의 공유 변수를 지원한다.
broadcast 변수는 모든 노드에서 메모리의 값을 캐싱하는데 사용하고
accumulator는 변수와 카운터 , 합계등 added 만 되는 변수다
그럼 이제 어떻게 프로그래밍을 하는지 알아보자
여기서는 spark-shell 을 사용한 방법은 패스할 예정이다.
스파크와 연결
Spark 를 사용하려면 먼저 Maven 에 종속성을 추가해야한다.
만약 HDFS 클러스터에 접근하려면 HDFS 버전의 하둡 클라이언트를 종속성 추가한다
그 다음 import 해서 사용하면 된다.
스파크 초기화
스파크 프로그램이 가장 먼저 해야 할 일은 SparkContext 객체를 만들어서 스파크에게 cluster에 엑세스 하는 방법을 알려주는 것.
SparkContext를 작성하려면 먼저 어플리케이션의 정보가 담겨져있는 SparkCont 객체를 만들어야한다.
JVM당 하나의 SparkContext를 활성화 할 수 있다.
AppName 파라미터는 클러스터 UI 에 표시할 applicaiton name 이고,
Master 는 Spark, Mesos, Yarn 클러스터 URL 또는 special 로컬 모드에서 실행하는 "local" 이 있다.
클러스터에서 실행할 때는 마스터에 hardcode 하지 않고 spark-submit 으로 어플리케이션을 launch 하는게 좋다.
그러나 로컬 테스트에서는 local 로 쓰고 통과 시켜서 실행 할 수 있다.
여기까지 Spark RDD 의 설정을 봤고
이후 데이터 처리 예제는 다음글에서 보도록하자
'데이터처리 > spark' 카테고리의 다른 글
[Spark definitive guide] - 아파치 스파크란 (0) | 2021.02.02 |
---|---|
Spark - RDD 생성 방법과 동작 과정 (0) | 2020.06.04 |
[Trouble Shooting] spark- Java 버전 dependency (0) | 2020.05.14 |
[reference] spark - programming quick start (0) | 2020.05.08 |
[reference] Spark - 개념 클러스터 모드 (0) | 2020.05.08 |