このページでは、Cloud Data Fusion インスタンスで使用される Dataproc のイメージのバージョンを変更する方法について説明します。
始める前に
Cloud Data Fusion インスタンスで、リアルタイム パイプラインとレプリケーション ジョブをすべて停止します。Dataproc イメージ バージョンの変更時にリアルタイム パイプラインまたはレプリケーションが実行されていると、パイプラインの実行に変更が適用されません。
リアルタイム パイプラインの場合、チェックポインティングを有効にしていれば、パイプラインの停止によりデータが失われることはありません。レプリケーション ジョブの場合、データベース ログが使用可能である限り、レプリケーション ジョブの停止と開始によりデータが失われることはありません。
Console
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 を確認してオーバーライドする
Google Cloud Console で [インスタンス] ページ(CDAP で [View Instances] をクリック)に移動し、インスタンスを開きます。
[System Admin] > [設定] > [System Preferences] の順にクリックします。
Dataproc イメージがシステム環境設定で指定されていない場合、または環境設定を変更する場合は、[Edit System Preferences] をクリックします。
[キー] フィールドに次のテキストを入力します。
system.profile.properties.imageVersion
1.5-debian10
などの目的の Dataproc イメージを [値] フィールドに入力します。[保存して閉じる] をクリックします。
この変更は、インスタンスの Namespace、パイプライン、またはランタイム引数でイメージ バージョンのプロパティがオーバーライドされない限り、すべての Namespace とパイプラインの実行をはじめとする Cloud Data Fusion インスタンス全体に影響します。
名前空間またはパイプライン ランタイム引数で Dataproc のイメージのバージョンを変更する
Namespace の環境設定またはパイプライン ランタイム引数で Dataproc のイメージのバージョンをオーバーライドしていない場合は、この手順をスキップしてください。
Namespace の環境設定
Namespace のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。
Cloud Data Fusion UI でインスタンスを開きます。
[System Admin] > [設定] > [名前空間] をクリックします。
各名前空間を開き、[設定] をクリックします。
キー
system.profile.properties.imageVersion
が誤ったイメージ バージョンの値でオーバーライドされていないことを確認します。[完了] をクリックします。
パイプラインのランタイム引数
パイプラインのランタイム引数のプロパティでイメージのバージョンをオーバーライドしている場合は、次の操作を行います。
Cloud Data Fusion UI でインスタンスを開きます。
> [List] をクリックし、目的のパイプラインを選択します。
[パイプライン]パイプラインが [Pipeline Studio] ページで開きます。
[実行] の横にあるプルダウン メニュー
をクリックします。[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
次のように置き換えます。
NAMESPACE_ID
は、名前空間の名前に置き換えます。REGION_ID
は、クラスタが配置されているリージョンの名前に置き換えます。
パイプラインの名前(クラスタ名)を検索します。
その JSON オブジェクトで、
config > softwareConfig > imageVersion
でイメージを確認します。