HDFS

HDFS コネクタを使用すると、HDFS データに対して挿入、削除、更新、読み取りの各アクションを実行できます。

サポート対象のバージョン

このコネクタは、HDFS Hadoop バージョン 3.4.0 をサポートしています。

始める前に

HDFS コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

コネクタを構成する

接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

  1. Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      サポートされているすべてのリージョンのリストについては、ロケーションをご覧ください。

    2. [NEXT] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [HDFS] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 49 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. 必要に応じて、Cloud Logging を有効にして、ログレベルを選択します。デフォルトのログレベルは Error に設定されています。
    6. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    7. パス: 作業ディレクトリとして使用する HDFS パスを指定します。
    8. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    9. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    10. [NEXT] をクリックします。
  5. [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
    1. 宛先の種類: 宛先の種類を選択します。
      • リストから [ホストアドレス] を選択し、宛先のホスト名または IP アドレスを指定します。
      • バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。

      セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

      他の宛先を入力するには、[+ 宛先を追加] をクリックします。

    2. [NEXT] をクリックします。
  6. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      HDFS 接続でサポートされる認証タイプは次のとおりです。

      • ユーザー名とパスワード

      これらの認証タイプの構成方法については、認証を構成するをご覧ください。

    2. [NEXT] をクリックします。
  7. Review: 接続と認証の詳細を確認します。
  8. [作成] をクリックします。

認証を構成する

使用する認証に基づいて詳細を入力します。

  • ユーザー名とパスワード
    • ユーザー名: HDFS 接続に使用するユーザー名を入力します。
    • パスワード : ユーザー名に関連付けられたパスワードを含む Secret Manager の Secret を入力します。
    • シークレット バージョン: 上で選択したシークレットのシークレット バージョンを選択します。

接続構成のサンプル

このセクションでは、接続を作成するときに構成するさまざまなフィールドのサンプル値を示します。

ユーザー名とパスワードの接続タイプ

フィールド名 詳細
ロケーション europe-west1
コネクタ HDFS
コネクタのバージョン 1
接続名 hdfs-v24-new
サービス アカウント my-service-account@my-project.iam.gserviceaccount.com
ノードの最小数 2
ノードの最大数 2
宛先の種類 ホストアドレス
ホスト 10.128.0.
port1 10000
ユーザー名 ユーザー 1
パスワード パスワード
シークレット バージョン 1

統合で HDFS 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

操作

このセクションでは、このコネクタでアクションの一部を実行する方法について説明します。

MakeDirectory アクション

このアクションにより、指定されたパスにディレクトリが作成されます。

MakeDirectory アクションの入力パラメータ

パラメータ名 データ型 必須 説明
権限 文字列 誤り 新しいディレクトリを作成する権限。
パス 文字列 正しい 新しいディレクトリのパス。

MakeDirectory アクションの構成例については、をご覧ください。

ListStatus アクション

このアクションは、指定されたパスの内容を一覧表示します。

ListStatus アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。

ListStatus アクションの構成方法の例については、をご覧ください。

GetHomeDirectory アクション

このアクションは、現在のユーザーのホーム ディレクトリを取得します。

GetHomeDirectory アクションの入力パラメータ

パラメータ名 データ型 必須 説明
connectorInputPayload JSON 正しい コネクタの入力ペイロード。

GetHomeDirectory アクションの構成例については、をご覧ください。

DeleteFile アクション

このアクションにより、ファイルまたはディレクトリが削除されます。

DeleteFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
Recursive ブール値 誤り フォルダのサブフォルダを削除するかどうかを指定します。

DeleteFile アクションの構成例については、をご覧ください。

GetContentSummary アクション

このアクションは、ファイルまたはフォルダのコンテンツの概要を取得します。

GetContentSummary アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルまたはフォルダのパス。

GetContentSummary アクションの構成例については、をご覧ください。

RenameFile アクション

このアクションにより、ファイルまたはディレクトリの名前を変更します。

RenameFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
destination 文字列 正しい ファイルの新しい名前とパスを指定します。

RenameFile アクションの構成方法の例については、をご覧ください。

SetPermission アクション

このアクションは、パスの権限を設定します。

SetPermission アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
権限 文字列 正しい 8 進数(8 基数)で Unix 権限を指定します。

SetPermission アクションの構成方法の例については、をご覧ください。

SetPermission アクション

このアクションは、パスの権限を設定します。

SetPermission アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
権限 文字列 正しい Unix 権限を 8 進数(8 進)で指定します。

SetPermission アクションの構成例については、をご覧ください。

SetOwner アクション

このアクションは、パスのオーナーとグループを設定します。

SetOwner アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
オーナー 文字列 正しい パスの新しいオーナー。
グループ 文字列 誤り 新しいグループの名前。

SetOwner アクションの構成方法の例については、をご覧ください。

UploadFile アクション

このアクションはファイルをアップロードします。

UploadFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
コンテンツ 文字列 正しい アップロードされたファイルの内容。

UploadFile アクションの構成方法の例については、をご覧ください。

DownloadFile アクション

このアクションにより、ファイルをダウンロードします。

DownloadFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
WriteToFile 文字列 誤り 出力が書き込まれるファイルのローカル ロケーション。

DownloadFile アクションの構成方法の例については、をご覧ください。

AppendToFile アクション

このアクションはファイルを追加します。

AppendToFile アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。
コンテンツ 文字列 正しい ファイルに追加するコンテンツ。

AppendToFile アクションの構成方法の例については、をご覧ください。

GetFileChecksum アクション

このアクションは、ファイルのチェックサムを取得します。

GetFileChecksum アクションの入力パラメータ

パラメータ名 データ型 必須 説明
パス 文字列 正しい ファイルのパス。

GetFileChecksum アクションの構成方法の例については、をご覧ください。

アクションの例

このセクションでは、このコネクタでアクションの例を実行する方法について説明します。

例 - ディレクトリを作成する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [MakeDirectory] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ホーム ディレクトリを取得する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [GetHomeDirectory] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
      {}
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Path": "/user/hduser"
    }]
    

