Azure, AWS, GCP 클라우드 활용 Tip과 강좌 게시판

이곳은 개발자를 위한 Azure, AWS, GCP등 클라우드 활용 Tip과 강좌 게시판 입니다. 클라우드 환경을 개발하면서 알아내신 Tip이나 강좌, 새로운 소식을 적어 주시면 다른 클라우드를 공부하는 개발자 분들에게 큰 도움이 됩니다. 감사합니다. SQLER.com은 개발자와 IT전문가의 지식 나눔을 실천하기 위해 노력하고 있습니다.

최근 DatabricksSynapse Spark 을 다루면서, 계속 Spark을 할 일이 생겨 잠시 Ubuntu에서 설치 후 개발 테스트.

사실 워낙 가격도 비싸고 깜빡 실수하면 요금 폭탄 맞을 수도 있어서 작은 개발용 Virtual Machine에서 실행.

이번 포스팅의 코드는 CloudBreadPaPa/pyspark-koalas: pyspark and koalas dev test repo (github.com) 에서 확인 가능.

 

Spark, pyspark 설치 후 jupyter notebook 실행 - Ubuntu20

설치 과정은 bash script로만 실행. VM에서 설치했지만, WSL에서도 잘 동작할 것으로 예상됨.

WSL 참조 : 개발자 커뮤니티 SQLER.com - 클라우드 오픈소스 개발환경 - WSL

 

Spark 설치 스크립트

Ubuntu update & upgrade

sudo apt update && sudo apt upgrade -y

 

Java 설치

sudo apt install default-jdk

# 설치 테스트
java -version

 

Apache Spark 다운로드 & 설치

# Spark 다운로드
wget https://www.apache.org/dyn/closer.lua/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz

# 압축 풀고 옮기기
tar xvzf spark-3.0.1-bin-hadoop2.7.tgz
sudo mv spark-3.0.1-bin-hadoop2.7/ /opt/spark

 

.bashrc 파일 맨 마지막에 environment variable 추가

sudo nano ~/.bashrc

 

추가할 내용

export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

 

bash 설정 재실행

source ~/.bashrc

 

Spark master 서버 시작

start-master.sh

 

내 경우, 원격지의 Azure VM에서 실행했기 때문에 NSG(Network Security Group)에서 8080 port를 열어주고, FQDN추가해 DNS 생성 - WSL은 문제없겠으나, 다른 보안 구성된 클라우드 등의 Ubuntu에서 하실 경우 적절한 방법으로 접근 처리 해야함.

참고링크 : 

Open ports to a VM using the Azure portal - Azure Virtual Machines | Microsoft Docs

Create FQDN for a VM in the Azure portal - Azure Virtual Machines | Microsoft Docs

 

생성된 DNS의 8080 Web UI로 접속

http://<YOUR-VM-NAME>.southeastasia.cloudapp.azure.com:8080/

접속하면 Spark Web UI 화면 확인 가능.

 

spark01.png

 

 

위의 spark master를 확인하고, 다음 명령을 수행해 spark slave를 생성

start-slave.sh -c 1 spark://<YOUR-SPARK-MASTER>:7077

 

Slaver와 master를 중지하려면 각각 아래 명령 수행

stop-slave.sh
stop-master.sh

 

Pyspark 설치 - conda 또는 pip

다음으로 수행할 부분은 conda를 이용해 Pyspark 설치하는 과정이다.

# conda를 이용해 설치
conda install -c conda-forge pyspark

# pip 설치
pip install pyspark

개인적으로는 conda를 이용해 설치했다.

 

Jupyter notebook 설치 및 pyspark 테스트

conda 환경에서 Jupyter를 설치하고 실행.

conda install jupyter

# jupyter notebook실행
jupyter notebook --ip=0.0.0.0 --port=8888

WSL 등의 환경이면 그냥 "jupyter notebook" 명령만 실행해도 가능하다.

