Compartir vía


Configuración de los grupos de escalado horizontal de PolyBase en Windows

Se aplica a: SQL Server: solo Windows Azure SQL Managed Instance

En este artículo se describe cómo configurar un grupo de escalado horizontal de PolyBase en Windows. Esto crea un clúster de instancias de SQL Server para procesar grandes conjuntos de datos a partir de orígenes de datos externos, como Hadoop o Azure Blob Storage, en un modo de escalado horizontal para mejorar el rendimiento de las consultas.

Importante

Los grupos de escalado horizontal de PolyBase de Microsoft SQL Server se retirarán. La funcionalidad de los grupos de escalabilidad horizontal se quitará del producto en SQL Server 2022 (16.x). La virtualización de datos de PolyBase seguirá siendo totalmente compatible como una característica de escalado vertical en SQL Server. Para obtener más información, consulte Opciones de macrodatos en la plataforma Microsoft SQL Server.

Requisitos previos

  • Más de una máquina en el mismo dominio.

  • Una cuenta de usuario de dominio para ejecutar los servicios de PolyBase. Se recomienda una cuenta de servicio administrada de grupo (gMSA). Para obtener más información, consulte grupo Managed Service Accounts Overview (Información general sobre cuentas de servicio administradas de grupo).

Información general del proceso

Los pasos siguientes resumen el proceso de creación de un grupo de escalado horizontal de PolyBase. La siguiente sección proporciona una descripción más detallada de cada paso.

  1. Instale la misma versión de SQL Server con PolyBase en cualquier número de máquinas.

  2. Seleccione una instancia de SQL Server como nodo principal.

  3. Agregue las instancias de SQL Server restantes como nodos de ejecución usando sp_polybase_join_group.

  4. Supervise los nodos en el grupo con sys.dm_exec_compute_nodes (Transact-SQL).

  5. Opcional. Quite un nodo de ejecución con sp_polybase_leave_group (Transact-SQL).

Tutorial de ejemplo

En este tutorial se muestran los pasos necesarios para configurar un grupo de PolyBase con:

  1. Dos máquinas en el dominio PQTH4A . Los nombres de las máquinas son:

    • PQTH4A-CMP01

    • PQTH4A-CMP02

  2. Cuenta de dominio: PQTH4A\PolyBaseUser

Instalación de SQL Server con PolyBase en todas las máquinas

  1. Ejecute setup.exe.

  2. En la página Selección de características, elija PolyBase Query Service for External Data (Servicio de consultas PolyBase para datos externos).

  3. En la página Configuración del servidor, use la cuenta de dominio PQTH4A\PolyBaseUser para el motor y el servicio de movimiento de datos de SQL Server PolyBase.

  4. En la página PolyBase Configuration (Configuración de PolyBase), seleccione la opción Use the SQL Server instance as part of a PolyBase scale-out group(Usar la instancia de SQL Server como parte de un grupo de escalado horizontal de PolyBase). Se abrirá el firewall para permitir las conexiones entrantes a los servicios de PolyBase. El Asistente para instalación de SQL Server expone automáticamente los siguientes puertos TCP en el firewall de Windows Server: 1433,16450-16453 y 17001. Si el nodo principal es una instancia con nombre de SQL Server, debes agregar manualmente el puerto de SQL Server a Firewall de Windows en el nodo principal y también iniciar la instancia de SQL Browser en el nodo principal. Los puertos solo se deben permitir en los firewalls de los servidores del grupo de escalado horizontal de PolyBase.

  5. Una vez completada la instalación, ejecute services.msc. Compruebe que están ejecutando SQL Server, el motor de PolyBase y el servicio de movimiento de datos de PolyBase.

    Captura de pantalla de Administrador de configuración de SQL Server, en la que se muestran los servicios de PolyBase.

Seleccione una instancia de SQL Server como nodo principal.

Una vez completada la instalación, las dos máquinas pueden funcionar como nodos principales del grupo de PolyBase. En este ejemplo, elegimos la instancia «MSSQLSERVER» de PQTH4A-CMP01 como nodo principal.

Adición de otras instancias de SQL Server como nodos de ejecución

  1. Conéctese a SQL Server en PQTH4A-CMP02.

  2. Ejecute el procedimiento almacenado 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. Ejecute services.msc en el nodo de ejecución (PQTH4A-CMP02).

  4. Apague el motor de PolyBase y reinicie el servicio de movimiento de datos de PolyBase.

Nota:

Cuando el servicio de motor de PolyBase se reinicia o se detiene en el nodo principal, los servicios del servicio de movimiento de datos (DMS) se detienen en cuanto se cierra el canal de comunicación entre DMS y el servicio de motor de PolyBase (DW). Si el motor de DW se reinicia más de dos veces, DMS entra en un período no interactivo durante 90 minutos y debe esperar 90 minutos para el siguiente intento de inicio automático. En esta situación, debe iniciar este servicio manualmente en todos los nodos.

Opcional: eliminación un nodo de ejecución

  1. Conéctese al nodo de ejecución de SQL Server (PQTH4A-CMP02).

  2. Ejecuta el procedimiento almacenado sp_polybase_leave_group.

    EXEC sp_polybase_leave_group;  
    
  3. Ejecute services.msc en el nodo de ejecución que se va a eliminar (PQTH4A-CMP02).

  4. Inicie el motor de PolyBase. Reinicie el servicio de movimiento de datos de PolyBase.

  5. Compruebe que el nodo se ha eliminado ejecutando el DMV sys.dm_exec_compute_nodes en PQTH4A-CMP01. Ahora, PQTH4A-CMP02 funcionará como nodo principal independiente.

Limitaciones

  • Si tiene una instancia predeterminada de SQL Server configurada para escuchar en un puerto TCP distinto de 1433, no puede usarla como nodo principal en un grupo de escalado horizontal de PolyBase. Al ejecutar sp_polybase_join_group, si pasas «MSSQLSERVER» como nombre de instancia, SQL Server asumirá que el puerto 1433 es el puerto del cliente de escucha, por lo que el servicio de movimiento de datos no puede conectarse al nodo principal al iniciarse.

  • Los grupos de escalabilidad horizontal de PolyBase no se admiten con grupos de disponibilidad AlwaysOn.