ノートブックの作成と管理
    • PDF

    ノートブックの作成と管理

    • PDF

    Article Summary

    最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。

    VPC環境で利用できます。

    Data Forestで提供するノートブックに関する情報とノートブックを作成して管理する方法を説明します。Data Forestではノートブックを通じてユーザーに簡単で便利なデータ分析環境を提供します。

    事前作業

    1. Object Storage作成
      クラスタを作成する前にデータを保存して検索するための Object Storageバケットを作成します。詳細は、Object Storageガイドをご参照ください。

    2. VPC、Subnet作成
      NAVERクラウドプラットフォームコンソールの Networking > VPC で VPCと Subnetを作成します。詳細は、VPCご利用ガイドをご参照ください。ノートパソコン数に関係なく、VPCは少なくとも1つは必要です。複数のノートブックを同じ VPCにおいて使用できます。民間 VPC環境では KR-2リージョンのみで VPCを作成でき、ノートブックの作成時に Public Subnetのみサポートしています。

    3. サーバ仕様の選択
      予想使用量を考慮し、サーバ仕様を予め選択します。

    参考

    ロックやアクセス制御が設定された Object Storageバケットの場合、ノートブックと連携時に問題が発生することがあります。

    ノートブック作成

    ノートブックを作成する方法は次のとおりです。

    1. ノートブックを所有するアカウントを作成します。

    2. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。

    3. 左側の Notebooks > ノートブック作成 ボタンをクリックします。

    4. ノートブックの設定画面に作成するノートブックに関する詳細情報を入力します。
      df-notebook-createnb-vpc_ko

      名前説明
      アカウント名ノートブックを所有するアカウント
      ノートブックタイプ作成するノートブックタイプを選択。現在の Jupyterlabタイプのみ提供
      ノートブック名作成するノートブック名を指定
      • 最小3文字以上、最大15文字以下で入力可能であり、英数字、記号「-」のみ使用可能
      VPC事前作業で作成した VPCを選択
      Subnetノートブックノードが位置する Subnetを選択
      • 現在韓国(KR-2)リージョン(ゾーン)の Public Subnetで IPアドレス作成の空き容量がある Subnetにのみノートブック作成が可能で、グローバル IPアドレスベースでウェブドメインにアクセスが可能
      サーバ仕様ノートブックノードとして使用するサーバタイプを選択。ノートブックノードを作成した後はサーバタイプを変更できない
      ACGData Forest Notebook ACGはノートブックを作成するたびに自動作成
      追加ストレージ別途の Block Storageを追加して使用できる
      追加ストレージタイプストレージタイプを選択。SSDと HDDの中から選択。ノートブックを作成した後はストレージタイプを変更できない
      追加ストレージの容量ストレージ容量の入力。最小100GBから6TBまで設定可能で、10GB単位で指定できる
      Object Storageバケット事前作業で作成した Object Storageバケットを選択
    5. 設定が完了したら、 [次へ] ボタンをクリックします。

    6. ユーザー設定画面に作成するノートブックのコンポーネントのユーザー設定値を入力します。
      df-notebook-usersettingnb-vpc_ko

      コンポーネント名前説明
      Jupyter LabAccess PasswordJupyter Lab Web UIへのアクセス時に使用する password
    7. 設定が完了したら、 [次へ] ボタンをクリックします。

    8. 認証キーの設定画面でノートブックノードに直接アクセスする時に必要な認証キーの情報を入力します。
      保有している認証キーを選択するか、新しい認証キーを作成し、 [次へ] ボタンをクリックします。
      新しい認証キーを作成するには、新しい認証キー作成を選択して認証キー名を入力し、 [認証キーの作成と保存] ボタンをクリックします。

      参考

      認証キーは、管理者パスワードを確認する時に必要です。保存した pemファイルを PCの安全な場所に保存します。

    9. 最終確認後 [作成] ボタンをクリックします。
      ノートブックの作成が完了するまで5~10分程度かかります。作成が完了すると、Notebooksコンソールで確認できます。

    ノートブックの詳細情報の確認

    ノートブックの詳細情報を確認する方法は、次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで Services > Big Data & Analytics > Data Forest メニューを順にクリックします。

    2. 左側の Notebooks メニューをクリックします。ユーザーが作成したノートブックのリストが確認できます。
      df-notebook-detailnb-vpc_ko

      名前説明
      ノートブック名作成されたノートブック名
      アカウントノートブックを所有したアカウント
      ノートブックタイプ作成したノートブックタイプ。現在の Jupyterlabタイプのみ提供
      状態ノートブックノードの状態
      サーバ仕様ノートブックノードのサーバ仕様
      VPCノートブックが作成された VPC
      Subnetノートブックノードに適用された Subnet
      作成時間ノートブックが作成された日付と時間
    3. ノートブックリストの末尾にある df-app_openをクリックしてノートブックの詳細情報を確認します。

      項目説明
      アカウント名ノートブックを所有したアカウント
      ノートブックタイプ作成したノートブックタイプ。現在の Jupyterlabタイプのみ提供
      ノートブック名作成されたノートブック名
      ノートブック IDノートブックの固有 ID
      サーバ仕様ノートブックノードのサーバ仕様
      VPCノートブックが作成された VPC
      Subnetノートブックノードに適用された Subnet
      ACGノートブックノードに適用された ACG
      追加ストレージ追加ストレージ情報
      ドメイングローバル IPアドレスに割り当てられたドメイン
      認証キー名ノートブックに適用された認証キー名
      SSHアクセスアカウントノートブックノードに SSHで直接アクセスするための OSアカウント名
      ユーザー設定ノートブックに適用されたユーザーの設定情報
      BucketObject Storage Bucket情報

    ノートブックにアクセス

    ノートブックにアクセスする方法は、次のとおりです。

    ノートブックのウェブページにアクセス

    ノートブックのウェブページにアクセスする方法は、次のとおりです。

    1. 事前作業でウェブページにアクセスする Notebookの ACGに JupyterLabの許可ポート80を追加します。
    2. Notebooksメニューからそのノートブックの詳細情報画面でドメインショートカットをクリックします。
      • Public Subnetに作成されたノートブックノードはグローバル IPアドレスをベースに別途のトンネリング設定なしでウェブページにアクセスできます。
    3. JupyterLabウェブページのログイン画面が表示されると、パスワードを入力してアクセスします。
      • パスワードはノートブックを作成する際にユーザー設定画面で Access Password項目に設定したパスワードです。
      • パスワードを紛失したか変更が必要な場合は、そのノートブックの詳細を見る画面でユーザー設定の [詳細を見る/初期化] ボタンをクリックしてパスワードを初期化できます。
        df-notebook-jupyter-login

    ノートブックノードに SSHで直接アクセス

    ノートブックを作成する時の認証キーの設定手順で設定した認証キーを利用して、ノートブックノードに SSHで直接アクセスできます。

    事前作業

    ノートブック ACGに固定 IPアドレスを追加する方法は、次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. アクセスしたいノートブックの詳細情報画面で ACGショートカットアイコンをクリックします。
    3. そのノートブックに適用された ACGを選択し、 [ACG設定] ボタンをクリックします。
    4. 次の4つの情報を入力し、ACG Ruleを追加します。
      • プロトコル: TCP
      • アクセスソース: SSH通信を行うローカルデバイスの IPアドレス
      • 許可ポート: 22
      • メモ(選択)

    mac OS環境での SSHアクセス

    iTerm2を用いたアクセス方法を説明します。他のプログラムを使用しても同じ動作を実行するのであれば、結果は同じです。
    ノートブックのドメイン情報はそのノートブックの詳細情報画面で確認できます。

    chmod 400 </path/to/pem-key>
    ssh -i </path/to/pem-key>  forest@<notebook-domain>
    

    Windows環境での SSHアクセス

    PuTTYクライアントを用いたアクセス方法を説明します。他のプログラムを使用しても同じ動作を実行するのであれば、結果は同じです。

    次のステップを順に行います。

    1. 認証キー(.pem)の変換

    PuTTYでは、Data Forestで作成されたプライベートキー形式(.pem)を基本的にサポートしません。PuTTYが提供する PuTTYgenアプリケーションを使用し、認証キーを PuTTYで使用する形式(.ppk)に変換できます。PuTTYを使用してノートブックノードに接続する前に、プライベートキーをこの形式(.ppk)に変換する必要があります。

    1. PuTTYgenを実行します。(puttygenをダウンロード)
    2. Type of key to generateRSA を選択し、[Load] ボタンをクリックします。
    3. その認証キー(*.pem)を選択し、 [開く] ボタンをクリックします。
      • pem形式のファイルを検索するには、すべてのタイプのファイルを表示するオプションを選択します。
      • pemファイルは現在クラスタに適用されている認証キーのファイル名であり、ユーザーのローカル PCにその pemファイルが保存されている必要があります。
      • pemファイルを紛失した場合は、 コンソール > サーバアクセスの管理 > 認証キー管理 メニューでアクセスする認証キーを変更できます。
    4. 完了の確認ポップアップの内容を確認し、 [確認] ボタンをクリックします。
    5. [Save private key] ボタンをクリックし、PuTTYで使用できる ppk形式のファイルで保存します。
    • PuTTYgenでパスワードなしのキー保存に関する警告が表示されたら、 [Yes] ボタンをクリックします。
    • 過去に作成した認証キーと同じ名前で保存します。PuTTYが自動で.ppkファイル拡張子を追加します。
    参考

    一度作られたトンネルは PuTTYでそのセッションを保存しておき、必要な時にロードしてアクセスできます。

    • セッションを保存するには、 Load、save or delete a stored sessionSaved Sessions の入力欄にセッション名を入力し、 [Save] をクリックします。
    • セッションを実行するには、 Saved Sessions リストにあるそのセッションを選択し、 [Open] ボタンをクリックします。

    2. ノートブックノードにアクセス

    1. PuTTYを実行します。(PuTTYをダウンロード)
    2. Category 画面で Session を選択し、各設定項目に以下のように入力します。
    • HostName(or IP address) : forest@notebook-domain (notebook-domainにはそのノートブックのドメインアドレスを入力)
    • Port : 22
    1. Category ポップアップで、Connection > SSH を選択して拡張し、Auth 項目をクリックします。
    2. [Browse] ボタンをクリックして pemファイルを変換して作成した ppkファイルを選択し、[Open] ボタンをクリックします。
    3. ノートブックノードに正常にアクセスしていることを確認します。

    ノートブック管理

    認証キー変更

    ノートブックの作成時に指定した認証キーを紛失したか変更が必要な場合、認証キーを変更できます。
    認証キーを変更する方法は、次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Notebooks メニューをクリックします。
    3. アカウントを選択して認証キーを変更するノートブックを選択し、 [サーバアクセス管理] > [認証キー変更] ボタンをクリックします。
    4. ユーザーを確認した後に保有していた既存の別の認証キーを選択するか、新しい認証キーを作成することで認証キーを変更できます。

    ユーザー設定の初期化

    ノートブックの作成時に指定したユーザー設定値を修正する方法は、次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Notebooks メニューをクリックします。
    3. アカウントを選択してノートブックリストでユーザー設定を変更するノートブックを選択して詳細を見る画面に移動します。
    4. ユーザー設定項目の [詳細を見る/初期化] ボタンをクリックします。
    5. 初期化が必要な設定の値を入力し、 [初期化] ボタンをクリックします。
    参考

    ユーザー設定を変更する場合、ノートブックが再起動されるため Dockerのホームディレクトリ(/home/forest/)で作業した内容が初期化されます。必要な内容は予め別途保存した後にノートブックを再起動してください。

    バケット修正

    Object Storageバケットを変更する方法は、次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Notebooks メニューをクリックします。
    3. アカウントを選択してノートブックリストからバケットを変更するノートブックを選択し、ノートブックの詳細を見る画面に移動します。
    4. バケット項目の [修正] ボタンをクリックします。
    5. 変更するバケットを選択し、 [適用] ボタンをクリックします。
    参考
    • 同じアカウントのノートブックに既に連携したバケットは重複で連携できません。
    • バケットを変更する場合、ノートブックが再起動されるため Dockerのホームディレクトリ(/home/forest/)で作業した内容が初期化されます。必要な内容は予め別途保存した後にノートブックを再起動してください。

    ノートブックの再起動

    ノートブックを再起動する方法は次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Notebooks メニューをクリックします。
    3. アカウントを選択し、ノートブックリストで起動するノートブックを選択して [再起動] ボタンをクリックします。

    ノートブック削除

    ノートブックを削除する方法は次のとおりです。

    1. NAVERクラウドプラットフォームコンソールで、 Services > Big Data & Analytics > Data Forest メニューを順にクリックします。
    2. 左側の Notebooks メニューをクリックします。
    3. アカウントを選択し、ノートブックリストで削除するノートブックを選択して [削除] ボタンをクリックします。
    参考

    ノートブックを削除するとローカルに保存したノートブックファイルは消失します。必要なノートブックファイルは予め別途保存した後にノートブックを削除してください。

    ノートブックを使用する

    JupyterLab Extension活用

    df-notebook-jupyter-menu-new

    1. Object Storage Browser - Object Storageの連携とバケット情報
      • ノートブックを作成した Data Forestアカウントが持つ Object Storage Bucketと自動で連携されます。
      • 各バケット内のファイル情報を照会できます。
    2. File Browser - dockerに接続された forestユーザーのホームディレクトリ情報
      • アクセスアカウント名はforestで、ホームディレクトリは/home/forestです。
      • ~ /keytab下位の Data Forestアカウントのキータブファイルが事前にアップロードされています。
      • ノートブックの作成時に追加ストレージを追加した場合、~ /dataパスにマウントされ、確認できます。
      • ノートブックの作成時に選択した Object Storage Bucketは~ /data/{bucket_name}フォルダにマウントされて確認できます。
    3. Running Terminals and Kernels - 現在稼働中のターミナルとカーネル情報
    4. Git - GIT Repositoryの初期化と連携情報
    5. Terminal - ノートブックが実行中の Dockerにアクセスできる機能
      • バックアップが必要な場合、ノートブックの作成時に選択した Object Storage Bucketがマウントされた~ /data/{bucket_name}フォルダにファイルやデータを保存すると、ノートブックの再起動および削除しても Object Storageに保存されてバックアップできます。

    コード実行

    JupyterLab Web UIにアクセスした後、PySparkを使用して Data Forestクラスタと連携できます。

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

    df-notebook-jupyter-pyspark

    Object Storageとの連携とノートブックファイルのバックアップ

    • ノートブックの作成時にノートブック設定ステップで Object Storage Bucketを選択するとノートブック Dockerが実行される時に/home1/forest/data/{bucket_name}パスにマウントされます。ローカルディスクに保存されるノートブックファイル(.ipynbファイル)を連携したバケットパスにアップロードすることでバックアップまでできます。
    • ユーザーは JupyterLab Web UIにアクセスして自動で連携した自らの Object Storage Bucket情報を確認できます。

    <Python3のサンプルコード>
    以下のコードを参照してノートブック作成時に指定した Object Storage Bucketを連携できます。
    ノートブックのカーネル設定で Python3を選択して実行します。

    # 必要な boto3モジュールをインポート 
    import boto3
    
    # Object Storage情報を入力
    service_name = 's3'
    endpoint_url = 'https://kr.object.private.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("local_file_name", "bucket_name", "s3s3_path/file_name")
    
    

    Tensorflow MNIST学習

    JupyterLab Web UIにアクセスし、Python3を使用して 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')
    

    GIT連携

    Jupypterlab Web UIにアクセスし、左側のメニューで連携する GITリポジトリ情報を入力して GITと連携できます。


    この記事は役に立ちましたか?

    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.