- 인쇄
- PDF
Notebooks 사용
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
Cloud Hadoop 노트북은 데이터 분석에 필요한 쿼리와 코드를 실행할 수 있도록 서버리스 형태의 Jupyter Notebook을 제공합니다.
Notebooks 콘솔에서 노트북 노드를 생성하고 삭제할 수 있습니다.
생성된 노트북 노드의 JupyterLab과 Jupyter Notebook 웹 페이지로 접속하여 데이터 분석 작업을 진행할 수 있습니다.
노트북에서 사용한 쿼리와 코드는 Cloud Hadoop 클러스터의 커널을 통해 실행되며, Object Storage에 노트북 파일로 저장되어 유연하게 재사용할 수 있습니다.
노트북 화면
노트북 서비스 이용을 위한 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 노트북 생성 | 새로운 노트북 생성 |
② 삭제 | 사용 중인 노트북 삭제 |
③ JupyterLab에서 열기 | JupyterLab Web UI 접속 |
④ Jupyter에서 열기 | Jupyter Web UI 에 접속 |
⑤ 노트북 목록 | 생성된 노트북 목록과 상세 정보 확인 |
사전 작업
- Object Storage 생성
Cloud Hadoop 클러스터를 생성하기 전, 데이터를 저장하고 검색하기 위한 Object Storage 버킷을 먼저 생성해야 합니다.- Object Storage 생성에 대한 자세한 내용은 Object Storage 가이드를 참고해 주십시오.
- Cloud Hadoop 클러스터 생성
노트북 노드와 연동할 Cloud Hadoop 클러스터가 생성되어 있어야 합니다.- Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
- 노드 타입 선택
예상 사용량을 고려하여 노드 타입을 미리 선택해 두십시오.
노트북 생성
노트북 생성하는 방법은 다음과 같습니다.
하나의 Cloud Hadoop 클러스터에 여러 개의 노트북 노드를 생성할 수 있으며,각 노트북 노드는 Cloud Hadoop 클러스터와 연동이 가능합니다.
- 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
- Platform 메뉴의 VPC을 클릭해 VPC 환경으로 변경해 주십시오.
- 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Cloud Hadoop 메뉴를 차례대로 클릭해 주십시오.
- Notebooks 메뉴를 클릭해 주십시오.
- [노트북 생성] 버튼을 클릭해 주십시오.
- 노트북 생성 화면이 나타나면 다음 단계를 차례대로 진행해 주십시오.
1. 노트북 설정
노트북 설정 정보를 지정한 후 [다음] 버튼을 클릭해 주십시오.
- 노트북 이름: 노트북 노드의 이름을 입력해 주십시오.
- 노트북 버전: 노트북 버전을 선택해 주십시오. 현재 노트북은 1.0 버전만 제공합니다.
- 노트북 컴포넌트: 버전별 컴포넌트 정보를 확인할 수 있습니다.
- 클러스터: 노트북과 연동하려는 Cloud Hadoop 클러스터를 선택합니다. 최신 Cloud Hadoop 1.8 버전 이상에서만 노트북과 연동할 수 있습니다.
- ACG 설정: Cloud Hadoop Notebook ACG는 노트북를 생성할 때마다 자동 생성됩니다. 네트워크 ACL을 설정하려는 경우, 노트북 생성 시 자동으로 생성된 ACG를 선택해서 규칙을 수정할 수 있습니다. ACG 설정에 대한 자세한 내용은 방화벽 설정(ACG) 가이드를 참고해 주십시오.
2. 스토리지 & 서버 설정
스토리지 및 노드 서버 설정 정보 지정한 후 [다음] 버튼을 클릭해 주십시오.
- Object Storage 버킷: 노트북에서 사전 작업에서 생성한 Object Storage 버킷에서 데이터를 읽고 쓸 수 있습니다. 노트북 생성 시 사전 작업에서 생성한 Object Storage 버킷을 선택해 주십시오.
- 노트북 노드 Subnet: 노트북 노드를 위치시킬 Subnet을 선택합니다.
- Public Subnet에 노트북 노드를 생성하면 공인 IP 기반으로 웹 도메인 접속이 가능합니다.
- Private Subnet에 노트북 노드를 생성할 경우에는 SSL VPN으로 접속해야 웹 도메인 접속이 가능합니다.
- 노트북 노드 서버 타입: 노트북 노드로 사용할 서버 타입을 선택해 주십시오. 노트북 노드를 생성한 이후에는 서버 타입을 변경할 수 없습니다. 노트북 노드로 사용할 수 있는 서버에 대한 사양은 클러스터 노드별 지원 서버 사양을 참고해 주십시오.
- 노트북 노드 개수: 노트북 노드의 개수는 1개로 고정되어 있습니다.
- 노트북 노드 스토리지 추가여부: 별도의 Block Storage를 추가하여 사용할 수 있습니다.
- 노트북 노드 스토리지 타입: 스토리지 타입을 선택해 주십시오. SSD와 HDD 중에서 선택할 수 있습니다. 클러스터를 생성한 이후에는 스토리지 타입을 변경할 수 없습니다.
- 노트북 노드 스토리지 용량: 스토리지 용량을 선택해 주십시오. 최소 100GB부터 6T까지 선택할 수 있으며 10GB 단위로 지정할 수 있습니다.
- 요금제: 계정 생성 시 선택한 요금제가 적용됩니다. 요금에 대한 자세한 내용은 요금 안내를 참고해 주십시오.
3. 인증키 설정
노트북 노드에 SSH로 직접 접속하려면 인증키(.pem)를 설정해야합니다.
노트북 생성 시 보유하고 있는 인증키를 선택하거나 새로운 인증키를 생성하고 [다음] 버튼을 클릭해 주십시오.
- 새로운 인증키를 생성하려면 새로운 인증키 생성을 선택해 인증키 이름을 입력한 후 [인증키 생성 및 저장] 버튼을 클릭해 주십시오.
인증키는 관리자 비밀번호를 확인할 때 필요합니다. 저장한 pem 파일을 PC의 안전한 위치에 보관해 주십시오.
4. 최종 확인
설정 내용을 확인한 후 [생성] 버튼을 클릭해 주십시오.
- Cloud Hadoop Notebook ACG는 노트북을 생성할 때마다 자동 생성됩니다. 네트워크 ACL을 설정하려는 경우, 자동으로 생성된 ACG를 선택해서 규칙을 수정할 수 있습니다. ACG 설정에 대한 자세한 내용은 방화벽 설정(ACG) 가이드를 참고해 주십시오.
- 노트북이 생성되는 데 약 5~10분이 소요됩니다. 노트북 생성이 완료되어 운영이 시작되면 클러스터 목록의 Status 열에
운영중
이 표시됩니다.
노트북 접속
노트북 웹 페이지 접속
Cloud Hadoop (Notebooks) 콘솔에서 [JupyterLab에서 열기] 버튼 또는 [Jupyter에서 열기] 버튼을 클릭해 주십시오. 노트북 노드에 설치된 Jupyter Notebook 웹 페이지에 접속할 수 있습니다.
- Cloud Hadoop Notebook ACG에 JupyterLab의 허용포트
8889
와 Jupyter 웹 페이지의 허용포트8888
을 추가해 주십시오. - Public Subnet 에 생성된 노트북 노드의 경우 공인IP 기반으로 웹 접속 가능합니다.
- Private Subnet 에 생성된 노트북 노드의 경우 SSLVPN 을 통해서 접속해야 웹 접속 가능합니다.
SSL VPN과 ACG 설정 방법에 대한 자세한 설명은 서비스별 UI 접속 및 패스워드 설정 가이드를 참고해 주십시오.
노트북 노드에 SSH로 직접 접속
노트북 생성 시 인증키 설정 단계에서 설정한 인증키를 이용하여, 노트북 노드에 SSH로 직접 접속할 수 있습니다. 자세한 방법은 SSH로 클러스터 노드 접속 가이드를 참고해 주십시오.
노트북 사용
노트북을 다양한 형태로 연동해서 사용할 수 있습니다.
사전 작업
연동할 Cloud Hadoop 클러스터와 노트북 노드 간의 ACG 허용이 필요합니다. 연동할 Cloud Hadoop 클러스터의 ACG에 노트북 노드의 ACG를 포함하여, 다음과 같이 ACG를 설정해 주십시오.
- 연동할 Cloud Hadoop 클러스터의 Default ACG에서 [Inbound] 탭을 클릭해 주십시오. 접근 소스에는 노트북 노드의 ACG를 추가해주시고, 허용 포트에는 1-65535 포트 전체를 추가한 후 [적용] 버튼을 클릭해 주십시오.
Cloud Hadoop 클러스터와 노트북은 같은 VPC 내 통신이 가능한 동일 Subnet으로 생성하는 것을 권장합니다.
노트북에서 Cloud Hadoop 클러스터의 Spark에 연동
Jupypter Notebook Web UI에 접속한 후 PySpark를 사용하여, Cloud Hadoop 클러스터와 연동할 수 있습니다.
<PySpark 예제 코드>
노트북에서 커널 설정을 PySpark로 선택하여 진행해 주십시오.
import os
import pyspark
import socket
from pyspark.sql import SQLContext, SparkSession
sc = SparkSession \
.builder \
.appName("SparkFromJupyter") \
.getOrCreate()
sqlContext = SQLContext(sparkContext=sc.sparkContext, sparkSession=sc)
print("Spark Version: " + sc.version)
print("PySpark Version: " + pyspark.__version__)
df = sqlContext.createDataFrame(
[(1, 'foo'), (2,'bar')], #records
['col1', 'col2'] #column names
)
df.show()
print(socket.gethostname(), socket.gethostbyname(socket.gethostname()))
노트북에서 TensorFlow MNIST 학습
Jupypter Notebook Web UI에 접속한 후, PySpark를 사용하여 TensorFlow MNIST Training을 수행할 수 있습니다.
<Python3 예제 코드>
노트북에서 커널 설정을 Python3로 선택해서 진행해 주십시오.
# tensorflow library import
# tensorflow 설치가 필요하면
# !pip install tensorflow_version
import tensorflow as tf
mnist = tf.keras.datasets.mnist
# mnist 데이터 셋 로드
(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# layer를 추가해 모델을 정의
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 모델을 훈련하고 평가
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
# 학습된 모델을 HDF5 파일로 저장
model.save('my_model.h5')
노트북에서 Object Storage 데이터 연동
Jupyter Notebook Web UI에 접속하여 사용자의 Object Storage 정보를 입력하면 Object Storage 버킷에 연동할 수 있습니다.
- Object Storage의 Access key ID와 Secret key 정보는 네이버 클라우드 플랫폼 포털의 마이페이지 > [인증키 관리] 에서 확인할 수 있습니다. 자세한 내용은 Object Storage 시작 가이드를 참고해 주십시오.
<Python3 예제 코드>
노트북에서 커널 설정을 Python3로 선택해서 진행해 주십시오.
# 필요한 boto3 모듈 임포트
import boto3
# Object Storage 정보 입력
service_name = 's3'
endpoint_url = 'https://kr.object.private.fin-ncloudstorage.com'
region_name = 'kr-standard'
access_key = '사용자의 access key'
secret_key = '사용자의 secret key'
# Boto3를 활용하여 Object Storage 연동
if __name__ == "__main__":
s3 = boto3.client(service_name, endpoint_url=endpoint_url, aws_access_key_id=access_key, aws_secret_access_key= secret_key)
s3.upload_file("my_model.h5", "best", "model/my_model.h5")
노트북 삭제
사용이 완료된 노트북은 삭제할 수 있습니다. Jupypter Notebook에서 사용했던 노트북 파일(.ipynb 확장자의 파일)은 Cloud Hadoop 클러스터의 Object Storage 버킷 하위에 저장됩니다.
노트북을 삭제를 하더라도 사용했던 노트북 파일은 삭제되지 않습니다.