2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OCI Data Science の Jupyter Notebook から OCI Data Flow を使う

Last updated at Posted at 2023-04-20

はじめに

機械学習のための統合環境である OCI Data Science と サーバレス Spark 環境を提供する OCI Data Flow は別々のサービスとして独立していて、これまで何の統合もされていませんでしたが、現在では Data Science の Jupyter Notebook と OCI Data Flow の実行環境が連携されています。
これにより OCI Data Flow のサーバレスや動的リソース・アロケーション等の特長を活かしたコスト・コンシャス&効率的な Pyspark Notebook セッションを OCI Data Science から利用できるようになりました。

Data Science - Data Flow Integration

では、実際にやってみましょう!

準備

ノートブック・セッションから Data Flow を制御するための認可ポリシーを設定する必要があります。

まず動的グループが必要です。
基本形は、

ALL {resource.type = 'datasciencenotebooksession', <追加の条件>}

で、状況に応じて <追加の条件> のところに resource.compartment.id や resource.id を指定します。
そしてこの動的グループに Data Flow を管理する権限を与えます。

allow dynamic-group <ds-dynamic-group> to manage dataflow-family in compartment '<your-compartment-name>'

Data Science ノートブック・セッションを開く

データ・サイエンスのプロジェクトを作成し、その配下にノートブックセッションを作成します。
セッションの詳細画面に「開く」のボタンがありますので、これをクリックします。

image.png

そうすると、ブラウザに新しいウィンドウが現れ、Launcher のタブが開きます。

image.png

Conda環境のインストール

左側 (Extensions) のメニューから「Environment Explorer」をクリックします。そうすると、インストール可能な Conda 環境がリストされます。
image.png

「PySpark 3.2 and Data Flow Python 3.8 CPU」の行を探して、右側メニューから install を行います。

image.png

ターミナルのタブが開いてインストールが実行されます。

image.png

Jupyter Notebook を開く

Launcher のタブに戻って、Kernels から「Pyspark 3.2 and Data Flow」を選んで Notebook を作成します。

image.png

新しい Notebook が作成されました。

image.png

OCI Data Flow セッションの作成と利用

次に認証を設定します。ADS(Oracle Accelerated Data Science) SDKを使って Data Flow のAPIを呼び出す際の認証タイプを設定します。今回はリソース・プリンシパルによる認証にします(前述「準備」のところでリソース・プリンシパルによる認証に必要な設定を行いました)。

image.png

OCI Data Flow との通信には SparkMagic を利用するので、SparkMagic拡張をロードします。

image.png

セッションの作成は %create_session コマンドで行います。
渡すパラメータは以下のような Json です。

{
    "compartmentId": "<compartment_ocid>",
    "displayName": "<session_name>",
    "language": "PYTHON",
    "sparkVersion": "3.2.1",
    "driverShape": "VM.Standard.E3.Flex",
    "executorShape": "VM.Standard.E3.Flex",
    "driverShapeConfig":{"ocpus":1,"memoryInGBs":16},
    "executorShapeConfig":{"ocpus":1,"memoryInGBs":16},
    "numExecutors": 1,
    "type": "SESSION",
    "logsBucketUri": "<oci://bucket@namespace/>",
}

では、実行します。

image.png

Data Flow 側で確認すると、新しい「実行」が作成され「進行中」のステータスになっていることが分かります。

image.png

これで、Notebook から Data Flow の Spark セッションが利用可能となりました。Notebook からは spark, sc の変数が利用可能です。

試しに、PI を計算してみましょう...

image.png

セッションのデフォルトのアイドル・タイムアウト値は480分(8時間)ですが、設定変更可能です。手動で停止することもできます。

%stop_session で停止してみます。

image.png

Data Flow のステータスも「Stopped」になりました。

image.png

SparkMagic のコマンドは %help で確認できます。

image.png

(おわり)

参考

ブログ:OCI Data Flowサービス内のJupyter notebooksへのアクセス
ドキュメント:データ・フローとデータ・サイエンスの統合
サンプル Notebook:pyspark-data_flow_studio-introduction

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?