使用 HDFS 集群配置 AWS DataSync 传输 - AWS DataSync

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 HDFS 集群配置 AWS DataSync 传输

使用 AWS DataSync,您可以在 Hadoop 分布式文件系统 (HDFS) 集群和以下 AWS 存储服务之一之间传输数据:

要设置此类传输,您需要为 HDFS 集群创建一个位置。您可以将此位置用作传输源或传输目标位置。

提供 DataSync 对 HDFS 集群的访问权限

要连接到 HDFS 集群,请 DataSync 使用尽可能靠近 HDFS 集群部署的代理。该 DataSync代理充当 HDFS 客户端,并与集群 DataNodes 中的 NameNodes 和进行通信。

启动传输任务时,会 DataSync NameNode 查询群集上文件和文件夹的位置。如果您将 HDFS 位置配置为源位置,则会从集群 DataNodes 中 DataSync 读取文件和文件夹数据,并将这些数据复制到目标。如果您将 HDFS 位置配置为目标位置,则 DataSync 会将文件和文件夹从源位置写入集群 DataNodes 中。

身份验证

连接到 HDFS 集群时, DataSync 支持简单身份验证或 Kerberos 身份验证。要使用简单身份验证,请提供对 HDFS 集群具有读写权限的用户的用户名。要使用 Kerberos 身份验证,请提供 Kerberos 配置文件、Kerberos 密钥表(密钥表)文件和 Kerberos 主体名称。Kerberos 主体的凭证必须位于提供的密钥表文件中。

加密

使用 Kerberos 身份验证时, DataSync 支持在 DataSync 代理和 HDFS 集群之间传输的数据时对其进行加密。使用 HDFS 集群上的保护质量 (QOP) 配置设置,并在创建 HDFS 位置时指定 QOP 设置,从而加密数据。QOP 配置包括数据传输保护和远程过程调用 (RPC) 保护设置。

DataSync 支持以下 Kerberos 加密类型:
  • des-cbc-crc

  • des-cbc-md4

  • des-cbc-md5

  • des3-cbc-sha1

  • arcfour-hmac

  • arcfour-hmac-exp

  • aes128-cts-hmac-sha1-96

  • aes256-cts-hmac-sha1-96

  • aes128-cts-hmac-sha256-128

  • aes256-cts-hmac-sha384-192

  • camellia128-cts-cmac

  • camellia256-cts-cmac

您还可以使用透明数据加密 (TDE) 将 HDFS 集群配置为静态加密。使用简单身份验证时,对启用 TDE 的集群进行 DataSync 读取和写入。如果您使用将数据复制 DataSync 到启用 TDE 的集群,请先在 HDFS 集群上配置加密区域。 DataSync 不创建加密区域。

不支持的 HDFS 功能

目前不支持以下 HDFS 功能: DataSync

  • 使用 Kerberos 身份验证时的透明数据加密 (TDE)

  • 配置多个 NameNodes

  • 通过 HTTPS 的 Hadoop HDFS (httpFS)

  • POSIX 访问控制列表 () ACLs

  • HDFS 扩展属性 (xattrs)

  • 使用 Apache 的 HDFS 集群 HBase

创建您的 HDFS 传输位置

您可以将您的位置用作 DataSync转账的来源或目的地。

开始之前:通过执行以下操作验证代理与 Hadoop 集群之间的网络连接:

  1. 打开 AWS DataSync 控制台,网址为https://console.aws.amazon.com/datasync/

  2. 在左侧导航窗格中,展开数据传输,然后选择 位置创建位置

  3. 对于 位置类型,选择 Hadoop Distributed File System (HDFS)

    您可在稍后将此位置配置为源或目标。

  4. 对于代理,请选择可以连接到 HDFS 集群的代理。

    可以选择多个代理。有关更多信息,请参阅 使用多个 DataSync 代理

  5. 对于 NameNode,请提供 HDFS 群集的主 NameNode群集的域名或 IP 地址。

  6. “文件夹” 中,输入 HDFS 集群上 DataSync 要用于数据传输的文件夹。

    如果您的 HDFS 位置是源,请将此文件夹中的文件 DataSync 复制到目标。如果您的位置是目的地,则 DataSync会将文件写入此文件夹。

  7. 要设置 区块大小复制因子,请选择 其他设置

    默认块大小为 128MiB。您提供的块大小必须是 512 字节的倍数。

    传输到 HDFS 集群 DataNodes 时,默认重复因子为三。

  8. 安全部分中,选择 HDFS 群集上使用的 身份验证类型

    • 简单 - 对于 用户,在 HDFS 集群上指定具有以下权限的用户名(取决于您的用例):

      • 如果您计划将此位置用作源位置,请指定仅具有读取权限的用户。

      • 如果您计划将此位置用作目标位置,请指定具有读写权限的用户。

      您可以选择为 HDFS 集群的密钥管理服务器(KMS)指定 URI。

    • Kerberos – 指定有权访问您的 HDFS 集群的 Kerberos 主体。接下来,提供包含所提供的 Kerberos 主体的KeyTab 文件。然后,提供 Kerberos 配置文件。最后,在 RPC 保护数据传输保护下拉列表中指定传输中加密保护的类型。

  9. 或者,选择 添加标签来标记您的 HDFS 位置。

    标签 是帮助您管理、筛选和搜索位置的键值对。我们建议至少为您的位置创建一个名称标签。

  10. 选择创建位置

  1. 复制以下 create-location-hdfs 命令。

    aws datasync create-location-hdfs --name-nodes [{"Hostname":"host1", "Port": 8020}] \ --authentication-type "SIMPLE|KERBEROS" \ --agent-arns [arn:aws:datasync:us-east-1:123456789012:agent/agent-01234567890example] \ --subdirectory "/path/to/my/data"
  2. --name-nodes参数中,指定 HDFS 集群的主集群的主机名或 IP 地址 NameNode以及 NameNode 正在监听的 TCP 端口。

  3. 对于 --authentication-type 参数,指定连接 Hadoop 集群时使用的身份验证类型。您可以指定 SIMPLEKERBEROS

    如果您采用 SIMPLE 身份验证,请使用 --simple-user 参数指定用户的用户名。如果您采用 KERBEROS 身份验证,请使用 --kerberos-principal--kerberos-keytab--kerberos-krb5-conf 参数。有关更多信息,请参阅 create-location-hdfs

  4. 对于--agent-arns参数,请指定可以连接到您的 HDFS DataSync 集群的代理的 ARN。

    可以选择多个代理。有关更多信息,请参阅 使用多个 DataSync 代理

  5. (可选)在--subdirectory参数中,在 HDFS 集群上指定 DataSync 要用于数据传输的文件夹。

    如果您的 HDFS 位置是源,请将此文件夹中的文件 DataSync 复制到目标。如果您的位置是目的地,则 DataSync会将文件写入此文件夹。

  6. 运行 create-location-hdfs 命令。

    如果命令成功,您将收到一条响应,显示您创建位置的 ARN。例如:

    { "arn:aws:datasync:us-east-1:123456789012:location/loc-01234567890example" }