내 경우는 Azure VM에서 notebook을 실행했고, localhost가 아닌 원격이라 VM에서 8888 port를 열어주고 위의 명령으로 실행. 생성된 URL을 복사해, VM의 FQDN으로 URL을 변경하고 실행해 접속했다.

 

pysql 노트북 테스트

간단한 pyspark 코드를 이용해 spark context를 가져와 테스트한다.

from pyspark import SparkContext
sc = SparkContext()

nums= sc.parallelize([1,2,3,4])
nums.take(1)

실행히면 spark context를 이용해 list에서 1개의 value를 잘 가져오는 것을 확인 가능하다.

 

이렇게 오래간만에(?) spark을 구성하고 생성했다. 버전관련해 이슈가 있었지만, 위의 과정으로 잘 처리되었다. 

결론은, 역시 Databricks나 Synapse spark을 쓰자.

 

다음으로는 Apache Spark에서 pandas API를 제공하는 koalas와 Machine Learning - 분산 트레이닝 등의 과정을 리뷰 예정.

 

참고링크: 

CloudBreadPaPa/pyspark-koalas: pyspark and koalas dev test repo (github.com)

How To Install Apache Spark On Ubuntu 20.04 - Linux (osradar.com)

우분투 20.04에서 Apache Spark 설치 (tistory.com)

Installing Apache Spark on Ubuntu 20.04 or 18.04 - Linux Shout (how2shout.com)

How to Install Spark on Ubuntu {Instructional guide} (phoenixnap.com)

Koalas: pandas API on Apache Spark — Koalas 1.8.1 documentation

 

No. Subject Author Date Views
340 Azure Event hubs - Apache Avro 데이터 처리 newfile 코난(김대우) 2021.10.28 4
339 Azure Data Explorer - SELECT INTO(CTAS) 또는 INSERT SELECT 쿼리 수행 코난(김대우) 2021.10.26 6
338 Azure Data Explorer에서 Trigger 기능 구현 - update policy file 코난(김대우) 2021.10.22 11
337 vscode에서 일관된 팀 단위 개발 환경 구성 - devcontainer file 코난(김대우) 2021.10.19 17
336 Bicep - Azure 클라우드 리소스 배포를 위한 언어 file 코난(김대우) 2021.10.19 15
335 Azure Data Explorer - Event Hub 스트리밍 ingest 중 컬럼추가 file 코난(김대우) 2021.10.18 12
334 SonarQube 리뷰 및 Azure DevOps 연결 file 코난(김대우) 2021.10.01 19
333 PySpark, koalas와 pandas dataframe file 코난(김대우) 2021.09.29 27
» Apache Spark, pyspark 설치 후 jupyter notebook 실행 file 코난(김대우) 2021.09.29 17
331 Azure Data Explorer의 데이터를 Python Pandas Dataframe과 CSV로 변환 코난(김대우) 2021.09.28 24
330 Azure Blob Storage SAS token 생성 코난(김대우) 2021.09.17 34
329 Azure Data Factory를 이용해 ADX에서 SQL로 900만건의 데이터 전송 file 코난(김대우) 2021.09.16 47
328 Azure Data Explorer에서 SQL서버 데이터베이스 테이블 조회/삽입 - sql_request plugin file 코난(김대우) 2021.09.16 29
327 Azure Data Explorer에 대량 CSV 파일 ingest 코난(김대우) 2021.09.15 31
326 Azure Event Hubs의 데이터를 Azure Data Explorer로 전송 file 코난(김대우) 2021.09.15 32
325 Azure Event Hubs로 kafka message 전송 처리 file 코난(김대우) 2021.09.15 29
324 Service Principal과 Azure 리소스 접근/사용을 위한 인증 방법 3+1가지 file 코난(김대우) 2020.12.26 263
323 Azure storage 관리 도구 - storage explorer 설치와 사용 방법 코난(김대우) 2020.12.25 203
322 Azure cli - command line interface 명령줄 인터페이스 도구를 쓰는 이유와 방법 코난(김대우) 2020.12.25 195
321 클라우드 오픈소스 개발환경 - WSL [1] file 코난(김대우) 2020.12.20 408





XE Login