Condividi tramite


Usare uno script Python per distribuire un cluster Big Data di SQL Server nel servizio Azure Kubernetes

Si applica a:SQL Server 2019 (15.x)

Important

I cluster Big Data di Microsoft SQL Server 2019 sono stati ritirati. Il supporto per i cluster Big Data di SQL Server 2019 è terminato a partire dal 28 febbraio 2025. Per altre informazioni, vedere il post di blog sull'annuncio e le opzioni per Big Data nella piattaforma Microsoft SQL Server.

In questa esercitazione si usa uno script di distribuzione Python di esempio per distribuire cluster Big Data di SQL Server 2019 nel servizio Azure Kubernetes.

Tip

AKS è solo una opzione per l'hosting di Kubernetes del cluster di Big Data. Per informazioni su altre opzioni di distribuzione e su come personalizzare le opzioni di distribuzione, vedere Come distribuire cluster Big Data di SQL Server in Kubernetes.

La distribuzione predefinita del cluster Big Data usata qui è costituita da un'istanza master DI SQL, un'istanza del pool di calcolo, due istanze del pool di dati e due istanze del pool di archiviazione. I dati vengono resi persistenti usando volumi permanenti Kubernetes che usano le classi di archiviazione predefinite del servizio Azure Kubernetes. La configurazione predefinita usata in questa esercitazione è adatta per ambienti di sviluppo/test.

Prerequisites

  • Una sottoscrizione di Azure.
  • Strumenti per Big Data:
    • azdata
    • kubectl
    • Azure Data Studio
    • Estensione SQL Server 2019
    • Azure CLI

Accedi al tuo account Azure

Lo script utilizza Azure CLI per automatizzare la creazione di un cluster AKS. Prima di eseguire lo script, è necessario accedere all'account Azure con l'interfaccia della riga di comando di Azure almeno una volta. Eseguire il comando seguente da un prompt dei comandi. Per altre informazioni, vedere Accedere tramite l'interfaccia della riga di comando di Azure.

az login

Scaricare lo script di distribuzione

Questa esercitazione automatizza la creazione del cluster big data su AKS usando uno script Python deploy-sql-big-data-aks.py. Se python è già installato per azdata, dovrebbe essere possibile eseguire correttamente lo script in questa esercitazione.

In un prompt di Windows PowerShell o Linux bash eseguire il comando seguente per scaricare lo script di distribuzione da GitHub.

curl -o deploy-sql-big-data-aks.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/aks/deploy-sql-big-data-aks.py"

Eseguire lo script di distribuzione

Usare la procedura seguente per eseguire lo script di distribuzione in un prompt bash di Windows PowerShell o Linux. Questo script creerà un servizio AKS in Azure e quindi distribuirà un cluster di big data di SQL Server 2019 nel servizio AKS. È anche possibile modificare lo script con altre variabili di ambiente per creare una distribuzione personalizzata.

  1. Eseguire lo script con il comando seguente:

    python deploy-sql-big-data-aks.py
    

    Note

    Se nel computer client sono presenti python3 e python2 e nel percorso, è necessario eseguire il comando usando python3: python3 deploy-sql-big-data-aks.py.

  2. Quando richiesto, immettere le informazioni seguenti:

    Value Description
    ID sottoscrizione di Azure ID sottoscrizione di Azure da usare per AKS. È possibile elencare tutte le sottoscrizioni e i relativi ID eseguendo az account list da un'altra riga di comando.
    Gruppo di risorse di Azure Nome del gruppo di risorse di Azure da creare per il cluster AKS.
    Azure region La regione Azure per il nuovo cluster AKS (predefinito westus).
    Machine size Dimensioni della macchina da usare per i nodi nel cluster AKS (dimensione predefinita Standard_D16s_v3).
    Worker nodes Numero di nodi worker nel cluster AKS (impostazione predefinita 1).
    Cluster name Il nome sia del cluster AKS che del cluster di big data. Il nome del cluster Big Data deve essere costituito solo da caratteri alfanumerici minuscoli e senza spazi. (default sqlbigdata).
    Password Password predefinita per il controller, il gateway HDFS/Spark e l'istanza master (MySQLBigData2019).
    Username Nome utente per l'utente del controller (impostazione predefinita: amministratore).

    Important

    Le dimensioni predefinite del computer Standard_D16s_v3 potrebbero non essere disponibili in ogni area di Azure. Se si seleziona una dimensione diversa del computer, assicurarsi che il numero totale di dischi che possono essere collegati tra i nodi del cluster sia maggiore o uguale a 24. Ogni attestazione di volume permanente nel cluster richiede un disco collegato. Attualmente, il cluster Big Data richiede 24 attestazioni di volume persistente.

    Eseguire il comando seguente per identificare i tipi di macchina virtuale disponibili.

    az vm list-sizes --query "sort_by(@,&name)[?contains(name,'Standard_D16s')]" -l westus2 -o table
    

    Note

    L'account di SQL Server sa viene disabilitato durante la distribuzione del big data cluster. Viene effettuato il provisioning di un nuovo account di accesso sysadmin nell'istanza master di SQL Server con lo stesso nome specificato per Username e la password corrispondente a Password. Gli stessi valori di Username e Password vengono usati per il provisioning di un utente amministratore del controller. Nei cluster distribuiti prima di SQL Server 2019 CU5, l'unico utente supportato per il gateway (Knox) è root e la password è uguale a quella precedente.

    A partire da SQL Server 2019 (15.x) CU 5, quando si distribuisce un nuovo cluster con autenticazione di base, tutti gli endpoint, incluso il gateway, usano AZDATA_USERNAME e AZDATA_PASSWORD. Gli endpoint nei cluster aggiornati a CU 5 continuano a usare root come nome utente per connettersi all'endpoint del gateway. Questa modifica non si applica alle distribuzioni che usano l'autenticazione di Active Directory. Consulta Credenziali per l'accesso ai servizi tramite l'endpoint del gateway nelle note di rilascio.

  3. Lo script inizierà creando un cluster di Azure Kubernetes Service usando i parametri specificati. Questo passaggio richiede alcuni minuti.

