このページでは、Cloud Data Fusion インスタンスで使用される Dataproc のイメージのバージョンを変更する方法について説明します。イメージは、インスタンス、名前空間、パイプラインのレベルで変更できます。
始める前に
Cloud Data Fusion インスタンスで、リアルタイム パイプラインとレプリケーション ジョブをすべて停止します。Dataproc イメージ バージョンの変更時にリアルタイム パイプラインまたはレプリケーションが実行されていると、パイプラインの実行に変更が適用されません。
リアルタイム パイプラインの場合、チェックポインティングを有効にしていれば、パイプラインの停止によりデータが失われることはありません。レプリケーション ジョブの場合、データベース ログが使用可能である限り、レプリケーション ジョブの停止と開始によりデータが失われることはありません。
Console
Cloud Data Fusion の [インスタンス] ページに移動し、パイプラインの停止が必要なインスタンスを開きます。
Pipeline Studio で各リアルタイム パイプラインを開き、[停止] をクリックします。
[Replicate] ページで各レプリケーション ジョブを開き、[停止] をクリックします。
REST API
すべてのパイプラインを取得するには、次の REST API 呼び出しを使用します。
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps"
NAMESPACE_ID
は、名前空間の名前に置き換えます。リアルタイム パイプラインを停止するには、次の REST API 呼び出しを使用します。
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/PIPELINE_NAME/spark/DataStreamsSparkStreaming/stop"
NAMESPACE_ID を名前空間の名前に、PIPELINE_NAME をリアルタイム パイプラインの名前に置き換えます。
レプリケーション ジョブを停止するには、次の REST API 呼び出しを使用します。
POST -H "Authorization: Bearer ${AUTH_TOKEN}" \ "${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/apps/REPLICATION_JOB_NAME/workers/DeltaWorker/stop"
NAMESPACE_ID を名前空間の名前に置き換え、REPLICATION_JOB_NAME をレプリケーション ジョブの名前に置き換えます。
詳細については、リアルタイム パイプラインの停止とレプリケーション ジョブの停止をご覧ください。
Cloud Data Fusion でデフォルトのバージョンの Dataproc を確認してオーバーライドする
[System Admin] > [設定] > [System Preferences] の順にクリックします。
Dataproc イメージがシステム環境設定で指定されていない場合、または環境設定を変更する場合は、[Edit System Preferences] をクリックします。
[キー] フィールドに次のテキストを入力します。
system.profile.properties.imageVersion
2.1
などの選択した Dataproc イメージを [値] フィールドに入力します。[保存して閉じる] をクリックします。
この変更は、インスタンスの Namespace、パイプライン、またはランタイム引数でイメージ バージョンのプロパティがオーバーライドされない限り、すべての Namespace とパイプラインの実行をはじめとする Cloud Data Fusion インスタンス全体に影響します。
Dataproc イメージ バージョンを変更する
イメージのバージョンは、Cloud Data Fusion ウェブ インターフェースの [コンピューティングの構成]、[名前空間の環境設定]、または [パイプライン ランタイム引数] で設定できます。
Namespace の環境設定でイメージを変更する
Namespace のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。
[System Admin] > [設定] > [名前空間] をクリックします。
各名前空間を開き、[環境設定] をクリックします。
キー
system.profile.properties.imageVersion
が誤ったイメージ バージョンの値でオーバーライドされていないことを確認します。[完了] をクリックします。
システム コンピューティング プロファイルでイメージを変更する
[システム管理者] > [構成] をクリックします。
システムの [コンピューティング プロファイル] > [新しいプロファイルを作成] をクリックします。
Dataproc プロビジョナーを選択します。
Dataproc のプロファイルを作成します。[イメージ バージョン] フィールドに、Dataproc イメージ バージョンを入力します。
このコンピューティング プロファイルは、[Studio] ページでパイプラインを実行するときに選択します。パイプラインの実行ページで、[構成] > [コンピューティング構成] をクリックし、このプロファイルを選択します。
Dataproc プロファイルを選択し、[保存] をクリックします。
[完了] をクリックします。
パイプラインのランタイム引数でイメージを変更する
パイプラインのランタイム引数のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。
メニュー [メニュー] > [リスト] をクリックします。
[リスト] ページで、更新するパイプラインを選択します。
パイプラインが [Studio] ページで開きます。
[実行] オプションを開くには、
展開矢印をクリックします。[ランタイム引数] ウィンドウが開きます。
キー
system.profile.properties.imageVersion
が誤ったイメージ バージョンの値でオーバーライドされていないことを確認します。[保存] をクリックします。
Cloud Data Fusion で使用されている Dataproc の静的クラスタを、選択したイメージのバージョンで再作成する
既存の Dataproc クラスタを Cloud Data Fusion で使用する場合は、Dataproc ガイドに沿って、Cloud Data Fusion のバージョンに選択した Dataproc のイメージのバージョンを使用してクラスタを再作成します。
また、選択した Dataproc イメージ バージョンで新しい Dataproc クラスタを作成し、同じコンピューティング プロファイル名と更新された Dataproc クラスタ名で Cloud Data Fusion のコンピューティング プロファイルを削除して再作成することもできます。このようにして、バッチ パイプラインの実行が既存のクラスタでの実行を完了でき、新しい Dataproc クラスタで新しいパイプラインが実行されます。すべてのパイプラインの実行が完了したことを確認したら、古い Dataproc クラスタを削除できます。
Dataproc のイメージのバージョンが更新されていることを確認する
Console
Google Cloud Console で、Dataproc の [クラスタ] ページに移動します。
新しいバージョンを指定すると、Cloud Data Fusion が作成した新しいクラスタの [クラスタの詳細] ページを開きます。
[イメージ バージョン] フィールドには、Cloud Data Fusion で指定した新しい値が設定されています。
REST API
メタデータを含むクラスタのリストを取得します。
GET -H "Authorization: Bearer ${AUTH_TOKEN}" \ https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clusters
以下を置き換えます。
PROJECT_ID
は、名前空間の名前に置き換えます。REGION_ID
は、クラスタが配置されているリージョンの名前に置き換えます。
パイプラインの名前(クラスタ名)を検索します。
その JSON オブジェクトで、
config > softwareConfig > imageVersion
でイメージを確認します。
Dataproc イメージをバージョン 2.2 または 2.1 に変更する
Cloud Data Fusion バージョン 6.9.1 以降では、Java 11 で実行される Dataproc イメージ 2.1 Compute Engine がサポートされています。 バージョン 6.10.0 以降では、イメージ 2.1 がデフォルトです。
以前のイメージからイメージ 2.2 または 2.1 に変更する場合、バッチ パイプラインとレプリケーション ジョブが成功するには、これらのインスタンスでデータベース プラグインが使用する JDBC ドライバが Java 11 と互換性がある必要があります。
Dataproc イメージ 2.2 と 2.1 には、Cloud Data Fusion で次の制限があります。
- MapReduce ジョブはサポートされていません。
- インスタンスのデータベース プラグインで使用される JDBC ドライバのバージョンを更新して、Java 11 をサポートする必要があります。Dataproc 2.2、2.1、Java 11 で動作するドライバ バージョンについては、次の表をご覧ください。
JDBC ドライバ | Cloud Data Fusion 6.9.1 から削除された以前のバージョン | Dataproc 2.2、2.1、2.0 で動作する Java 8 と Java 11 のサポート対象バージョン |
---|---|---|
Cloud SQL for MySQL JDBC ドライバ | - | 1.0.16 |
Cloud SQL for PostgreSQL JDBC ドライバ | - | 1.0.16 |
Microsoft SQL Server JDBC ドライバ | Microsoft JDBC ドライバ 6.0 | Microsoft JDBC ドライバ 9.4 |
MySQL JDBC ドライバ | 5.0.8, 5.1.39 | 8.0.25 |
PostgreSQL JDBC ドライバ | 9.4.1211.jre7、9.4.1211.jre8 | 42.6.0.jre8 |
Oracle JDBC ドライバ | ojdbc7 | ojdbc8(12c 以降) |
Dataproc 2.2 または 2.1 を使用した場合のメモリ使用量
Dataproc 2.2 クラスタまたは 2.1 クラスタを使用するパイプラインでは、メモリ使用量が増加する可能性があります。インスタンスをバージョン 6.10 以降にアップグレードし、メモリの問題が原因で以前のパイプラインが失敗した場合は、パイプラインの Resources
構成のドライバとエグゼキュータのメモリを 2,048 MB に増やします。
または、system.profile.properties.imageVersion
ランタイム引数を 2.0-debian10
に設定して、Dataproc バージョンをオーバーライドすることもできます。