본문 바로가기


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 소개 및 설치하기 


포스팅을 마치겠습니다.






엉망진창

개인 블로그 입니다. 코딩, 맛집, 정부정책, 서비스, ~방법 등 다양한 정보를 소개합니다