在 Windows 上配置 PolyBase 横向扩展组

适用于:SQL Server - 仅限 Windows Azure SQL 托管实例

本文介绍如何在 Windows 上设置 PolyBase 横向扩展组。 此功能将创建 SQL Server 实例的群集来处理来自外部数据源的大型数据集(如 Hadoop 或 Azure Blob 存储),从而通过一种扩展的方式提高查询性能。

重要

Microsoft SQL Server PolyBase 横向扩展组即将停用。 横向扩展组功能将从 SQL Server 2022 (16.x) 的产品中移除。 PolyBase 数据虚拟化将在 SQL Server 中作为纵向扩展功能继续完全受支持。 有关详细信息,请参阅 Microsoft SQL Server 平台上的大数据选项

先决条件

  • 同一个域中有多台计算机。

  • 一个运行 PolyBase 服务的域用户帐户。 建议使用组托管服务帐户 (gMSA)。 有关详细信息,请参阅组托管服务帐户概述

过程概述

以下步骤汇总了用于创建 PolyBase 横向扩展组的过程。 下一节提供了各步骤更详细的演练过程。

  1. 在 N 台计算机上安装相同版本的具有 PolyBase 的 SQL Server。

  2. 选择一个 SQL Server 实例作为头节点。

  3. 使用 sp_polybase_join_group将剩余的 SQL Server 实例添加为计算节点。

  4. 使用 sys.dm_exec_compute_nodes (Transact-SQL) 监视组中的节点。

  5. 可选。 使用 sp_polybase_leave_group (Transact-SQL) 删除计算节点。

示例演练

它将演示使用以下内容配置 PolyBase 组的步骤:

  1. PQTH4A 中的两台计算机,计算机名称为:

    • PQTH4A-CMP01

    • PQTH4A-CMP02

  2. 域帐户:PQTH4A\PolyBaseUser

在所有机器上安装具有 PolyBase 的 SQL Server

  1. 运行 setup.exe。

  2. 在“功能选择”页上,选择“针对外部数据的 PolyBase 查询服务”

  3. 在“服务器配置”页上,对 SQL Server PolyBase 引擎和 SQL Server PolyBase 数据移动服务使用域帐户 PQTH4A\PolybaseUser

  4. 在“PolyBase 配置”页中,选择“将 SQL Server 实例用作 PolyBase 横向扩展组的一部分”选项。 这将打开防火墙以允许 PolyBase 服务的传入连接。 SQL Server安装向导会自动在 Windows Server 防火墙中公开以下 TCP 端口:1433、16450-16453 和 17001。 如果头节点是 SQL Server 命名实例,则还必须手动将 SQL Server 端口添加到头节点上的 Windows 防火墙,同时在头节点上启动 SQL Browser。 只有在 PolyBase 横向扩展组中的服务器的防火墙上才允许有端口。

  5. 安装完成后,运行“services.msc” 。 验证 SQL Server、PolyBase 引擎和 PolyBase 数据移动服务是否在运行。

    A screenshot from SQL Server Configuration Manager, showing the PolyBase services.

选择一个 SQL Server 作为头节点

安装完成后,两台计算机都可充当 PolyBase 组头节点。 在此示例中,我们选择 PQTH4A-CMP01 上的“MSSQLSERVER”实例作为头节点。

将其他 SQL Server 实例添加为计算节点

  1. 连接到 PQTH4A-CMP02 上的 SQL Server。

  2. 运行存储过程 sp_polybase_join_group

    -- Enter head node details:
    -- head node machine name, head node dms control channel port, head node sql server name  
     EXEC sp_polybase_join_group 'PQTH4A-CMP01', 16450, 'MSSQLSERVER';
    
  3. 在计算节点 (PQTH4A-CMP02) 上运行 services.msc。

  4. 关闭 PolyBase 引擎并重启 PolyBase 数据移动服务。

注意

当 PolyBase 引擎服务在头节点中重新启动或停止时,只要数据移动服务 (DMS) 和 PolyBase 引擎服务 (DW) 之间的信道关闭,DMS 服务就会停止。 如果 DW 引擎重启两次以上,则 DMS 会进入 90 分钟的静默期,并且必须等待 90 分钟才能进行下一次自动启动尝试。 在这种情况下,应在所有节点上手动启动此服务。

可选:删除计算节点

  1. 连接到计算节点 SQL Server (PQTH4A-CMP02)。

  2. 运行存储过程 sp_polybase_leave_group

    EXEC sp_polybase_leave_group;  
    
  3. 在正在删除的计算节点 (PQTH4A-CMP02) 上运行 services.msc。

  4. 启动 PolyBase 引擎。 重启 PolyBase 数据移动服务。

  5. 验证 PQTH4A-CMP01 上是否已通过运行 DMV sys.dm_exec_compute_nodes 删除该节点。 现在,PQTH4A-CMP02 将充当独立头节点

限制

  • 如果有一个默认 SQL Server 实例配置为侦听 1433 以外的 TCP 端口,则不能将其用作 PolyBase 横向扩展组中的头节点。 执行 sp_polybase_join_group 时,如果将“MSSQLSERVER”作为实例名称传递,SQL Server 将假设端口 1433 是侦听器端口,因此数据移动服务将无法在启动时连接到头节点。

  • AlwaysOn 可用性组不支持 PolyBase 横向扩展组。