🌱 Infra/Hadoop_HDFS

Hadoop HDFS(3.3)+Spark(3.1.1) + JupyterNotebook 무작정 따라하기 #3

mini_world 2021. 4. 27. 22:13
목차 접기

이 포스팅은 이전 포스팅과 이어집니다. 😘

Hadoop HDFS(3.3)+Spark(3.1.1)! 무작정 따라하기 #2

 

Hadoop HDFS(3.3)+Spark(3.1.1)! 무작정 따라하기 #2

이 포스팅은 이전 포스팅과 이어집니다. 이전 포스팅에서 EC2 한대를 생성하여 그 인스턴스에 필요한 소프트웨어를 모두 설치하고, 환경변수와 설정파일을 수정했습니다. 그리고 그 인스턴스를

1mini2.tistory.com

 


이전 포스팅 #1 ~ #2에서 모든 인프라 구축이 완료 되었습니다.
이제 4대의 인스턴스에 HDFS, YARN, Spark 클러스터가 운영중입니다. 🎉🎉🎉🎉

이번 단계에JupyterNotebook을 설치하고 실행해보도록 하겠습니다.😘
하지만 그 전에! 모든 서비스가 정상인지 확인해봅시다!!

인프라 구성이 완료된 시점인 지금!!
지금부터는 모든 명령어수행은 Master노드에서만 진행합니다.

 


1. HDFS 서비스 확인하기

더보기

HDFS 서비스는 CLI 혹은 웹콘솔을 통해 상태를 확인할 수 있습니다. 

[ HDFS CLI ]

[root@master ~]# /usr/local/hadoop-3.3.0/bin/hdfs dfsadmin -report

 

[ HDFS WEB UI ]
- http://<master node IP>:9870

 


2. Yarn 서비스 확인하기

더보기

YARN 서비스도  CLI 혹은 웹콘솔을 통해 상태를 확인할 수 있습니다. 

[ YARN CLI ]

[root@master ~]# /usr/local/hadoop-3.3.0/bin/yarn node -list

 

[ YARN WEB UI ]
- http://<master node IP>:8088

 


3. Spark 서비스 확인하기

더보기

Spark의 서비스는 WEB UI에서 확인합니다!! 

[ Spark WEB UI ]
- http://<master node IP>:8080

 


4. Python 3 & Conda (jupyterNotebook) & findspark 설치하기

더보기

1) Python 3 설치

저는 Amazon Linux2 OS를 사용하고 있습니다.
여기에는 이미 Python 3 최신버전이 설치되어 있습니다.
만약, 설치되어있지 않다면, "yum install python3 -y" 명령어로 python 3를 설치해주세요.

python3 설치 버전을 확인해봅니다.

[root@master ~]# python3 --version

 

2) JupyterNotebook 설치

miniconda(설치 링크)로도 설치가 가능하지만, 저는 가장 간편한 방법인 pip을 통해 jupyter를 설치하겠습니다. 

[root@master ~]# pip3 install jupyter

벌써 설치가 완료 되었습니다.
아래 명령어를 실행하여 프로세스가 실행된다면 다음으로 넘어갑니다!!! 

[root@master ~]# jupyter notebook --allow-root

 

3) findSpark 설치

findspark란? SparkContext (Spark Cluster endpoint) 를 findSpark 패키지로 쉽게 찾을 수 있습니다. 만약 이 라이브러리를 사용하지 않는다면 Jypyter에서 Spark용도의 프로필을 별도로 사용해서 사용합니다.

[root@master ec2-user]# pip3 install findspark

 


5. Jupyter Notebook 실행하기

더보기

Jupyter Notebook 실행 전 설정파일을 수정해줍니다!
먼저, 설정파일을 생성합니다.

[root@master ~]# jupyter notebook --generate-config

그리고 Password를 생성합니다.

[root@master ~]# ipython

Python 3.7.9 (default, Feb 18 2021, 03:10:35)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.22.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from notebook.auth import passwd   
In [2]: passwd()
Enter password:  // 사용할 비민번호 입력
Verify password:
Out[2]: 'argon2:$argon2id$v=19$m=10240,t=1 ... '  //복사해놓기!
In [3]: exit()

그리고 Jupyter Notebook의 홈디렉터리를 만들어줍니다.

[root@master ~]# mkdir /root/jupyter_dir

이제 설정파일을 수정합니다.

[root@master ~]# vim /root/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.password ='argon2:$argon2id$v=19$m=10240,t=10,p=8$t+Ki3Y…’
c.NotebookApp.notebook_dir = '/root/jupyter_dir/

자~! 이제 실행해봅시다!!!!

[root@master ~]# jupyter notebook --allow-root

웹브라우저에서 실행하면 이렇게 보입니다.!! 
비밀번호를 치고 로그인해봅니다.

아무것도 없죠!!! 
한번 findspark 써봅시다!!

그냥 어플리케이션을 생성하는것 까지 입니다!!

import findspark
findspark.init('/usr/local/spark-3.1.1-bin-hadoop3.2/')
import pyspark
sc = pyspark.SparkContext(master='spark://master:7077', appName='myFirstApp')
sc

이 코드를 실행하면, Spark Application이 실행됩니다. 
웹 UI에서도 어플리케이션이 실행되는것을 확인할 수 있습니다.

 

 

🖐🖐🖐여기서 잠깐!🖐🖐🖐

제가 작성한 이 포스팅에서, spark를 따로 띄우는데, 이렇게 되면 standalone mode 라고 합니다 🥲
포스팅한지 1년이 지났지만, 이제야 이 사실을 알았네요...

제 포스팅을 보고 따라하셨던 분들 이 부분을 참고해주세요 🥲
다음에 더 공부해서 좋은 내용으로 포스팅하도록 하겠습니다.

cattt님 정말 감사합니다.💙

 


출처: spark.apache.org/docs/latest/running-on-yarn.html

 

728x90