Notebooks 사용
    • PDF

    Notebooks 사용

    • PDF

    기사 요약

    VPC 환경에서 이용 가능합니다.

    Cloud Hadoop 노트북은 데이터 분석에 필요한 쿼리와 코드를 실행할 수 있도록 "서버리스" 형태의 Jupyter Notebook을 제공합니다.
    Notebooks 콘솔을 통해 노트북 노드를 생성하고 삭제할 수 있습니다.
    생성된 노트북 노드의 JupyterLab과 Jupyter Notebook 웹 페이지로 접속하여 데이터 분석 작업을 진행할 수 있습니다.

    노트북에서 사용한 쿼리와 코드는 Cloud Hadoop 클러스터의 커널을 통해 실행되며, Object Storage에 노트북 파일로 저장되어 유연하게 재사용할 수 있습니다.

    노트북 화면

    노트북 서비스 이용을 위한 기본적인 설명은 다음과 같습니다.

    notebook_console_1_ko

    영역설명
    ① 노트북 생성새로운 노트북 생성
    ② 삭제사용 중인 노트북 삭제
    ③ JupyterLab에서 열기JupyterLab Web UI 접속
    ④ Jupyter에서 열기Jupyter Web UI 에 접속
    ⑤ 노트북 목록생성된 노트북 목록과 상세 정보 확인

    사전 작업

    1. Object Storage 생성
      Cloud Hadoop 클러스터를 생성하기 전, 데이터를 저장하고 검색하기 위한 Object Storage 버킷을 먼저 생성해야 합니다.
    2. Cloud Hadoop 클러스터 생성
      노트북 노드와 연동할 Cloud Hadoop 클러스터가 생성되어 있어야 합니다.
      • Cloud Hadoop 클러스터 생성에 대한 자세한 내용은 Cloud Hadoop 시작 가이드를 참고해 주십시오.
    3. VPC, Subnet 생성
      네이버 클라우드 플랫폼 콘솔의 Networking > VPC에서 VPC와 Subnet을 생성합니다. 노트북 개수와 상관없이 VPC는 최소 1개가 필요하며, 여러 개의 노트북을 같은 VPC에 두고 사용할 수 있습니다.
      Cloud Hadoop 노트북 노드 생성 시 Public Subnet과 Private Subnet을 노드 용도에 맞게 생성하고 사용할 수 있습니다.
    주의
    • 노트북은 분석 환경에 맞춰서 다양한 라이브러리를 다운받아 Jupyter Notebook으로 연동하기 때문에 공인 IP 통신이 가능한 Public Subnet 사용을 권장 드립니다.
    • Private Subnet을 사용할 경우 VPC 내에 NAT Gateway를 별도로 생성해야만 외부 통신이 가능합니다. 자세한 내용은 NAT Gateway 사용 가이드를 참고해 주십시오.
    1. 노드 타입 선택
      예상 사용량을 고려하여 노드 타입을 미리 선택해 두십시오.

    노트북 생성

    노트북 생성하는 방법은 다음과 같습니다.

    하나의 Cloud Hadoop 클러스터에 여러 개의 노트북 노드를 생성할 수 있으며, 각 노트북 노드는 Cloud Hadoop 클러스터와 연동이 가능합니다.

    1. 네이버 클라우드 플랫폼 콘솔에 접속해 주십시오.
    2. Platform 메뉴의 VPC을 클릭해 VPC 환경으로 변경하여 주십시오.
    3. 네이버 클라우드 플랫폼 콘솔에서 Services > Big Data & Analytics > Cloud Hadoop 메뉴를 차례대로 클릭해 주십시오.
    4. Notebooks 메뉴를 클릭해 주십시오.
    5. [노트북 생성] 버튼을 클릭해 주십시오.
    6. 노트북 생성 화면이 나타나면 다음 단계를 차례대로 진행해 주십시오.

    1. 노트북 설정

    노트북 설정 정보를 지정한 후 [다음] 버튼을 클릭해 주십시오.

    • 노트북 이름: 노트북 노드의 이름을 입력해 주십시오.
    • 노트북 버전: 노트북 버전을 선택해 주십시오. 현재 노트북은 1.0 버전만 제공중입니다.
    • 노트북 컴포넌트: 버전별 컴포넌트 정보를 확인할 수 있습니다.
    • 클러스터: 노트북과 연동하려는 Cloud Hadoop 클러스터를 선택합니다. 최신 Cloud Hadoop 1.8 버전 이상에서만 노트북과 연동이 가능합니다.
    • VPC: 사전 작업에서 생성한 VPC를 선택합니다.
    • 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부터 6TB까지 선택할 수 있으며 10GB 단위로 지정할 수 있습니다.
    • 요금제: 계정 생성 시 선택한 요금제가 적용됩니다. 요금에 대한 자세한 내용은 요금 안내를 참고해 주십시오.

    3. 인증키 설정

    노트북 노드에 SSH로 직접 접속하려면 인증키(.pem)를 설정해야 합니다.
    노트북 생성 시 보유하고 있는 인증키를 선택하거나 새로운 인증키를 생성하고 [다음] 버튼을 클릭해 주십시오.

    • 새로운 인증키를 생성하려면 새로운 인증키 생성을 선택해 인증키 이름을 입력한 후 [인증키 생성 및 저장] 버튼을 클릭해 주십시오.
      hadoop-use-notebooks-pemkey-vpc_ko
    참고

    인증키는 관리자 비밀번호를 확인할 때 필요합니다. 저장한 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 포트 전체를 추가한 후 [적용] 버튼을 클릭해 주십시오.
      notebook_acg_ko
    참고

    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()))
    

    notebook_pyspark_example

    노트북에서 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')
    

    notebook_tensorflow_mnist_example

    노트북에서 Object Storage 데이터 연동

    Jupyter Notebook Web UI에 접속하여 사용자의 Object Storage 정보를 입력하면 Object Storage 버킷에 연동할 수 있습니다.

    • Object Storage의 Access key ID와 Secret key 정보는 네이버 클라우드 플랫폼 포털의 마이페이지 > [인증키 관리] 에서 확인할 수 있습니다. 자세한 내용은 Object Storage 시작 가이드를 참고해 주십시오.
      cloudhadoop-mypage-authkey1_ko

    <Python3 예제 코드>

    노트북에서 커널 설정을 Python3로 선택해서 진행해 주십시오.

    # 필요한 boto3 모듈 임포트 
    import boto3
    
    # Object Storage 정보 입력
    service_name = 's3'
    endpoint_url = 'https://kr.object.private.gov-ncloudstorage.com'
    region_name = 'gov-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 버킷 하위에 저장됩니다.

    참고

    노트북을 삭제를 하더라도 사용했던 노트북 파일은 삭제되지 않습니다.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.