既存の Dataproc クラスタに対してパイプラインを実行する

このページでは、既存の Dataproc クラスタに対して Cloud Data Fusion でパイプラインを実行する方法について説明します。

デフォルトでは、Cloud Data Fusion はパイプラインごとにエフェメラル クラスタを作成します。パイプライン実行の開始時点でクラスタを作成し、パイプラインの実行が完了した後に削除します。この動作では、必要な場合にのみリソースが作成されるようにすることでコストを抑えられますが、次の状況では、このデフォルトの動作が望ましくない場合があります。

  • すべてのパイプライン用の新しいクラスタの作成にかかる時間が、ユースケースに適していない場合。

  • 組織でクラスタを集中管理する必要がある場合。たとえば、すべての Dataproc クラスタに特定のポリシーを適用したい場合などです。

このような場合は、次の手順で既存のクラスタに対してパイプラインを実行します。バージョン 6.2.1 以降では手順が簡略化されています。

始める前に

必要なもの:

バージョン 6.2.1 以上

既存のクラスタへの接続

Cloud Data Fusion バージョン 6.2.1 以降では、新しい Compute Engine プロファイルを作成するときに既存の Dataproc クラスタに接続できます。

  1. Google Cloud Console で、Cloud Data Fusion の [Instances] ページに移動します。

    [インスタンス] に移動

  2. [インスタンスの表示] をクリックします。

  3. [System Admin] をクリックします。

  4. [Configuration] タブをクリックします。

  5. [System Compute Profiles] ボックスを展開します。

  6. [Create New Profile] をクリックします。 プロビジョナーのページが開きます。

  7. [既存の Dataproc] をクリックします。

  8. 必要なプロファイル、クラスタ、モニタリングの情報を入力します。

  9. [作成] をクリックします。

カスタム プロファイルを使用するようにパイプラインを構成する

  1. Pipeline Studio で、[Configure] をクリックします。

  2. [Compute config] をクリックします。

  3. 作成したプロファイルをクリックします。

    使用するカスタム プロファイル
  4. パイプラインを実行します。既存の Dataproc クラスタに対して実行されるようになります。

6.2.1 より前のバージョン

Dataproc クラスタで SSH を設定する

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

    クラスタに移動

  2. クラスタ名をクリックします。クラスタの詳細ページが開きます。

  3. [VM インスタンス] タブをクリックし、[SSH] ボタンをクリックして Dataproc マスター VM に接続します。

  4. 次のコマンドを実行して、新しい SSH 認証鍵を作成します。

    ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/KEY_FILENAME -C USERNAME
    

    次の 2 つのファイルが作成されます。

    • ~/.ssh/KEY_FILENAME (秘密鍵)
    • ~/.ssh/KEY_FILENAME.pub (公開鍵)
  5. SSH 公開鍵全体をコピーします。鍵を読み取り可能な形式で表示するには、次のコマンドを実行します。

    cat  ~/.ssh/KEY_FILENAME.pub
    

  6. Compute Engine の [メタデータ] ページを開き、[SSH 認証鍵] タブを選択してから、[編集] をクリックします。

  7. [項目を追加] をクリックします。

  8. 表示されるテキスト ボックスに、先ほどコピーした公開鍵を貼り付けます。

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

インスタンスのカスタム システム コンピューティング プロファイルの作成

  1. Google Cloud Console で、Cloud Data Fusion の [Instances] ページに移動します。

    [インスタンス] に移動

  2. [インスタンスの表示] をクリックします。

  3. [System Admin] をクリックします。

  4. [Configuration] タブをクリックします。

  5. [System Compute Profiles] ボックスを展開します。

  6. [Create New Profile] をクリックします。 プロビジョナーのページが開きます。

  7. [リモート Hadoop プロビジョナー] をクリックします。

  8. [リモート Hadoop プロビジョナーのプロファイルの作成] ページで、SSH 情報を含むプロファイル情報を入力します。

    • ホスト: マスターノードの SSH ホスト IP 情報は Compute Engine の [VM インスタンス] ページの詳細で確認できます。
    マスターノードの IP の確認
    • ユーザー: SSH 認証鍵の作成時に指定したユーザー名。
    • SSH 秘密鍵: 前に作成した SSH 秘密鍵を貼り付けます。鍵コンテンツを読み取り可能な形式で表示するには、次のコマンドを使用します。
       cat  ~/.ssh/KEY_FILENAME 

    コピーしたコメントに、最初と最後のコメントを入れます。

  9. [作成] をクリックします。

カスタム プロファイルを使用するようにパイプラインを構成する

  1. Pipeline Studio で、[Configure] をクリックします。

  2. [Compute config] をクリックします。

  3. 作成したプロファイルをクリックします。

    使用するカスタム プロファイル
  4. パイプラインを実行します。既存の Dataproc クラスタに対して実行されるようになります。

トラブルシューティング

  • パイプラインが接続タイムアウトで失敗した場合は、SSH 認証鍵とファイア ウォール ルールが正しく構成されていることを確認します。

  • パイプラインの実行中に invalid privatekey エラーが発生した場合は、秘密鍵の最初の行が ----BEGIN OPENSSH PRIVATE KEY----- のようになっているかどうかを確認してください。そうであれば、RSA タイプの鍵ペアを生成してみてください。

    ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/KEY_FILENAME -C USERNAME
    
  • パイプライン java.io.IOException:com.jcraft.jsch.JSchException: Auth fail からエラーが表示された場合は、次の手順を行います。

    • SSH 認証鍵を使用してターゲット Dataproc ノードに手動で接続し、SSH 認証鍵を検証します。
    • コマンドラインから SSH で VM に手動で接続していて、秘密鍵は機能するが、同じ設定で JSch から Auth failed 例外が生成された場合は、OS Login が有効になっていないことを確認します。Compute Engine UI の左側のメニューで [メタデータ] をクリックしてから、[メタデータ] タブをクリックします。osLogin キーを削除するか、FALSE に設定します。