Notebooks を使用する
    • PDF

    Notebooks を使用する

    • PDF

    Article Summary

    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クラスタを予め作成します。
    3. ノードタイプを選択
      予想使用量を考慮して、ノードタイプを予め選択します。

    ノートブック作成

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

    1つの Cloud Hadoopクラスタに複数のノートブックノードを作成できます。また、各ノートブックノードは Cloud Hadoopクラスタと連携できます。

    1. NAVERクラウドプラットフォームコンソールにアクセスします。
    2. Platformメニューの VPCをクリックして VPC環境に変更します。
    3. NAVERクラウドプラットフォームコンソールで、Services > Big Data & Analytics > Cloud Hadoopメニューを順にクリックします。
    4. Notebooksメニューをクリックします。
    5. [ノートブック作成] ボタンをクリックします。
    6. ノートブックの作成画面が表示されたら、以下のステップを順に行います。

    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から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で作成することを推奨します。

    ノートブックで Object Storageデータ連携

    Jupyter Notebook Web UIにアクセスし、ユーザーの Object Storage情報を入力すると Object Storageバケットと連携できます。

    • Object Storageの Access key IDと Secret key情報は、NAVERクラウドプラットフォームポータルのマイページ > [認証キー管理] で確認できます。詳細は、Object Storage を開始するガイドをご参照ください。
      cloudhadoop-mypage-authkey1_ko

    <Python3のサンプルコード>

    ノートブックのカーネル設定で 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("my_model.h5", "best", "model/my_model.h5")
    

    ノートブックで 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にアクセスし、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')
    

    notebook_tensorflow_mnist_example

    ノートブック削除

    使用が完了したノートブックは削除できます。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.