Notebooks を使用する

Prev Next

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

VPC環境で利用できます。

Cloud Hadoop Notebookは、データ分析に必要なクエリとコードを実行できるように、サーバレス型の Jupyter Notebookを提供します。
Notebooksコンソールで Notebookノードを作成したり、削除することができます。
作成された Notebookノードの JupyterLabと Jupyter Notebookのウェブページにアクセスし、データ分析を行えます。

Notebookで使用したクエリとコードは、Cloud Hadoopクラスタのカーネルを介して実行されます。また、Object Storageに Notebookファイルとして保存され、柔軟に再使用できます。

Notebook画面

Notebookサービスを利用するための基本的な説明は、次の通りです。

notebook_console_1_ko

領域 説明
① Notebook作成 新しい Notebookを作成
② 削除 使用中の Notebookを削除
③ JupyterLabで開く JupyterLab Web UIにアクセス
④ Jupyterで開く Jupyter Web UIにアクセス
⑤ Notebookリスト 作成された Notebookリストと詳細情報を確認

事前タスク

  1. Object Storage作成
    Cloud Hadoopクラスタを作成する前に、データを保存して検索するための Object Storageバケットを予め作成します。
  2. Cloud Hadoopクラスタ作成
    Notebookノードと連携する Cloud Hadoopクラスタを作成されている必要があります。
  3. ノードタイプ選択
    予想使用量を考慮して、ノードタイプを予め選択します。

Notebook作成

Notebookを作成する方法は、次の通りです。

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

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

1.Notebook設定

Notebookの設定情報を指定した後、 [次へ] ボタンをクリックします。

  • Notebook名: Notebookノードの名前を入力します。
  • Notebookバージョン: Notebookのバージョンを選択します。
  • Notebookコンポーネント: バージョン別のコンポーネント情報を確認できます。
  • クラスタ: Notebookと連携する Cloud Hadoopクラスタを選択します。最新の Cloud Hadoop 1.8バージョン以上のみ Notebookと連携できます。
  • ACG設定: Cloud Hadoop Notebook ACGは、Notebookを作成するたびに自動で作成されます。ネットワーク ACLを設定する場合、Notebook作成時に自動で作成された ACGを選択してルールを変更できます。ACG設定に関する詳細は、ファイアウォール設定(ACG)ガイドをご参照ください。

2.ストレージ&サーバ設定

ストレージとノードサーバの設定情報を指定した後、 [次へ] ボタンをクリックします。

  • Object Storageバケット: 事前タスクで作成した Object Storageバケットでデータの読み取りと書き込みができます。Notebookの作成時に、事前タスクで作成した Object Storageバケットを選択します。
  • Notebookノード Subnet: Notebookノードを配置する Subnetを選択します。
    • Public Subnetに Notebookノードを作成すると、パブリック IPアドレスをベースにウェブドメインにアクセスできます。
    • Private Subnetに Notebookノードを作成する場合は、ウェブドメインにアクセスするために SSL VPNを介してアクセスする必要があります。
  • Notebookノードサーバタイプ: Notebookノードとして使用するサーバタイプを選択します。Notebookノードを作成した後はサーバタイプを変更できません。Notebookノードとして使用できるサーバの仕様は、クラスタノード別のサポートサーバ仕様をご参照ください。
  • Notebookノード数: Notebookノード数は1つに固定されています。
  • Notebookノードのストレージ追加有無: 別途 Block Storageを追加して使用できます。
  • Notebookノードのストレージタイプ: ストレージタイプを選択します。SSDと HDDの中から選択できます。クラスタを作成した後はストレージタイプを変更できません。
  • Notebookノードのストレージ容量: ストレージ容量を選択します。最小100GBから6TBまで選択でき、10GB単位で指定できます。
  • 料金プラン: アカウントの作成時に選択した料金プランが適用されます。料金に関する詳細は、料金のご案内をご参照ください。

3.認証キー設定

Notebookノードに SSHで直接アクセスするには、認証キー(.pem)を設定する必要があります。
Notebookの作成時に、保有中の認証キーを選択するか新しい認証キーを作成し、 [次へ] ボタンをクリックします。

  • 新しい認証キーを作成するには、新しい認証キー作成を選択して認証キー名を入力した後、 [認証キー作成と保存] ボタンをクリックします。
    hadoop-use-notebooks-pemkey-vpc_ko
参考

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

4.最終確認

設定内容を確認した後、 [作成] ボタンをクリックします。

参考
  • Cloud Hadoop Notebook ACGは、Notebookを作成するたびに自動で作成されます。ネットワーク ACLを設定する場合、自動で作成された ACGを選択してルールを変更できます。ACG設定に関する詳細は、ファイアウォール設定(ACG)ガイドをご参照ください。
  • Notebookが作成されるまで約5~10分かかります。Notebookの作成が完了して運用が開始されると、クラスタリストの Status列に運用中と表示されます。

Notebookにアクセス

Notebookのウェブページにアクセス

Cloud Hadoop(Notebooks)コンソールで [JupyterLabで開く] ボタン、または [Jupyterで開く] ボタンをクリックします。Notebookノードにインストールされた Jupyter Notebookのウェブページにアクセスできます。

  • Cloud Hadoop Notebook ACGに JupyterLabの許可ポート 8889と Jupyterウェブページの許可ポート 8888を追加します。
  • Public Subnetに作成された Notebookノードの場合、パブリック IPアドレスをベースにウェブにアクセスできます。
  • Private Subnetに作成された Notebookノードの場合、ウェブにアクセスするために SSLVPNを介してアクセスする必要があります。
参考

SSL VPNと ACGの設定方法に関する詳細は、サービス別 UIアクセスとパスワード設定ガイドをご参照ください。

クラスタノードに SSHで直接アクセス

Notebookの作成時に認証キー設定のステップで設定した認証キーを利用し、Notebookノードに SSHで直接アクセスできます。詳細な方法は、SSHでクラスタノードにアクセスガイドをご参照ください。

Notebookを使用する

Notebookを様々な形で連携して使用できます。

事前タスク

連携する Cloud Hadoopクラスタと Notebookノード間の ACG許可が必要です。連携する Cloud Hadoopクラスタの ACGに Notebookノードの ACGを含め、以下のように ACGを設定します。

  • 連携する Cloud Hadoopクラスタの Default ACG[Inbound] タブをクリックします。アクセスソースには Notebookノードの ACGを追加し、許可ポートには1-65535ポート全体を追加して [適用] ボタンをクリックします。
    notebook_acg_ko
参考

Cloud Hadoopクラスタと Notebookは、同じ VPC内で通信が可能な同じ Subnetで作成することをお勧めします。

Notebookで Cloud Hadoopクラスタの Sparkと連携

Jupyter Notebook Web UIにアクセスし、PySparkを使用して Cloud Hadoopクラスタと連携できます。

<PySparkのサンプルコード>

Notebookのカーネル設定で 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

Notebookで TensorFlow MNISTを学習

Jupyter Notebook Web UIにアクセスし、Python3を使用して TensorFlow MNIST Trainingを行えます。

<Python3のサンプルコード>

Notebookのカーネル設定で 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

Notebookで Object Storageデータ連携

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

<Python3のサンプルコード>

Notebookのカーネル設定で 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")

Notebook削除

使用が完了した Notebookは削除できます。Jupyter Notebookで使用した Notebookファイル(.ipynb拡張子のファイル)は、Cloud Hadoopクラスタの Object Storageのサブバケットに保存されます。

参考

Notebookを削除した場合でも、使用した Notebookファイルは削除されません。