티스토리 뷰

Tips

Apache Spark Cluster 구성

kkennib 2021. 10. 10. 21:48
반응형

아래의 블로그가 매우 유용하였다.

https://velog.io/@somnode/spark-cluster-install

 

[spark] Spark 3 클러스터 설치

두 개의 컴퓨터를 사용하여 hadoop 클러스터 위에서 돌아가는 spark 클러스터를 설치한다.각각 master, worker1라고 한다.이미 hadoop cluster가 구축되어있다는 가정 하에 진행한다.\[hadoop] Cluster 설치 참고

velog.io

 

Hadoop Cluster 위에서 동작하는 Spark를 설치하는 것이므로 먼저 Hadoop Cluster를 설치해야 한다.

이 글을 참고하여 먼저 Hadoop Cluster를 구성해주자.

Spark를 설치한 환경은 1개의 Master, 2개의 Slave의 총 3개의 서버로 구성하였다.

아래의 정리한 메모에 따라 Master와 Slave의 모든 서버에 Spark를 설치해주자.

맨 앞에 $이 있는 것은 cmd 명령이다.

Ubuntu LTS 20.04, Docker 환경에서 Spark는 3.1.2, Hadoop은 3.2.2 버전을 설치하였다.

 

INSTALL SPARK

Spark의 설치는 Master와 Slave 모든 서버에서 동일하게 수행해야 한다.

\$ sudo su root

\$ wget https://dlcdn.apache.org/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz

\$ tar -xzvf spark-3.1.2-bin-hadoop3.2.tgz

\$ mv spark-3.1.2-bin-hadoop3.2 /usr/local/spark

\$ vim ~/.bashrc

SPARK_HOME=/usr/local/spark
export PATH=\$PATH:\$SPARK_HOME/bin:\$SPARK_HOME/sbin 

\$ source ~/.bashrc

 

\$ vim \$SPARK_HOME/conf/slaves

slave1
slave2
slave3

 

\$ vim \$SPARK_HOME/conf/spark-env.sh

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export SPARK_MASTER_HOST=master
export HADOOP_HOME=/usr/local/hadoop
export YARN_CONF_DIR=\$HADOOP_HOME/etc/hadoop
export HADOOP_CONF_DIR=\$HADOOP_HOME/etc/hadoop

 

START SPARK

Spark의 시작은 Master 서버에서만 수행하면 된다.

start-all.sh는 hadoop이랑 같으니 실행할 때 조심하자.

\$ \$SPARK_HOME/sbin/start-all.sh

\$ \$SPARK_HOME/sbin/start-history-server.sh

 

STOP SPARK

Spark의 중지는 Master 서버에서만 수행하면 된다.

\$ \$SPARK_HOME/sbin/stop-all.sh

\$ \$SPARK_HOME/sbin/stop-history-server.sh

\$ rm -rf \$SPARK_HOME/evevntLog/*

 

SPARK Web UI

Spark Context

http://172.17.0.2:4040 (Spark 실행 중일 때만 접근 가능)

 

Spark Master

http://172.17.0.2:8080

 

Spark Worker

http://master:8081, http://worker1:8081

 

Spark History Server

http://172.17.0.2:18080

 

 

Pyspark, Anaconda, Jupyter 환경 설정

Pyspark, Anaconda, Jupyter를 설치한다면 데이터 분석에 강력한 환경을 구성할 수 있다.

Python으로 머신러닝이나 EDA를 조금만 해본 사람들이라면 충분히 공감할 것이다.

Python 라이브러리를 이용한다면 상당한 수준의 시각화까지 가능하기 때문에 가능하다면 이것들을 꼭 구축해주자.

 

\$ wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

\$ bash Anaconda3-2021.05-Linux-x86_64.sh

\$ vim ~/.bashrc

export CONDA_HOME=/root/anaconda3
export PATH=$PATH:$CONDA_HOME/bin:$CONDA_HOME/condabin
export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook --allow-root'

\$ source ~/.bashrc

--allow-root는 Linux의 root 계정으로 접근하려고 할 때 필요하다.

보안 상 root로 해선 안 되지만, 어차피 프로토타입과 테스트용도이기 때문에 보안은 고려하지 않았다.

\$ conda config --set auto_activate_base False

 

Juptyer 설치와 외부 접속 설정

\$ pip install jupyter

\$ jupyter notebook --generate-config

\$ vim /root/.jupyter/jupyter_notebook_config.py

c.NotebookApp.notebook_dir = '/data'
c.NotebookApp.open_browser = False
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$sL7D/JnuIIgzWZqnu/ZISg$ps3ZEFmrD5Q/mKmI0dFWpQ'
c.NotebookApp.port = 8888
c.NotebookApp.ip = '172.17.0.2'
c.NotebookApp.allow_origin = '*'

 

보라색 비밀번호 생성

\$ python   (파이썬 프롬프트 접근)

from notebook.auth import passwd
passwd()

출력되는 문자열을 복사하여 c.NotebookApp.password의 값으로 붙여넣자.

 

Pyspark 실행

\$ \$SPARK_HOME/bin/pyspark

실행하면 Jupyter Notebook이 뜬다.

 

 

참고 블로그

https://surpassing.tistory.com/824

 

Jupyter 외부 접속 설정

Jupyter 외부 접속 설정 jupyter 설치 pip 실행 환경을 구성합니다. (Anaconda, MiniConda, Python 중 하나를 설치합니다.) 이 후 jupyter 를 설치합니다. pip install jupyter 설정 파일 생성 jupyter notebook -..

surpassing.tistory.com

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=syung1104&logNo=221064685156 

 

[Spark] Apache Spark 사용해보기 - 0. 사전작업

● 사전작업 ※ python과 jdk를 설치하는 작업으로서, 이미 설치 되어있다면 바로 'Apache Spark 사용해...

blog.naver.com

 

https://ieworld.tistory.com/12

 

[우분투/Ubuntu 20.04] 우분투에 아나콘다 설치 / Install Anaconda on Ubuntu

파이썬 IDLE는 설치했지만 이것만 쓸 수는 없기에 대부분의 파이썬 유저들이 사용하는 아나콘다라는 툴을 설치하자 먼저 아나콘다 공식 홈페이지에 들어가서 Individual Edition을 다운받아준다 - www.

ieworld.tistory.com

반응형

'Tips' 카테고리의 다른 글

Apache Flume 설치  (1) 2021.10.18
Apache Hadoop Cluster 구성  (1) 2021.10.10
Hadoop의 standalone 설치 방법  (0) 2021.10.08
Python의 가독성과 OOP에 대한 개인적인 견해  (0) 2021.09.29
스킨 추천  (0) 2021.05.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함