Apache Spark Cluster 구성
Tips 2021. 10. 10. 21:48아래의 블로그가 매우 유용하였다.
https://velog.io/@somnode/spark-cluster-install
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
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=syung1104&logNo=221064685156
'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 |