우분투 환경에서 하둡 설치를 마쳤다.
그럼 이제 하둡 위에 스파크를 올려보고, jupyter notyebook 으로 열어보고, 아래 포스팅에서 올렸던 파일을 불러와서 간단한 pyspark 처리까지 해보도록 하겠다.
1. Apache Spark 설치
사이트 접속 후, 해당 링크로 들어가 아래 대로 따라준다.
#wget [복사한 URL]
wget https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tg
복사된 링크를 wget 과 함께 입력 후, 실행 시켜준다.
다운로드가 모두 완료되었으면, 압축을 풀어주면 된다.
tar xvzf spark-3.5.1-bin-hadoop3.tgz
알집을 다 풀었으면, 편한 사용을 위해 심볼릭 링크를 생성해주자
ln -s spark-3.5.1-bin-hadoop3 spark
*심볼릭 링크란 ?
- 링크를 연결해서, 원본 파일을 직접 사용하는 것과 같은 효과 (윈도우의 바로가기)
2. 환경변수 설정
설치가 완료되었으면, .bashrc 파일을 수정해 환경변수를 설정해준다.
vi ~/.bashrc
.bashrc를 들어가 아래 코드를 추가 후, esc -> :wq! 로 저장하고 나오면 된다. (경로는 본인에 맞게 수정 필요)
export SPARK_HOME="home/[유저명]/spark-3.5.1-bin-hadoop3"
export PATH=:$PATH:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:/home/[유저명]/spark/bin
변경한 환경변수를 적용하기 위해 , source 를 실행시켜준다.
source ~/.bashrc
3. SPARK 실행 확인
spark-shell
이제 우리 ubuntu 하둡 위에 spark 설치를 마쳤다. jupyter notebook으로 연결해서 pyspark를 쓰기 쉽게 해보고, 저번 포스팅에서 hadoop에 올렸던 파일까지 불러와서 어떤 프로세스로 동작하는지 대강 이해해보도록 하자.
4. JUPYTER NOTEBOOK에서 pyspark 활용
최종적으로는 로컬 jupyter를 사용하는 것이 아니라, 원격 서버의 juypter hub와 spark를 연결할 것이지만 이번 게시글에서는 가볍게 로컬 jupyter에 pyspark를 연결하는 것에서 끝내보려고 한다.
1.Jupyter Notebook 설치
sudo apt install python3-pip
pip3 install jupyter
#혹시 위 코드로 설치했는데 jupyter가 없다고 뜰 경우
#sudo apt install jupyter-core
2.pyspark 설치
pip3 install pyspark
3.pyspark 환경 설정
echo "export PYSPARK_PYTHON=python3" >> ~/.bashrc
source ~/.bashrc
4.Jupyter Notebook에 PySpark 연결
PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook" pyspark
이후 해당 서버에서 이부분을 둘중에 하나 token 부분까지 풀로 복사해서 붙혀넣으면 잘 접속되는 것을 확인할 수 있다.
5. HDFS에다가 올려뒀던 csv 불러오기
*하둡을 다시 켜준다
~/hadoop/sbin/start-all.sh
jupyter에서 path 입력 후 데이터 불러오기하면 끝!
이제 이 과정들을 좀 더 편하게 하기 위해 linux에 fuse를 이용해서 mount 하고, samba를 연동해 파일 이동을 자유롭게 해볼 것이다. 조금만 더 파이팅!
'스파크 Spark' 카테고리의 다른 글
[Spark] Pyspark 데이터 전처리 단골 코드 (Pyspark Method ver.) (0) | 2024.04.26 |
---|---|
[Spark] 원격 주피터 허브에서 로컬 Spark 세션 및 hdfs 불러오기 (0) | 2024.04.17 |
[Spark] Pyspark spark sql 사용하기 (0) | 2024.02.20 |
[Spark] Pyspark DataFrame Method 정리 (0) | 2024.02.20 |
[Spark] Apache Spark란? (0) | 2024.02.19 |
댓글