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. 点击下一步
  4. 连接详情部分中,完成以下操作:
    1. 连接器:从可用连接器的下拉列表中选择 HDFS
    2. 连接器版本:从可用版本的下拉列表中选择一个连接器版本。
    3. 连接名称字段中,输入连接实例的名称。

      连接名称必须符合以下条件:

      • 连接名称可以使用字母、数字或连字符。
      • 字母必须小写。
      • 连接名称必须以字母开头,以字母或数字结尾。
      • 连接名称不能超过 49 个字符。
    4. (可选)输入连接实例的说明
    5. 您可以选择启用 Cloud Logging,然后选择日志级别。默认情况下,日志级别设置为 Error
    6. 服务账号:选择具有所需角色的服务账号。
    7. 路径:指定要用作工作目录的 HDFS 路径。
    8. (可选)配置连接节点设置

      • 节点数下限:输入连接节点数下限。
      • 节点数上限:输入连接节点数上限。

      节点是处理事务的连接单元(或副本)。 连接处理越多事务就需要越多节点,相反,处理越少事务需要越少节点。 如需了解节点如何影响连接器价格,请参阅连接节点的价格。如果未输入任何值,则默认情况下,节点数下限设置为 2(以便提高可用性),节点数上限设置为 50。

    9. (可选)点击 + 添加标签,以键值对的形式向连接添加标签。
    10. 点击下一步
  5. 目标部分中,输入要连接到的远程主机(后端系统)的详细信息。
    1. 目标类型:选择目标类型
      • 如需指定目标主机名或 IP 地址,请选择主机地址,然后在主机 1 字段中输入相应地址。
      • 如需建立专用连接,请选择端点连接,然后从端点连接列表中选择所需的连接。

      如果要与后端系统建立公共连接以提高安全性,您可以考虑为连接配置静态出站 IP 地址,然后将防火墙规则配置为仅将特定静态 IP 地址列入许可名单。

      要输入其他目标,请点击 + 添加目标

    2. 点击下一步
  6. 身份验证部分中,输入身份验证详细信息。
    1. 选择身份验证类型,然后输入相关详细信息。

      HDFS 连接支持以下身份验证类型:

      • 用户名和密码

      如需了解如何配置这些身份验证类型,请参阅配置身份验证

    2. 点击下一步
  7. 查看:查看您的连接和身份验证详细信息。
  8. 点击创建

配置身份验证

根据您要使用的身份验证输入详细信息。

  • 用户名和密码
    • 用户名:输入用于 HDFS 连接的用户名。
    • 密码:输入包含与用户名关联的密码的 Secret Manager Secret。
    • Secret 版本:为上面选择的 Secret 选择 Secret 版本。

连接配置示例

本部分列出了创建连接时配置的各个字段的示例值。

用户名和密码连接类型

字段名称 详细信息
位置 europe-west1
连接器 HDFS
连接器版本 1
连接名称 hdfs-v24-new
服务账号 my-service-account@my-project.iam.gserviceaccount.com
节点数下限 2
节点数上限 2
目标类型 主机地址
主机 10.128.0.
port1 10000
用户名 user1
密码 PASSWORD
密钥版本 1

系统限制

HDFS 连接器每秒最多可处理 20 个事务(每个节点),并会限制超出此限额的任何事务。默认情况下,Integration Connectors 会为连接分配 2 个节点(以提高可用性)。

如需了解适用于 Integration Connectors 的限制,请参阅限制

在集成中使用 HDFS 连接

创建连接后,该连接将在 Apigee Integration 和 Application Integration 中可用。您可以通过“连接器”任务在集成中使用该连接。

  • 如需了解如何在 Apigee Integration 中创建和使用连接器任务,请参阅连接器任务
  • 如需了解如何在 Application Integration 中创建和使用连接器任务,请参阅连接器任务

操作

本部分介绍如何在此连接器中执行一些操作

MakeDirectory 操作

此操作会在指定路径中创建一个目录。

MakeDirectory 操作的输入参数

参数名称 数据类型 必需 说明
权限 字符串 错误 用于创建新目录的权限。
路径 字符串 正确 新目录的路径。

如需查看有关如何配置 MakeDirectory 操作的示例,请参阅示例

ListStatus 操作

此操作会列出所提供路径的内容。

ListStatus 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件的路径。

如需查看有关如何配置 ListStatus 操作的示例,请参阅示例

GetHomeDirectory 操作

此操作用于获取当前用户的主目录。

GetHomeDirectory 操作的输入参数

参数名称 数据类型 必需 说明
connectorInputPayload JSON 正确 连接器的输入载荷。

如需查看有关如何配置 GetHomeDirectory 操作的示例,请参阅示例

DeleteFile 操作

此操作会删除文件或目录。

DeleteFile 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件的路径。
Recursive 布尔值 错误 指定是否删除文件夹的子文件夹。

如需查看有关如何配置 DeleteFile 操作的示例,请参阅示例

GetContentSummary 操作

此操作可获取文件或文件夹的内容摘要。

GetContentSummary 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件或文件夹的路径。

如需查看有关如何配置 GetContentSummary 操作的示例,请参阅示例

RenameFile 操作

此操作用于重命名文件或目录。

RenameFile 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件的路径。
目的地 字符串 正确 指定文件的新名称和路径。

如需查看有关如何配置 RenameFile 操作的示例,请参阅示例

SetPermission 操作

此操作用于设置路径的权限。

SetPermission 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件的路径。
权限 字符串 正确 以八进制(8 进制)表示法指定 Unix 权限。

如需查看有关如何配置 SetPermission 操作的示例,请参阅示例

SetPermission 操作

此操作用于设置路径的权限。

SetPermission 操作的输入参数

参数名称 数据类型 必需 说明
路径 字符串 正确 文件的路径。
权限 字符串 正确 以八进制(以 8 为基数)表示法指定 Unix 权限。

如需查看有关如何配置 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 论坛中发布您的问题以及讨论此连接器。

后续步骤