ML 분석 : Zeppelin/PySpark 구성 및 배포

by Velucid June 09, 2021

Topics

OCI OKE(Oracle Kubernetes Engine) 따라하기


내용 설명

Docker에 Zeppelin과 Pyspark 환경을 구성하고 이를 OCI OKE Cluster에 배포하는 과정을 보여드립니다.

OCI Registry에 Docker Image를 등록하기 때문에, OCI Registry: Container Image 등록 및 안전한 배포 과정의 Docker Login과 K8S secret 생성을 사전에 완료해야 합니다.

1) Zeppelin/Pyspark Docker Image 생성

Docker Image의 구성 목표는 Zeppelin UI를 기반으로 %pyspark 인터페이스를 사용하여 Spark-PySpark와 연동하고 ML 분석을 수행하는 것입니다.

Apache/Zeppelin 최신 릴리즈인 0.9.0은 Kubernetes Cluster 구성 환경이 너무 복잡하고 구성이 어려워서, 바로 이전 버전인 0.8.2를 사용하여 구성하였습니다.

본 예제에서 사용된 제품들의 버전은 다음과 같습니다.

1.1) Docker 이미지 기본 구성

Docker가 설치된 Bastion Server에서 수행합니다.

1.2) Ubuntu Continer 접속 및 기본 환경 구성

Ubuntu OS에 Zeppelin과 Saprk-Pyspark 설치를 위한 기본 환경을 구성합니다.

software-properties-common 설치 도중, 혹시(?) 지역/타임존 입력을 요구하면 ASIA/Seoul로 설정

  • Geographic area (ASIA) : 6
  • Time zone(Seoul): 69

add-apt-repository 수행 로그에, 다음과 같이 deadsnales에 404 오류가 발생하면, Python3.7 설치가 불가능하므로, Ubuntu Image를 다른 버전으로 재수행해야 합니다. (저의 경우, 20.10에서 발생함)

1.3) Zeppelin/Pyspark 설치 및 환경 구성

Ubuntu OS에 Zeppelin과 Pyspark 설치하는 과정을 보여드립니다. 설치 스크립트(install-zeppelin-pyspark-on-ubuntu.sh)는 Github에 업로드 되어 있으며, 이를 직접 다운 받아 설치 합니다.

참고: install-zeppelin-pyspark-on-ubuntu.sh의 내용

1.4) Apache/Zeppelin Notebook 접속 테스트

Zeppelin Home

1.5) Docker Image Commit

Docker Container의 변경된 내용을 commit하여 신규 이미지로 생성합니다.

2) Zeppling/Pyspark Docker 이미지를 OCIR로 등록

Zeppling/PySpark 이미지를 OCI Repository에 등록하는 과정을 보여드립니다.

2.1) OCI Repository 생성

OCI Console을 통해 "zeppelin"라는 이름으로 OCI Repository를 생성합니다.

OCI Registry

Create Repository

2.2) OCI Repository로 Zeppelin 이미지 업로드

Zeppelin 이미지를 OCI Repository로 업로드합니다. (수행 위치 : bastion server as opc)

스크립트 내의 <tenancy> 는 현재 실습을 수행하고 있는 OCI tenancy 이름으로 변경해야 합니다.

OCIR image name 규칙: <region>.ocir.io/<namespace>/<image name>/<tag>

  • <namespace> = <tenancy name>
  • <image name> = <ocir repository name>

3) OCI OKE로 Zeppelin/PySpark 배포 및 수행

OCI Repository에 업로드된 Zeppelin 이미지를 OCI OKE Cluster로 배포합니다.

3.1) Zeppelin/PySpark 배포

3.2) Zeppelin용 Load Balancer Service 생성

Zeppelin을 외부 인터넷으로 접속하기 위한 Load Balancer Service를 생성 합니다.

3.3) 적립 카드 발급 대상 분석 예제 Import

Zeppelin/Pyspark를 이용하여 "적립 카드 발급 대상 분석" 예제를 Import 합니다.

Zeppelin Home

Import

Import

Import

Import

Import

 

Zeppelin 이미지로의 직접 접속 방법