Monitorare lo stato

Dopo che lo script ha creato il cluster AKS, procede a impostare le variabili di ambiente necessarie con le impostazioni specificate in precedenza. Quindi chiama azdata per distribuire il cluster Big Data su AKS.

La finestra di comando client restituirà lo stato della distribuzione. Durante il processo di distribuzione, verrà visualizzata una serie di messaggi in cui è in attesa del pod del controller:

2018-11-15 15:42:02.0209 UTC | INFO | Waiting for controller pod to be up...

Dopo 10-20 minuti, si dovrebbe ricevere una notifica che indica che il pod del controller è in esecuzione:

2018-11-15 15:50:50.0300 UTC | INFO | Controller pod is running.
2018-11-15 15:50:50.0585 UTC | INFO | Controller Endpoint: https://111.111.111.111:30080

Important

L'intera distribuzione può richiedere molto tempo a causa del tempo necessario per scaricare le immagini del contenitore per i componenti del cluster Big Data. Tuttavia, non dovrebbe richiedere diverse ore. Se si verificano problemi con la distribuzione, vedere Monitoraggio e risoluzione dei problemi dei cluster Big Data di SQL Server.

Ispezionare il cluster

In qualsiasi momento durante la distribuzione, è possibile usare kubectl o azdata per esaminare lo stato e i dettagli sul cluster Big Data in esecuzione.

Use kubectl

Aprire una nuova finestra di comando per usare kubectl durante il processo di distribuzione.

  1. Eseguire il comando seguente per ottenere un riepilogo dello stato dell'intero cluster:

    kubectl get all -n <your-big-data-cluster-name>
    

    Tip

    Se il nome del cluster Big Data non è stato modificato, per impostazione predefinita lo script viene impostato su sqlbigdata.

  2. Esaminare i servizi kubernetes e i relativi endpoint interni ed esterni con il comando kubectl seguente:

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. È anche possibile esaminare lo stato dei pod kubernetes con il comando seguente:

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. Per altre informazioni su un pod specifico, vedere il comando seguente:

    kubectl describe pod <pod name> -n <your-big-data-cluster-name>
    

Tip

Per altre informazioni su come monitorare e risolvere i problemi relativi a una distribuzione, vedere Monitoraggio e risoluzione dei problemi dei cluster Big Data di SQL Server.

Connettersi al cluster

Al termine dello script di distribuzione, l'output notifica l'esito positivo:

2018-11-15 16:10:25.0583 UTC | INFO | Cluster state: Ready
2018-11-15 16:10:25.0583 UTC | INFO | Cluster deployed successfully.

Il cluster Big Data di SQL Server è ora distribuito su AKS (Azure Kubernetes Service). È ora possibile usare Azure Data Studio per connettersi al cluster. Per altre informazioni, vedere Connettersi a un cluster Big Data di SQL Server con Azure Data Studio.

Clean up

Se si testano cluster Big Data di SQL Server in Azure, è necessario eliminare il cluster AKS al termine per evitare addebiti imprevisti. Non rimuovere il cluster se si intende continuare a usarlo.

Warning

L'elenco di seguito mostra i passaggi per smantellare il cluster del servizio Azure Kubernetes Service e questo rimuove anche il cluster Big Data di SQL Server. Se sono presenti database o dati HDFS da conservare, eseguire il backup dei dati prima di eliminare il cluster.

Eseguire il comando seguente di Azure CLI per rimuovere il cluster Big Data e il servizio AKS (sostituire <resource group name> con il gruppo di risorse di Azure specificato nello script di distribuzione):

az group delete -n <resource group name>