如何在大数据群集中装载 S3 以实现 HDFS 分层

以下部分提供了如何使用 S3 Storage 数据源配置 HDFS 分层的示例。

重要

Microsoft SQL Server 2019 大数据群集附加产品将停用。 对 SQL Server 2019 大数据群集的支持将于 2025 年 2 月 28 日结束。 具有软件保障的 SQL Server 2019 的所有现有用户都将在平台上获得完全支持,在此之前,该软件将继续通过 SQL Server 累积更新进行维护。 有关详细信息,请参阅公告博客文章Microsoft SQL Server 平台上的大数据选项

先决条件

  • 部署大数据群集
  • 大数据工具
    • azdata
    • kubectl
  • 创建数据并将其上传到 S3 Bucket
    • 将 CSV 或 Parquet 文件上传到 S3 Bucket。 这是外部 HDFS 数据,该数据将被装载到大数据群集中的 HDFS。

访问密钥

为访问密钥凭据设置环境变量

在可以访问大数据群集的客户端计算机上打开命令提示符。 使用以下格式设置环境变量。 凭据需要包含在逗号分隔列表中。 在 Windows 上需使用“set”命令。 如果使用的是 Linux,请改用“export”。

 set MOUNT_CREDENTIALS=fs.s3a.access.key=<Access Key ID of the key>,
 fs.s3a.secret.key=<Secret Access Key of the key>

提示

有关如何创建 S3 访问密钥的详细信息,请参阅 S3 访问密钥

装载远程 HDFS 存储

准备好带有访问密钥的凭据文件后,接下来即可开始装载。 以下步骤说明了如何将 S3 中的远程 HDFS 存储装载到大数据群集的本地 HDFS 存储中。

  1. 使用 kubectl 查找大数据群集中终结点 controller-svc-external 服务的 IP 地址 。 查找“外部 IP”。

    kubectl get svc controller-svc-external -n <your-big-data-cluster-name>
    
  2. 使用 azdata,同时使用控制器终结点的外部 IP 地址和群集用户名及密码登录:

    azdata login -e https://<IP-of-controller-svc-external>:30080/
    
  3. 按照上面的说明设置环境变量 MOUNT_CREDENTIALS

  4. 使用 azdata bdc hdfs mount create 在 Azure 中装载远程 HDFS 存储。 在运行以下命令之前替换占位符值:

    azdata bdc hdfs mount create --remote-uri s3a://<S3 bucket name> --mount-path /mounts/<mount-name>
    

    注意

    装载 create 命令是异步的。 此时,没有消息指示装载是否成功。 请查看状态部分,检查装载的状态。

如果成功装载,应该能够查询 HDFS 数据并针对它运行 Spark 作业。 它显示在大数据群集上 HDFS 中由 --mount-path 指定的位置处。

获取装载状态

要列出大数据群集中的全部装载状态,可使用以下命令:

azdata bdc hdfs mount status

要列出 HDFS 中特定路径处的装载状态,可使用以下命令:

azdata bdc hdfs mount status --mount-path <mount-path-in-hdfs>

刷新装载

以下示例刷新装载。

azdata bdc hdfs mount refresh --mount-path <mount-path-in-hdfs>

删除装载

要删除装载,请使用 azdata bdc hdfs mount delete 命令,并在 HDFS 中指定装载路径:

azdata bdc hdfs mount delete --mount-path <mount-path-in-hdfs>