Cloud Data Fusion での Dataproc イメージ バージョンの変更

このページでは、Cloud Data Fusion インスタンスで使用される Dataproc のイメージのバージョンを変更する方法について説明します。

始める前に

Cloud Data Fusion インスタンスで、リアルタイム パイプラインとレプリケーション ジョブをすべて停止します。Dataproc イメージ バージョンの変更時にリアルタイム パイプラインまたはレプリケーションが実行されていると、パイプラインの実行に変更が適用されません。

リアルタイム パイプラインの場合、チェックポインティングを有効にしていれば、パイプラインの停止によりデータが失われることはありません。レプリケーション ジョブの場合、データベース ログが使用可能である限り、レプリケーション ジョブの停止と開始によりデータが失われることはありません。

Console

  1. Cloud Data Fusion の [インスタンス] ページ(CDAP で [View Instances] をクリック)に移動し、パイプラインの停止が必要なインスタンスを開きます。

    [インスタンス] に移動

  2. Pipeline Studio で各リアルタイム パイプラインを開き、[停止] をクリックします。

  3. [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 を確認してオーバーライドする

  1. Google Cloud Console で [インスタンス] ページ(CDAP で [View Instances] をクリック)に移動し、インスタンスを開きます。

    [インスタンス] に移動

  2. [System Admin] > [設定] > [System Preferences] の順にクリックします。

    システム環境設定の編集

  3. Dataproc イメージがシステム環境設定で指定されていない場合、または環境設定を変更する場合は、[Edit System Preferences] をクリックします。

    1. [キー] フィールドに次のテキストを入力します。

      system.profile.properties.imageVersion

    2. 1.5-debian10 などの目的の Dataproc イメージを [] フィールドに入力します。

    3. [保存して閉じる] をクリックします。

システムの環境設定

この変更は、インスタンスの Namespace、パイプライン、またはランタイム引数でイメージ バージョンのプロパティがオーバーライドされない限り、すべての Namespace とパイプラインの実行をはじめとする Cloud Data Fusion インスタンス全体に影響します。

名前空間またはパイプライン ランタイム引数で Dataproc のイメージのバージョンを変更する

Namespace の環境設定またはパイプライン ランタイム引数で Dataproc のイメージのバージョンをオーバーライドしていない場合は、この手順をスキップしてください。

Namespace の環境設定

Namespace のプロパティでイメージのバージョンをオーバーライドした場合は、次の手順を行います。

  1. Cloud Data Fusion UI でインスタンスを開きます。

  2. [System Admin] > [設定] > [名前空間] をクリックします。

  3. 各名前空間を開き、[設定] をクリックします。

    1. キー system.profile.properties.imageVersion が誤ったイメージ バージョンの値でオーバーライドされていないことを確認します。

    2. [完了] をクリックします。

パイプラインのランタイム引数

パイプラインのランタイム引数のプロパティでイメージのバージョンをオーバーライドしている場合は、次の操作を行います。

  1. Cloud Data Fusion UI でインスタンスを開きます。

  2. [パイプライン] > [List] をクリックし、目的のパイプラインを選択します。

    パイプラインが [Pipeline Studio] ページで開きます。

  3. [実行] の横にあるプルダウン メニュー をクリックします。

    [Runtime Arguments] ウィンドウが開きます。

  4. キー system.profile.properties.imageVersion がオーバーライドされておらず、イメージ バージョンの値が誤っていないことを確認してください。

  5. [保存] をクリックします。

    パイプラインのランタイム引数の設定

目的のイメージ バージョンの Cloud Data Fusion で使用される静的 Dataproc クラスタを再作成する

既存の Dataproc クラスタを Cloud Data Fusion で使用する場合は、Dataproc ガイドに沿って、Cloud Data Fusion のバージョンに望ましい Dataproc のイメージのバージョンを使用してクラスタを再作成します。

クラスタの再作成時に実行中のパイプラインがあると、そのパイプラインは失敗します。その後の実行は、再作成されたクラスタで実行されます。

また、目的の Dataproc イメージ バージョンで新しい Dataproc クラスタを作成し、同じコンピューティング プロファイル名と更新された Dataproc クラスタ名で Cloud Data Fusion のコンピューティング プロファイルを削除して再作成することもできます。このようにして、バッチ パイプラインの実行が既存のクラスタでの実行を完了でき、新しい Dataproc クラスタで新しいパイプラインが実行されます。すべてのパイプラインの実行が完了したことを確認したら、古い Dataproc クラスタを削除できます。

Dataproc のイメージのバージョンが更新されていることを確認する

Console

  1. Google Cloud Console で、Dataproc の [クラスタ] ページに移動します。

    クラスタに移動

  2. 新しいバージョンを指定すると、Cloud Data Fusion が作成した新しいクラスタの [クラスタの詳細] ページを開きます。

    [イメージのバージョン] フィールドに、Cloud Data Fusion で指定した新しい値が表示されます。

REST API

  1. メタデータを含むクラスタのリストを取得します。

    GET -H "Authorization: Bearer ${AUTH_TOKEN}" \
    https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION_ID/clusters
    

    次のように置き換えます。

    • NAMESPACE_ID は、名前空間の名前に置き換えます。
    • REGION_ID は、クラスタが配置されているリージョンの名前に置き換えます。
  2. パイプラインの名前(クラスタ名)を検索します。

  3. その JSON オブジェクトで、config > softwareConfig > imageVersion でイメージを確認します。