例 - ファイルを削除する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [DeleteFile] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser/testFile"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ファイルのステータスを一覧表示する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [ListStatus] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "path": "/user/hduser/deletefile"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "fileId": 16471.0,
      "PathSuffix": "data.txt",
      "owner": "hduser",
      "group": "supergroup",
      "length": 38.0,
      "permission": "644",
      "replication": 1.0,
      "storagePolicy": 0.0,
      "childrenNum": 0.0,
      "blockSize": 1.34217728E8,
      "modificationTime": "2024-08-16 16:12:01.921",
      "accessTime": "2024-08-16 16:12:01.888",
      "type": "FILE"
    }, {
      "fileId": 16469.0,
      "PathSuffix": "file2.txt",
      "owner": "hduser",
      "group": "supergroup",
      "length": 53.0,
      "permission": "644",
      "replication": 1.0,
      "storagePolicy": 0.0,
      "childrenNum": 0.0,
      "blockSize": 1.34217728E8,
      "modificationTime": "2024-08-16 16:12:01.762",
      "accessTime": "2024-08-16 16:12:01.447",
      "type": "FILE"
    }]
    

例 - ファイルのコンテンツの概要を取得する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [GetContentSummary] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser/appendtofile"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

      [{
      "DirectoryCount": "1",
      "FileCount": "1",
      "Length": 52.0,
      "Quota": -1.0,
      "SpaceConsumed": 52.0,
      "SpaceQuota": -1.0,
      "ecpolicy": "",
      "snapshotdirectorycount": "0",
      "snapshotfilecount": "0",
      "snapshotlength": "0",
      "snapshotspaceconsumed": "0"
    }]
    

例 - ファイル名を変更する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [hdfs_RenameFile_action] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser/renamefile_second/file1.txt",
      "Destination": "/user/hduser/renamefile_second/file1rename"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ファイルの権限を設定する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [SetPermission] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser/gcpdirectory",
      "Permission": "777"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ファイルのオーナーを設定する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [SetOwner] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    {
      "Path": "/user/hduser/gcpdirectory",
      "Owner": "newowner"
    }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ファイルをアップロードする

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [UploadFile] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
       { "Path": "/user/newfile9087.txt", "Content": "string" }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [{
      "Success": true
    }]
    

例 - ファイルをダウンロードする

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [DownloadFile] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    { "Path": "/user/sampleFile/file1.txt" }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [ { "Output": "This is sample File\nfor this testing\ncontent" } ]
    

例 - ファイルを追加する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [AppendToFile ] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    { "Path": "/user/sampleFile/file1.txt", "Content": "content" }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [ { "Success": true } ]
    

例 - ファイルのチェックサムを取得する

  1. [Configure connector task] ダイアログで、[Actions] をクリックします。
  2. [GetFileChecksum ] アクションを選択してから、[完了] をクリックします。
  3. [データ マッピング] セクションで Open Data Mapping Editor をクリックし、Input フィールドに次のような値を入力します。
    { "Path": "/user/sampleFile/file1.txt" }
    
  4. アクションが成功すると、コネクタタスクの connectorOutputPayload レスポンス パラメータの値は次のようになります。

    [ { "Algorithm": "MD5-of-0MD5-of-512CRC32C", "Bytes": "00000200000000000000000080f5b53ae8c165ae56e86109b8bb2a1700000000", "Length": 28 } ]
    

エンティティ オペレーションの例

このセクションでは、このコネクタでエンティティ オペレーションの一部を実行する方法について説明します。

例 - すべてのファイルのデータを一覧表示する

この例では、Files エンティティ内のすべてのファイルのデータを取り込みます。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から Object を選択します。
  3. [List] オペレーションを選択してから、[完了] をクリックします。

例 - 権限のデータを取得する

この例では、Permission エンティティから、指定した ID の権限のデータを取得します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から Permission を選択します。
  3. [Get] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタタスクの [タスク入力 セクションで [entityId] をクリックし、[デフォルト値] フィールドに /user/hduser/appendfile を入力します。

    ここで、/user/hduser/appendfilePermission エンティティ内の一意の ID です。

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