본문 바로가기

Hadoop

Spark 설치 & YARN과 연동




1. Spark


Apache Spark는 빅데이터 워크로드에 주로 사용되는 오픈소스 분산 쿼리 및 처리 엔진입니다. 데이터를 읽어 변형하고 합계를 낼 수 있으며 복잡한 통계 모델들을 쉽게 학습하고 배포할 수 있습니다.

스파크 API는 자바, 스칼라, 파이썬, R, SQL을 이용해 접근할 수 있어 애플리케이션을 빌드하는데 쓰일 수 있고 여러 애플리케이션을 라이브러리로 묶어서 클러스터에 배포할 수 있으며 범용 적이면서 빠른 속도로 작업을 수행할 수 있도록 설계한 클러스터용 연산 플랫폼입니다.


유연성과 맵리듀스에 대한 확장성을 훨씬 빠른 속도로 제공하여 데이터가 메모리에 저장 되어있을 때는 아파치 하둡 보다 100배 빠르며 디스크에 저장되어 있을 때는 10배 빠르므로 하둡 시스템과 연동해서 사용하며 구성요소는 아래와 같습니다.

 

1. Spark Core : 작업 스케줄링, 메모리 관리, 장애 복구, 저장 장치와의 연동 등 기본 기능들로 구성하며 RDD를 정의하는 API기반으로 주된 스파크 프로그래밍 추상화 구조

2. Spark SQL : 정형 데이터를 처리하기 위한 패키지

3. Spark Streaming : 실시간 데이터 스트림을 처리

4. Mllib : 다양한 머신 러닝 알고리즘 지원

5. Graph X : 그래프를 다루기 위한 라이브러리

6. Cluster Manager : 한 노드에서 수천 노드까지 효과적으로 성능을 확장 시키도록 함 (yarn, apache mesos )

 

또한 sparkstandalone 모드와 yarn cluster(client)모드가 있으며 테스트에서는 yarn cluster모드를 사용하였습니다.


yurn cluster 모드는 Spark driver가 application을 실행한 host에서 실행 됩니다. ApplicationManagerYARN resource manager에게 resource(executor containers)를 요청만 하며 container가 실행된 후 clientscheduling을 위해 그 container와 통신 합니다.



2. Spark 설치 및 설정



1. spark 설치 및 설정파일 수정

#su hadoop

$tar zxvf spark-2.1.2-bin-hadoop2.7.tgz

$ln -s spark-2.1.2-bin-hadoop2.7.tgz spark

$cd /home/hadoop/apps/spark/conf >> 이동하여 아래 파일 수정


log4j.properties

에러 메시지 출력 제어

(standlone & cluster 모드 모두 적용 가능)

 

2. spark 환경변수 설정


#vi /etc/profile

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

export JAVA_HOME=/usr/local/java

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.4

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

-----------------------------------------------------------------> 기존 JAVA와 하둡 환경설정 아래에 추가로 작성

export SPARK_HOME=/home/hadoop/apps/spark-2.1.2-bin-hadoop2.7

export PATH=$PATH:$SPARK_HOME/bin

 

#source /etc/profile

>> Spark 명령어를 쓸 수 있도록 설치된 경로 설정 적용

 

3. hadoop yarn과 연동

>> 1번과 같이 spark 설치 후 심볼릭 링크 설정을 하면 자동으로 yarn cluster로 연동되어 spark에서 작업을 아래와 같이 실행하면 하둡 yarn 클러스터에서 job을 노드들이 수행 & 관리 한다.

 

4. 확인

# jps

[hadoop1]                                                                             [hadoop3]

2256 ResourceManager                                                       9879 Jps

1913 NameNode                                                               1722 DataNode

14702 Jps                                                                        3856 NodeManager

14547 Master

16570 SparkSubmit


[hadoop2]

1921 DataNode

2771 NodeManager

4756 Jps

2443 SecondaryNameNode

 

>> 웹에서 확인


hadoop:4041 (active 서버)



hadoop1:8088 (active 서버)




여기까지 spark 설치 및 yarn과 연동 테스트 였습니다.



'Hadoop' 카테고리의 다른 글

Spark standlone 모드 설정  (0) 2018.12.18
Hadoop 구축 & YARN 구동  (0) 2018.12.12