このページでは、Cloud Data Fusion インスタンスで使用される Dataproc のイメージのバージョンを変更する方法について説明します。イメージは、インスタンス レベル、名前空間レベル、パイプライン レベルで変更できます。
始める前に
Cloud Data Fusion インスタンスで、リアルタイム パイプラインとレプリケーション ジョブをすべて停止します。Dataproc イメージ バージョンの変更時にリアルタイム パイプラインまたはレプリケーションが実行されていると、パイプラインの実行に変更が適用されません。
リアルタイム パイプラインの場合、チェックポインティングを有効にしていれば、パイプラインの停止によりデータが失われることはありません。レプリケーション ジョブの場合、データベース ログが使用可能である限り、レプリケーション ジョブの停止と開始によりデータが失われることはありません。
コンソール
Cloud Data Fusion の [インスタンス] ページ(CDAP で [View Instances] をクリック)に移動し、パイプラインの停止が必要なインスタンスを開きます。
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 ウェブ インターフェースの [Compute Configurations]、[Namespace の環境設定]、または [パイプライン ランタイム引数] で設定できます。
Namespace の環境設定でイメージを変更する
Namespace のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。
[System Admin] > [設定] > [名前空間] をクリックします。
各名前空間を開き、[Preferences] をクリックします。
キー
system.profile.properties.imageVersion
が誤ったイメージ バージョンの値でオーバーライドされていないことを確認します。[完了] をクリックします。
システム コンピューティング プロファイルでイメージを変更する
[System Admin] > [設定] をクリックします。
システム [コンピューティング プロファイル] > [新しいプロファイルを作成] をクリックします。
[Dataproc] プロビジョナーを選択します。
Dataproc のプロファイルを作成します。[イメージのバージョン] フィールドに、Dataproc イメージのバージョンを入力します。
[Studio] ページでパイプラインの実行中に、このコンピューティング プロファイルを選択します。パイプライン実行ページで、[構成] > [Compute 構成] をクリックし、このプロファイルを選択します。
Dataproc プロファイルを選択し、[保存] をクリックします。
[完了] をクリックします。
パイプラインのランタイム引数でイメージを変更する
パイプラインのランタイム引数のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。
> [リスト] をクリックします。
[メニュー][リスト] ページで、更新するパイプラインを選択します。
パイプラインが [Studio] ページで開きます。
[Run] オプションを展開するには、
展開矢印をクリックします。[Runtime Arguments] ウィンドウが開きます。
キー
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.1 に変更する
Cloud Data Fusion バージョン 6.9.1 以降では、Java 11 で実行される Dataproc イメージ 2.1 Compute Engine がサポートされています。 バージョン 6.10.0 以降では、イメージ 2.1 がデフォルトです。
イメージ 2.1 に変更する場合、バッチ パイプラインとレプリケーション ジョブを成功させるには、データベース プラグインがそれらのインスタンスで使用する JDBC ドライバが Java 11 と互換性がある必要があります。
Dataproc イメージ 2.1 には、Cloud Data Fusion に次の制限があります。
- IBM Netezza および DB2 11 JDBC ドライバはサポートされていません。
- イメージ 2.1 は MapReduce ジョブでは動作しません。
- インスタンスのデータベース プラグインで使用される JDBC ドライバのバージョンは、Java 11 をサポートするように更新する必要があります。Dataproc 2.1 と Java 11 で動作するドライバ バージョンについては、次の表をご覧ください。
JDBC ドライバ | Cloud Data Fusion 6.9.1 から削除された以前のバージョン | Dataproc 2.0 または 2.1 で動作する Java 8 と Java 11 でサポートされているバージョン |
---|---|---|
Cloud SQL for MySQL JDBC ドライバ | - | 1.0.16 |
Cloud SQL for PostgreSQL JDBC ドライバ | - | 1.0.16 |
DB2 11 JDBC ドライバ | - | - |
Microsoft SQL Server JDBC ドライバ | Microsoft JDBC ドライバ 6.0 | Microsoft JDBC ドライバ 9.4 |
MySQL JDBC ドライバ | 5.0.8, 5.1.39 | 8.0.25 |
IBM Netezza JDBC ドライバ | - | - |
PostgreSQL JDBC ドライバ | 9.4.1211.jre7、9.4.1211.jre8 | 42.6.0.jre8 |
Oracle JDBC ドライバ | ojdbc7 | ojdbc8(12c 以上) |
Dataproc 2.1 使用時のメモリ使用量
Dataproc 2.1 クラスタを使用するパイプラインでは、メモリ使用量が増加することがあります。インスタンスをバージョン 6.10.0 以降にアップグレードし、メモリの問題が原因で以前のパイプラインが失敗した場合は、パイプラインの Resources
構成のドライバとエグゼキュータのメモリを 2,048 MB に増やします。
あるいは、system.profile.properties.imageVersion
ランタイム引数を 2.0-debian10
に設定して Dataproc のバージョンをオーバーライドすることもできます。