このドキュメントでは、Managed Service for Apache Spark のインタラクティブ セッションとランタイム プロファイルを作成する方法について説明します。これらは、Google Cloud CLI と Dataproc API ではセッション テンプレートと呼ばれます。ランタイム プロファイルは、コンピューティング ティアやエグゼキュータ構成など、サーバーレス Spark ランタイム設定の再利用可能なセットです。これを使用して、インタラクティブなノートブックとセッションを作成できます。
インタラクティブ セッションを作成する
Google Cloud CLI または Managed Service for Apache Spark API を使用して、Managed Service for Apache Spark インタラクティブ セッションを作成できます。
gcloud
gcloud beta dataproc sessions create spark SESSION_ID コマンドを使用して、Managed Service for Apache Spark のインタラクティブ セッションを作成できます。
gcloud beta dataproc sessions create spark SESSION_ID \ --location=REGION \ optional flags ...
以下を置き換えるか、追加します。
SESSION_ID: 必須。セッションの ID。REGION: 必須。セッションを配置する利用可能な Compute Engine リージョン。--version: 省略可。サポートされている Spark ランタイム バージョン。バージョンを指定しない場合、デフォルトの Spark ランタイム バージョンが使用されます。--container-image: 省略可。セッションに使用するカスタム コンテナ イメージ。--property: 省略可。セッションの 1 つ以上のカンマ区切りの Spark プロパティ。--service-account: 省略可。セッションに使用するサービス アカウント。指定しない場合は、Compute Engine のデフォルトのサービス アカウントが使用されます。--subnet: 省略可。セッション リージョン内のサブネットの名前。指定しない場合、Managed Service for Apache Spark はセッション リージョンのdefaultサブネットを使用します。Managed Service for Apache Spark は、サブネットでプライベート Google アクセス(PGA)を有効にします。ネットワーク接続の要件については、Managed Service for Apache Spark のネットワーク構成をご覧ください。
REST
Managed Service for Apache Spark の sessions.create API メソッドを使用して、Managed Service for Apache Spark のインタラクティブ セッションを作成できます。次のリクエスト フィールドを構成します。
name: 必須。セッション名。version: 省略可。セッションでサポートされている Spark ランタイム バージョン。バージョンを指定しない場合は、デフォルトのバージョンが使用されます。containerImage: 省略可。セッションに使用するカスタム コンテナ イメージ。properties: 省略可。セッション プロパティ名と値のマッピング。サポートされているプロパティの詳細については、Spark のプロパティをご覧ください。serviceAccount: 省略可。セッションの実行に使用するサービス アカウント。指定しない場合は、Compute Engine のデフォルトのサービス アカウントが使用されます。subnetworkUri: 省略可。セッション リージョン内のサブネットの名前。指定しない場合、Managed Service for Apache Spark はセッション リージョンのdefaultサブネットを使用します。Managed Service for Apache Spark は、サブネットでプライベート Google アクセス(PGA)を有効にします。ネットワーク接続の要件については、Managed Service for Apache Spark のネットワーク構成をご覧ください。
ランタイム プロファイルの作成
Managed Service for Apache Spark ランタイム プロファイル(セッション テンプレートとも呼ばれます)は、Managed Service for Apache Spark インタラクティブ セッションを作成するための再利用可能な構成設定を定義します。ランタイム プロファイルを作成するには、 Google Cloud コンソール、gcloud CLI、または Managed Service for Apache Spark API を使用します。gcloud CLI と Dataproc API では、ランタイム プロファイルは session templates と呼ばれます。
コンソール
Google Cloud コンソールを使用して Managed Service for Apache Spark ランタイム プロファイルを作成するには、次の操作を行います。
Google Cloud コンソールで、[ランタイム プロファイル] ページに移動します。
[作成] をクリックします。
[ランタイム プロファイルの作成] ページで、次の主要な設定を構成します。
表示名: 必須。ランタイム プロファイルの表示名を入力するか、事前入力された生成済みの名前をそのまま使用します。表示名には少なくとも 1 つの英字または数字を含める必要があります。また、Spark Connect を含むすべてのセッション タイプの最上位の表示名として保存されます。[ランタイム プロファイル名] はリソース ID であり、表示名から自動的に取得されます。文字は小文字に変換され、無効な文字はハイフンに変換されます。これは、フィールドの下にヒントとして表示されます。表示名とは別にリソース ID をカスタマイズするには、[追加構成] を開き、[ランタイム構成] を編集します。
リージョン: 必須。このランタイム プロファイルを使用するセッションに使用可能な Compute Engine リージョンを選択します。デフォルトのリージョンは
us-east4(以前はus-central1)で、リストにはリージョンの説明が表示されます。説明: 省略可。ランタイム プロファイルを識別するのに役立つ説明を入力します。
ティア: ワークロード実行用の Managed Service for Apache Spark ティアを選択します。
プレミアム: デフォルト。アクセラレーション エンジンにより、複雑なクエリやレイテンシに敏感なクエリを最適化し、ハイメモリと GPU アクセラレーション エグゼキュータ シェイプをサポートします。[プレミアム] を選択すると、[Lightning Engine を有効にしてパフォーマンスを向上させる] チェックボックスが表示され、デフォルトで選択されます。これにより、Lightning Engine を使用して Spark ジョブが高速化され、
spark.dataproc.engine=lightningEngineが設定されます。Standard: 日常的なデータ処理向けのスタンダードな Spark 実行環境を提供します。インタラクティブ セッションは常にプレミアム ティアで実行されます。[スタンダード] を選択すると、バッチ実行にのみ影響します。[標準] を選択すると、Lightning Engine がオフになり、マシンシェイプが標準 CPU シェイプ(
standard-4、standard-8、standard-16)に制限され、HDD (standard)ディスクが必要になります。プレミアムから標準に切り替えると、ハイメモリまたは GPU シェイプはstandard-4にリセットされ、SSD ディスクは200 GiBHDD にリセットされます。
エグゼキュータの構成: ワークロードを実行する Spark エグゼキュータとドライバのコンピューティング サイズ設定モードとマシンシェイプを選択します。
General: デフォルト。一般的な抽出、変換、読み込み(ETL)ワークロードに適した CPU のみのマシンシェイプを提供します。[エグゼキュータ タイプ] リストで、ハイメモリ シェイプ(4 個の vCPU と 32 GB のメモリを備えた
highmem-4(デフォルト)、8 個の vCPU と 64 GB のメモリを備えたhighmem-8、16 個の vCPU と 128 GB のメモリを備えたhighmem-16など)を選択するか、標準 シェイプ(4 個の vCPU と 16 GB のメモリを備えたstandard-4、8 個の vCPU と 32 GB のメモリを備えたstandard-8、16 個の vCPU と 64 GB のメモリを備えたstandard-16など)を選択します。ハイメモリ シェイプは、プレミアム ティアでのみ使用できます。高速化: データ サイエンス、AI、ML のトレーニング ワークロードと推論ワークロードに適した GPU 接続マシンシェイプを提供します。アクセラレーテッド シェイプを選択すると、ティアがプレミアムに、ディスクティアが SSD(プレミアム)に自動的に切り替わり、デフォルトのサイズは
375 GiBになります。[エグゼキュータ タイプ] リストで、4、8、12、16、24、48、または 96 個の vCPU を備えた L4 シェイプを選択するか、A100 40GB (12 vCPU)やA100 80GB (12 vCPU)などの A100 シェイプを選択します。
省略可: 高度なランタイム、コンピュート、自動スケーリング、metastore、ネットワーク、セキュリティ、ライフサイクル、プロパティの詳細設定をカスタマイズするには、[追加構成] をクリックしてパネルを開きます。カスタマイズするカテゴリの横にある [編集] をクリックし、ペインで設定を構成して、[保存] をクリックします。
ランタイム構成: ランタイム識別子、Spark バージョン、コンテナ イメージ、ステージング バケット、Python Package Repository を構成します。
ランタイム プロファイル名: 必須。表示名から生成されたリソース ID をそのまま使用するか、カスタム ID を入力します。ID は 4 ~ 63 文字で、英小文字、数字、ハイフンのみを使用できます。先頭と末尾は英小文字または数字にする必要があります。ランタイム プロファイルの作成後に変更することはできません。
Spark ランタイム バージョン: 必須。サポートされている Managed Service for Apache Spark ランタイム バージョンを選択します。
カスタム Spark イメージ: 省略可。カスタム Java または Python の依存関係を含むカスタム コンテナ イメージの Artifact Registry または Container Registry URI を入力します。
ステージング バケット: 省略可。[参照] をクリックして、ワークロードの依存関係、ジョブドライバの出力、構成ファイルを保存する Cloud Storage ステージング バケットを選択または作成します。空のままにすると、Managed Service for Apache Spark がステージング バケットを自動的に管理します(概要では
Autoで示されます)。Python Package Repository: 省略可。Python パッケージをインストールするカスタム リポジトリの URI(
https://pypi.org/simpleなど)を入力します。空のままにすると、パッケージは Google が管理する PyPI プルスルー キャッシュ(デフォルトの概要)からインストールされます。
エグゼキュータとドライバの構成: コンピューティング ティア、ディスクティア、ディスクサイズ、個別のドライバ構成をカスタマイズします。
ティア: [プレミアム](オプションの [Lightning Engine を有効にしてパフォーマンスを高速化する] チェックボックスを含む)または [スタンダード] を選択します。
エグゼキュータ タイプ: 一般
High memoryまたはStandardマシンシェイプ、またはアクセラレータL4またはA100マシンシェイプを選択します。ディスクティア:
HDD (standard)またはSSD (premium)を選択します。HDD (standard)は CPU シェイプのデフォルトであり、スタンダード ティアで必要です。SSD (premium)は、シャッフルやスピルが頻繁に発生するワークロードのプレミアム ティアで使用できます。アクセラレーテッド GPU シェイプには必須です。ディスクサイズ: ディスクサイズ(GiB)を選択します。
HDD (standard)は、200 GiB~1500 GiBを 100 GiB 単位でサポートします。デフォルトは200 GiBです。SSD (premium)は375 GiB、750 GiB、1500 GiBをサポートしています。デフォルトは375 GiBです。ドライバに別の構成を使用する: 省略可。デフォルトでは、ドライバはエグゼキュータと同じマシンシェイプとディスク構成を使用します。ドライバ マシンタイプ、ドライバ ディスク階層、ドライバ ディスクサイズを個別にカスタマイズするには、このチェックボックスをオンにします。
自動スケーリング: ワークロードの需要に基づいてエグゼキュータをスケーリングするように動的リソース割り当てを構成します。
有効: デフォルトで選択されています。
spark.dynamicAllocation.enabledが設定されます。自動スケーリングを無効にするには、このチェックボックスをオフにします。初期エグゼキュータ数: エグゼキュータの初期数を入力します。これにより、
spark.dynamicAllocation.initialExecutorsが設定されます。デフォルトは5です。有効な値の範囲は、ランタイム バージョン2.3以前の場合は2~2000、ランタイム バージョン3.0以降の場合は0~2000です。最小エグゼキュータ数: エグゼキュータの最小数を入力します。これにより、
spark.dynamicAllocation.minExecutorsが設定されます。デフォルトは、ランタイム バージョン2.3以前の場合は2、ランタイム バージョン3.0以降の場合は0です。上限は2000です。最大エグゼキュータ数: エグゼキュータの最大数を入力します。これにより、
spark.dynamicAllocation.maxExecutorsが設定されます。デフォルトは1000で、許容される上限は2000です。
メタストアの構成: データセットのメタデータを管理するメタストアを選択します。
Lakehouse ランタイム カタログ: デフォルト。現在のプロジェクトでサーバーレスの Lakehouse ランタイム カタログ カタログを使用します。Iceberg REST エンドポイントはデフォルトで有効になっています。プロジェクト ID を指定し、既存のカタログ ID を選択するか、新しいカタログを定義できます。[Hive エンドポイント] チェックボックスをオンにして、Hive エンドポイントのプロジェクト ID、カタログ ID、カタログ名を指定することもできます。
Dataproc Metastore: マネージド Dataproc Metastore Hive Metastore(HMS)インスタンスをアタッチします。[選択したプロジェクト] でプロジェクトを選択し、[Metastore サービス] リストでサービス インスタンスを選択します。
なし: このランタイム プロファイルを使用するセッションの metastore 統合を無効にします。
ネットワークとセキュリティ: VPC ネットワーキング、実行認証情報、暗号鍵を構成します。
クラスタを接続する: [ネットワーク構成] で、 Google Cloud コンソールは、選択したリージョンで適格なネットワークまたはサブネットワークを自動的に選択します。選択したリージョンにデフォルト ネットワークがない場合は、[追加構成] が自動的に開き、デフォルト ネットワークが使用できないという警告が表示されます。この場合、[ネットワークを構成] をクリックして使用可能なサブネットワークを選択するまで、[作成] ボタンは無効のままになります。[このプロジェクトのネットワーク] を選択して、現在のプロジェクトのプライマリ ネットワークとサブネットワークを選択できます。または、[ホスト プロジェクトから共有されたネットワーク] を選択して、共有 VPC サブネットワークを選択します。選択したサブネットワークでプライベート Google アクセス(PGA)を有効にする必要があります。ネットワーク接続の要件については、サブネット接続を開くをご覧ください。オプションのネットワーク タグを入力して、ワークロード VM にファイアウォール ルールとルートを適用することもできます。
ノートブックの実行に使用するアカウント: デフォルトの [ユーザー アカウント] を選択して、エンドユーザーの認証情報を使用してノートブックを実行します。または、[サービス アカウント] を選択して、カスタム サービス アカウントでセッションを実行します。[サービス アカウント] を選択した場合は、[サービス アカウント] フィールドでサービス アカウントを指定する必要があります。
暗号化: デフォルトの [Google-owned and Google-managed encryption key] を選択するか、[Cloud KMS 鍵] を選択して、顧客管理の暗号鍵(CMEK)を使用してワークロード データを暗号化します。
セッションのライフサイクル: セッションの自動終了の上限を構成します。
最大アイドル時間: 省略可。[最大アイドル時間] に値を入力し、[最大アイドル時間の単位] で
seconds、minutes、hours、daysのいずれかを選択します。10 分~ 330 時間の範囲で、ノートブック セッションが自動的に終了するまでのアイドル時間を指定します。最大セッション時間: 省略可。[最大セッション時間の数量] を入力し、[最大セッション時間の単位] を
seconds、minutes、hours、daysのいずれかで選択します。10 分~ 330 時間の範囲で、セッションの最大存続時間を指定します。
その他のカスタマイズ: カスタム Spark プロパティとリソースラベルを追加します。
Spark プロパティ: 省略可。[プロパティを追加] をクリックし、カスタム Spark プロパティのキーと値のペアを入力します。フォームの専用フィールドで制御されるプロパティ(コンピューティング ティア、エグゼキュータとドライバのサイズ設定、Lightning Engine、
spark.dynamicAllocation.*、Lakehouse カタログ プロパティなど)は、これらのフィールドで管理され、自由形式のリストには表示されません。 Google Cloud コンソールでは、spark:接頭辞は含めないでください。ラベル: 省略可。[ラベルを追加] をクリックし、[キー] と [値] のペアを入力して、ランタイム プロファイルにラベルを適用します。
ページ右側の [概要] カードで構成の詳細を確認し、[料金の見積もり] カードで Data Compute Unit(DCU)の推定使用量を確認します。DCU 料金の詳細については、Managed Service for Apache Spark の料金をご覧ください。
[作成] をクリックします。
gcloud
gcloud CLI では、ランタイム プロファイルはセッション テンプレートとして管理されます。gcloud CLI の create コマンドを使用して Managed Service for Apache Spark ランタイム プロファイルを直接作成することはできませんが、gcloud beta dataproc session-templates import コマンドを使用して、YAML 構成ファイルからランタイム プロファイルを作成または更新できます。gcloud beta dataproc session-templates export コマンドを使用して、既存のランタイム プロファイルをエクスポートすることもできます。
REST
Managed Service for Apache Spark API では、ランタイム プロファイルは SessionTemplate リソースで表されます。Managed Service for Apache Spark の sessionTemplates.create API メソッドを使用して、Managed Service for Apache Spark ランタイム プロファイルを作成できます。次のリクエスト フィールドを構成します。
name: 必須。ランタイム プロファイルのリソース名。version: 省略可。セッションでサポートされている Spark ランタイム バージョン。バージョンを指定しない場合は、デフォルトのバージョンが使用されます。sessionConfig:jupyterSessionまたはsparkConnectSessionを指定します。jupyterSessionを指定する場合は、JupyterConfig.displayNameフィールドとJupyterConfig.kernelフィールドも指定します。Jupyter ノートブック セッションの詳細については、Managed Service for Apache Spark で Jupyter ノートブックを起動するをご覧ください。containerImage: 省略可。セッションに使用するカスタム コンテナ イメージ。properties: 省略可。Spark プロパティ名と値のマッピング。これには、ティア、エンジン、マシンシェイプ、ディスク、自動スケーリングのプロパティが含まれます。サポートされているプロパティの詳細については、Spark のプロパティをご覧ください。serviceAccount: 省略可。セッションの実行に使用するサービス アカウント。指定しない場合は、Compute Engine のデフォルトのサービス アカウントが使用されます。subnetworkUri: 省略可。セッション リージョン内のサブネットの名前。指定しない場合、Managed Service for Apache Spark はセッション リージョンのdefaultサブネットを使用します。Managed Service for Apache Spark は、サブネットでプライベート Google アクセス(PGA)を有効にします。ネットワーク接続の要件については、Managed Service for Apache Spark のネットワーク構成をご覧ください。