このページでは、既存の Dataproc クラスタに対して Cloud Data Fusion でパイプラインを実行する方法について説明します。
デフォルトでは、Cloud Data Fusion はパイプラインごとにエフェメラル クラスタを作成します。パイプライン実行の開始時点でクラスタを作成し、パイプラインの実行が完了した後に削除します。この動作では、必要な場合にのみリソースが作成されるようにすることでコストを抑えられますが、次の状況では、このデフォルトの動作が望ましくない場合があります。
すべてのパイプライン用の新しいクラスタの作成にかかる時間が、ユースケースに適していない場合。
組織でクラスタを集中管理する必要がある場合。たとえば、すべての Dataproc クラスタに特定のポリシーを適用したい場合などです。
このような場合は、次の手順で既存のクラスタに対してパイプラインを実行します。バージョン 6.2.1 以降では手順が簡略化されています。
始める前に
必要なもの:
Cloud Data Fusion インスタンス。
既存の Dataproc クラスタ。
Cloud Data Fusion バージョン 6.2.x でパイプラインを実行する場合は、Hadoop 2.x で実行される古い Dataproc イメージ(1.5-debian10 など)を使用するか、Cloud Data Fusion の最新バージョンにアップグレードします。
バージョン 6.2.1 以上
既存のクラスタへの接続
Cloud Data Fusion バージョン 6.2.1 以降では、新しい Compute Engine プロファイルを作成するときに既存の Dataproc クラスタに接続できます。
Google Cloud Console で、Cloud Data Fusion の [Instances] ページに移動します。
[インスタンスの表示] をクリックします。
[System Admin] をクリックします。
[Configuration] タブをクリックします。
[System Compute Profiles] ボックスを展開します。
[Create New Profile] をクリックします。 プロビジョナーのページが開きます。
[既存の Dataproc] をクリックします。
必要なプロファイル、クラスタ、モニタリングの情報を入力します。
[作成] をクリックします。
カスタム プロファイルを使用するようにパイプラインを構成する
Pipeline Studio で、[Configure] をクリックします。
[Compute config] をクリックします。
作成したプロファイルをクリックします。
パイプラインを実行します。既存の Dataproc クラスタに対して実行されるようになります。
6.2.1 より前のバージョン
Dataproc クラスタで SSH を設定する
Google Cloud Console で、Dataproc の [クラスタ] ページに移動します。
クラスタ名をクリックします。クラスタの詳細ページが開きます。
[VM インスタンス] タブをクリックし、[SSH] ボタンをクリックして Dataproc マスター VM に接続します。
次のコマンドを実行して、新しい SSH 認証鍵を作成します。
ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/KEY_FILENAME -C USERNAME
次の 2 つのファイルが作成されます。
~/.ssh/KEY_FILENAME
(秘密鍵)~/.ssh/KEY_FILENAME.pub
(公開鍵)
SSH 公開鍵全体をコピーします。鍵を読み取り可能な形式で表示するには、次のコマンドを実行します。
cat ~/.ssh/KEY_FILENAME.pub
Compute Engine の [メタデータ] ページを開き、[SSH 認証鍵] タブを選択してから、[編集] をクリックします。
[項目を追加] をクリックします。
表示されるテキスト ボックスに、先ほどコピーした公開鍵を貼り付けます。
[保存] をクリックします。
インスタンスのカスタム システム コンピューティング プロファイルの作成
Google Cloud Console で、Cloud Data Fusion の [Instances] ページに移動します。
[インスタンスの表示] をクリックします。
[System Admin] をクリックします。
[Configuration] タブをクリックします。
[System Compute Profiles] ボックスを展開します。
[Create New Profile] をクリックします。 プロビジョナーのページが開きます。
[リモート Hadoop プロビジョナー] をクリックします。
[リモート Hadoop プロビジョナーのプロファイルの作成] ページで、SSH 情報を含むプロファイル情報を入力します。
- ホスト: マスターノードの SSH ホスト IP 情報は Compute Engine の [VM インスタンス] ページの詳細で確認できます。
- ユーザー: SSH 認証鍵の作成時に指定したユーザー名。
- SSH 秘密鍵: 前に作成した SSH 秘密鍵を貼り付けます。鍵コンテンツを読み取り可能な形式で表示するには、次のコマンドを使用します。
cat ~/.ssh/KEY_FILENAME
コピーしたコメントに、最初と最後のコメントを入れます。
[作成] をクリックします。
カスタム プロファイルを使用するようにパイプラインを構成する
Pipeline Studio で、[Configure] をクリックします。
[Compute config] をクリックします。
作成したプロファイルをクリックします。
パイプラインを実行します。既存の 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
に設定します。