강좌
클라우드/리눅스에 관한 강좌입니다.
클라우드 분류

[KT클라우드]Big Data > Data Lake 노트북 App

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

노트북을 통해 빅데이터 분석용 코드를 작성합니다.”라는 말을 들었을때 많은 사람들이 헷갈려하곤 합니다.
여기서 노트북은 우리가 사용하는 하드웨어를 뜻하기도 하지만 최근 몇년간 빅데이터 개발 환경의 큰 흐름으로 자리 잡은 웹 UI 기반의 개발 환경을 의미하기도 합니다.
물론 이 장에서 설명할 “노트북”은 원격지의 컴퓨팅 자원에 작업을 명령하고 수행 결과를 확인하면서 빅데이터 분석 작업을 수행하는 App을 의미합니다.
따라서, 노트북은 빅데이터 처리의 비즈니스 규칙을 담고 있습니다.
하나의 노트북은 여러개의 파라그래프로 구성되어 있으며, 각 파라그래프는 논리적으로 연결관계를 가지고 있습니다.
각 언어의 특성별로, SQL을 사용하는 경우 하나의 파라그래프안에 오직 하나의 SQL 문만 사용할 수 있습니다.
반면에 Scala나 Python 언어를 사용하는 파라그래프의 경우 하나의 파라그래프 안에 많은 양의 데이터 변환 과정이나 함수를 정의할 수도 있습니다.
NexR Enterprise기반의 Data Lake 서비스는 빅데이터 처리와 데이터 웨어하우스 구축 뿐만 아니라 머신러닝 모델을 개발하기위해 Scala, Python등의 언어 지원을 추가하면서 SQL도 사용할 수 있는 환경을 제공하기 위해 노트북 App을 가지고 있습니다.
따라서 다음과 같은 처리가 가능해집니다.
  • 지원하는 언어를 통해 원천 데이터를 기반으로 데이터 웨어하우스 구축하기
  • 수집된 데이터를 기반으로 Tensorflow, Keras, PyTorch등의 ML 프레임워크 활용하기
  • 하나의 노트북에서 SQL, Scala, python을 이용할 수 있는 자유로운 코딩 환경제공
  • 필요한 라이브러리를 바인딩해 수행하는 고급 데이터 처리
  • 웨어하우스 구축부터 머신러닝 모델 활용까지 하나의 노트에 담을 수 있는 환경
그리고. 사용자가 작성한 노트북의 내용은 자체적으로도 의미를 가지지만 워크플로우 App 를 통해 여러 노트북을 연결하고 스케줄러 App 를 통해 주기적 실행 규칙을 정의하면 엔터프라이즈 환경에 필요한 데이터를 반복적으로 생산해내고, 머신러닝 모델을 고도화하는 과정을 자동화 할 수 있습니다.
이제부터 이 솔루션의 노트북이 제공하는 기능에 대해 알아봅니다.
이 기능을 사용하기전에 사용자는 먼저 어떤 데이터를 어떤 방식으로 변환해 목적 데이터를 만들어낼지에 대한 설계를 마치는 것이 좋습니다.
하지만, 노트북을 가볍게 사용하면서 이런 규칙을 발견해내는 것도 가능하므로 이 App이 빅데이터 처리/분석 업무를 시작하는 좋은 도구가 될것입니다.
현재 노트북이 지원하는 모드는 다음과 같습니다.
  • SQL : SparkSQL을 이용해 SQL문을 정의할 수 있으며 SELECT 문의 경우 그 결과를 그래프로 확인해 볼 수 있습니다.
  • Scala : Spark code를 작성하는데 Scala 언어를 사용할 수 있으며 Maven 저장소에 있는 각종 라이브러리를 활용할 수 있습니다.
  • python(pyspark) : pySpark 기반의 코드를 작성할 수 있습니다. 다만, 추가 라이브러리를 사용하는 경우 인터프리터를 재시작할 때 다시 설치하는 과정을 거쳐야 하는 제약이 있습니다.
