Apache Spark ( 아파치 스파크 )
2.2.0 소개 및 설치하기
아파치 스파크(Apache Spark)는
오픈 소스 클러스터 컴퓨팅 프레임워크이다. 원래 캘리포니아 대학교 버클리의 AMPLab에서 개발된 스파크의 코드베이스는 나중에 아파치 소프트웨어 재단에 기부되었으며 그 이후로 계속 유지 보수를 해오고 있다. 스파크는 암시적 데이터 병렬성과 장애 허용과 더불어 완전한 클러스터를 프로그래밍하기 위한 인터페이스를 제공한다.
우선 다운로드를 진행합시다.
https://spark.apache.org/downloads.html
들어가서 원하는 버전을 다운로드 합시다
지금 소개하고 있는 스파크는
2.2.0 버전 기준 설명입니다.
Install Spark
스파크를 다운받으셨다면
원하는 곳에 압축을 푸시면 됩니다.
그럼 설치는 끝
*에코들을 한곳에 모아주세요
Setup & Start Spark Cluster
스파크 Standalone 클러스터 구축은 간단합니다.
우선 Master 인스턴스를 띄우고
그 뒤에 Worker 인스턴스를 붙여주면 됩니다.
Setup Worker Configuration
우선 Master 인스턴스를 띄우기 위해서
SPARK_HOME/sbin/start-master.sh
을 실행하셔야 합니다.
*SPARK_HOME으로 경로를 환경변수 등록해줍시다.
스파크는 기본적으로 7077 포트를 사용합니다.
start-master.sh 를 실행하신 후 http://localhost:8080 에 접속하시면
Master 와 클러스터에 대한 구성 정보가 나옵니다.
Setup Worker Configuration
마스터가 있다면 워커(노동자)가 있습니다.
다음으로는 Worker 인스턴스 환경 설정을 하도록 합시다.
cd SPARK_HOME/conf
cp stark-env.sh template spark-env.sh
복사 된 spark-env.sh 파일을 아래와 같이 수정해 줍시다.
export SPARK_WORKER_INSTANCES=3
이 값을 Worker의 개수를 의미합니다. 변경해도 됩니다.
Start Worker
이제 워커의 환경 설정이 끝났습니다.
이제 시작해 봐야겠죠??
SPARK_HOME/sbin/start-slave.sh
을 실행해야합니다.
./start-slave.sh spark://hostname:7077 -m 256M -c 2
여기서 -m 은 사용할 메모리를 지정하고
-c 는 사용할 코어 개수를 지정합니다.
잘 진행이 되었다면 Workers 항목에 워커가 등록됩니다.
Test Spark
실행이 되었다면 이제 잘 동작하는지 확인해 봐야겠죠??
그럼 접속하기 위해서
SPARK_HOME/bin/spark-shell
을 이용합시다.
파이썬을 이용하시면 pyspark를 이용하시면 됩니다.
기본적으로 spark는 scala를 이용합니다.
./spark-shell --master spark://hostname:7077
접속합니다.
scala> val textFile = sc.textFile("README.md")
scala> textFile.count()
이처럼 README.md 파일을 만들어 아무거나 작성한 뒤 실행합니다.
Log4j Properties
마지막으로 Log4j 프로퍼티를 지정하셔야 합니다.
cd SPARK_HOME/conf
cp log4j.properties.template log4j.properties
를 하신 뒤 복사한 log4j.properties 의 내용을 변경합니다.
# Set everything to be logged to the console
log4j.rootCategory=INFO, console
log4j.appender.console=org.apache.log4j.FileAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd
HH:mm:ss} %p %c{1}: %m%n
log4j.appender.console.file=SPARK_HOME/your_log_file.log
# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark-project.jetty=WARN
log4j.logger.org.spark-
project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=IN
FO
각자의 설정값은 적절하게 변경해 줍시다.
그럼 끝났습니다.
스파크를 쉽게 사용해보려면 퀵클라우데라를 설치 후
환경변수를 설정하고
간단한 pyspark 소스코드를 짠 뒤
실행하는 것 입니다.
스파크 제출합니다.
성공
HUE 브라우저로 잘 들어갔나 확인 합니다.
잘 들어갔으면
확인합시다.
비정형을 정형으로 만들기
이상으로
Apache Spark ( 아파치 스파크 ) 2.2.0 Standalone 소개 및 설치하기
포스팅을 마치겠습니다.