본문 바로가기
etc/Spark

VirtualBox에서 Spark Clustering 구성하기 - (3) Test Clustering!

by 돈코츠라멘 2019. 8. 30.

2019/08/30 - [Dev/Spark] - VirtualBox에서 Spark Clustering 구성하기 - (1) Configuration guest OS Network

 

VirtualBox에서 Spark Clustering 구성하기 - (1) Configuration guest OS Network

장비가 넉넉하지 못하여 VirtualBox에서 Spark Clustering을 구성하여 테스트를 진행하게 되었다. 다른 분들이 올려주신 예제들은 모두 큰 도움은 되었지만 딱 Spark 관련 설정들만 설명해주셔서 나처럼

deep-dive-dev.tistory.com

2019/08/30 - [Dev/Spark] - VirtualBox에서 Spark Clustering 구성하기 - (2) Install & port configuration

 

VirtualBox에서 Spark Clustering 구성하기 - (2) Install & port configuration

2019/08/30 - [Dev/Spark] - VirtualBox에서 Spark Clustering 구성하기 - (1) Configuration guest OS Network Install & port configuration Install anaconda3 wget https://repo.anaconda.com/archive/Anacond..

deep-dive-dev.tistory.com


Test Clustering!


in master node

추가 설정

  • conf 설정: spark/conf/spark-defaults.conf에서 spark.driver.port, spark.blockManager.port를 지정한다. 위 포트들은 별도로 지정하지 않으면 랜덤 값을 사용한다. 따라서 포트 포워딩을 할 필요 없이 네트워크가 팡팡 뚫린 상태라면 지정할 필요가 없지만, virtualbox로 테스트하는 경우에는 값을 지정하고 포트 포워딩에도 추가해줘야 한다.

Spark master 실행

  • spark/sbin/start-master.sh 명령으로 실행한다.
  • master가 정상적으로 실행되면 spark master web에 접속할 수 있다.
  • http://[host]:8080/ (host에는 master node의 host ip)

Livy server 실행

  • livy-0.5.0-incubating-bin/bin/livy-server start 명령으로 실행한다.
  • 정상적으로 실행되면 웹으로 접속 가능하다.
  • http://[host]:8998/ui (host에는 master node의 host ip)

Spark slave 실행

  • master node에서 slave를 띄우지 않을 거면 이 과정은 생략하고 바로 worker node로 넘어가면 된다.
  • spark/sbin/start-slave.sh spark://master-VirtualBox:7077 명령으로 실행한다.
  • spark master web에서 slave가 정상적으로 실행됐는지 모니터링 할 수 있다.


in worker node

추가 설정

  • master node가 slave로 task를 보낼 때 위와 같이 slave의 host를 지정해서 보낸다. 가상 환경에서 특별히 설정한게 없으면 ip가 10.0.2.15로 모두 같으므로 slave를 실행할 때 host ip를 입력하여 실행하는 것이 좋다.
  • 매번 host ip를 입력하는 것이 번거롭다면 spark/conf/spark-env.sh에서 SPARK_LOCAL_IP 변수 값을 수정하면 된다.

Spark slave 실행

  • spark/sbin/start-slave.sh spark://master-VirtualBox:7077 명령으로 실행한다.
  • spark/conf/spark-env.sh에서 SPARK_LOCAL_IP를 지정하지 않은 경우 spark/sbin/start-slave.sh spark://master-VirtualBox:7077 -h [slavehost] 명령으로 실행한다.


Test!


테스트를 위해 jupyter lab에서 spark notebook을 생성한 후 샘플 코드를 실행했다. jupyter에서 실행시킨 명령은 Livy web console에서 모니터링할 수 있다. 참고로 magic을 사용하는 경우 %%spark를 통해 생성한 SparkContext에서만 %%sql로 결과를 가지고 올 수 있었다.

 

VirtualBox에서 Spark Clustering 구성하기

-끗-

댓글