※ 노트북 사용자는 스파크 공식 홈페이지에 나와있는 예제나 시중에 나와있는 스파크 관련 서적의 예제를 참고하는 것이 좋습니다.
아래 기능 설명에 나와있는 예제는 아주 기본적인 동작 방식만을 설명하므로 실제 사용예와는 차이가 있으니 이점 참고하시기 바랍니다.
포함된 python 라이브러리 목록
기본 제공되는 pyspark는 python3를 기준으로 동작하며 다음 라이브러리를 기본 탑재 하고 있습니다.
노트북의 Python 환경에서 SparkSession을 사용하지 않고 python 코드를 작성하면 단일 노드에서 동작하는 python 프로그램을 작성할 수 있습니다.
※ 여기서 드라이버는 전체 빅데이터 처리 과정을 명령하는 프로세스를 의미하고 익스큐터는 실제 연산을 처리하는 프로세스를 의미합니다.
라이브러리버전
cycler0.10.0
kiwisolver1.1.0
koalas0.22.0
matplotlib3.1.2
numpy1.17.4
pandas0.25.3
pyarrow0.15.1
pyparsing2.4.5
python-dateutil2.8.1
pytz2019.3
statsmodels0.10.2
scipy1.4.0
scikit-learn0.22
xgboost0.90
torch1.3.1
tensorflow1.2.1
theano1.0.4
keras2.0.5
seaborn0.9.0
bokeh1.4.0
python 프로그래밍시 사전 제공하지 않는 라이브러리를 포함시키고자 한다면 원하는 python 패키지를 공용 HDFS등에 업로드 한 후 interpreter 설정에서 spark.submit.pyFiles 속성에 해당 경로를 추가해주시기 바랍니다.
인터프리터를 재시작 후 해당 라이브러리를 사용할 수 있습니다.
  • ※ NexR Enterprise 기반의 Data Lake 서비스는 pypi 저장소를 구성하는데도 사용할 수 있는 Nexus 시스템을 가지고 있습니다.
  • 만약 폐쇄망 환경에 솔루션을 설치해야 하는 경우라면 사내에 있는 pypi, nexus 저장소를 외부와 연동하고 Data Lake 내의 Nexus가 내부망 저장소를 프록시 하게 설정할 수 있습니다.
신규 노트 생성
이 솔루션은 사용자에게 노트북 기능을 제공하기위해 한명의 사용자당 하나의 노트북 엔진을 부여합니다.
한명의 사용자는 하나의 노트북 실행 엔진을 통해 SQL, Scala, Python 언어를 활용해 빅데이터 처리와 분석에 필요한 코드를 정의할 수 있습니다.
대부분의 경우, 비교적 정형화된 데이터 변환 흐름을 정의하고자 하는 경우 SQL을 사용하고 복잡한 파싱 규칙의 적용이나 추가 라이브러리의 사용이 필요한 경우(대부분, ML 관련 개발 혹은 비정형 데이터 파서 작성)에는 Scala나 Python을 통해 사용하는 것이 좋습니다.
언제 어떤 언어를 사용할지는 사용하는 환경과 요건에 따라 결정됩니다.
빅데이터 처리 흐름을 결정했다면 노트를 생성해야 합니다. 노트를 생성하는 방법에는 세가지가 있습니다.
프로젝트 브라우저에서(+아이템 생성) 버튼 클릭
프로젝트 브라우저는 여러가지 App의 링크를 만드는 기능을 제공합니다.
새로운 노트북을 만들고 싶은 사용자는 프로젝트 브라우저 App 장에 있는 디렉터리 및 App 링크 신규 생성 절의 설명을 따라서 새로운 노트를 생성할 수 있습니다.
상단 bar의 퀵링크에 있는 노트북 아이콘 클릭
이 솔루션의 모든 App은 상단에 퀵메뉴 아이콘을 가지고 있습니다.
상단 bar의 우측 퀵 링크를 클릭하면 새탭에 신규 노트북 화면이 열리면서 자동으로 새로운 노트북이 생성됩니다.
워크플로우에서 신규 노트 추가하기 기능 사용
워크플로우에서 노드를 추가할 때 노트북 유형을 배치하는 옵션에는 신규 생성 과 가져 오기 두 가지가 있습니다.
이중 신규 생성 버튼을 클릭하면 화면에 표시되지 않지만 자동으로 새로운 노트가 생성됩니다.
노트의 내용을 확인하고 싶은 경우 워크플로우의 해당 노트 노드를 더블 클릭하면 됩니다.
  • 위에 설명한 세가지 방법은 모두 동일한 결과를 만들어 냅니다.
  • 새롭게 생성된 노트북은 기본 노트 이름으로 “Notebook_3363501385” 와 같은 기본값을 가지고 있습니다.
  • 따라서, 사용자는 원하는 시점에 노트의 이름을 지정해 저장할 수 있습니다.
  • 노트 이름을 변경하려면 아이콘 우측에 표시된 노트 이름을 클릭해 변경할 수 있습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,807 개
  • 현재 접속자 :  178 명