Condividi tramite


Esercitazione: Creare un cluster abilitato per il proxy REST Apache Kafka in HDInsight usando l'interfaccia della riga di comando di Azure

Questa esercitazione descrive come creare un cluster abilitato per il proxy REST Apache Kafka in Azure HDInsight usando l'interfaccia della riga di comando di Azure. Azure HDInsight è un servizio di analisi open source, gestito e ad ampio spettro per le aziende. Apache Kafka è una piattaforma di streaming open source distribuita. Viene spesso usata come broker di messaggi perché offre funzionalità simili a una coda messaggi di pubblicazione/sottoscrizione. Il proxy REST Kafka consente di interagire con il cluster Kafka attraverso un'API REST tramite HTTP. L'interfaccia della riga di comando di Azure è l'esperienza di riga di comando multipiattaforma Microsoft per la gestione delle risorse di Azure.

Possono accedere all'API Apache Kafka solo risorse interne alla stessa rete virtuale. È possibile accedere al cluster direttamente tramite SSH. Per connettere altri servizi, reti o macchine virtuali ad Apache Kafka, è necessario prima di tutto creare una rete virtuale e quindi creare le risorse all'interno della rete. Per altre informazioni, vedere Connettersi ad Apache Kafka da una rete locale.

In questa esercitazione si apprenderà:

  • Prerequisiti per il proxy REST Kafka
  • Creare un cluster Apache Kafka con l'interfaccia della riga di comando di Azure

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Creare un cluster Apache Kafka

  1. Accedere alla sottoscrizione di Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Impostare le variabili di ambiente. L'uso delle variabili in questa esercitazione si basa su Bash. Per altri ambienti saranno necessarie piccole modifiche.

    Variabile Descrizione
    resourceGroupName Sostituire RESOURCEGROUPNAME con il nome del nuovo gruppo di risorse.
    posizione Sostituire LOCATION con l'area in cui verrà creato il cluster. Per un elenco delle località valide, usare il comando az account list-locations
    clusterName Sostituire CLUSTERNAME con un nome univoco a livello globale per il nuovo cluster.
    storageAccount Sostituire STORAGEACCOUNTNAME con il nome del nuovo account di archiviazione.
    httpPassword Sostituire PASSWORD con la password dell'account di accesso del cluster, admin.
    sshPassword Sostituire PASSWORD con una password per il nome utente Secure Shell, sshuser.
    securityGroupName Sostituire edizione Standard CURITYGROUPNAME con il nome del gruppo di sicurezza Microsoft Entra client per il proxy REST Kafka. La variabile verrà passata al parametro --kafka-client-group-name per az-hdinsight-create.
    securityGroupID Sostituire edizione Standard CURITYGROUPID con l'ID del gruppo di sicurezza Microsoft Entra client per il proxy REST Kafka. La variabile verrà passata al parametro --kafka-client-group-id per az-hdinsight-create.
    storageContainer Contenitore di archiviazione che verrà usato dal cluster. Per questa esercitazione, lasciare il valore invariato. Questa variabile verrà impostata con il nome del cluster.
    workernodeCount Numero di nodi di lavoro nel cluster. Per questa esercitazione, lasciare il valore invariato. Per garantire una disponibilità elevata, Kafka richiede un minimo di 3 nodi di lavoro
    clusterType Tipo del cluster HDInsight. Per questa esercitazione, lasciare il valore invariato.
    clusterVersion Versione del cluster HDInsight. Per questa esercitazione, lasciare il valore invariato. Il proxy REST Kafka richiede una versione minima del cluster 4.0.
    componentVersion Versione di Kafka. Per questa esercitazione, lasciare il valore invariato. Il proxy REST Kafka richiede una versione minima del componente 2.1.

    Aggiornare le variabili con i valori desiderati. Immettere quindi i comandi dell'interfaccia della riga di comando per impostare le variabili di ambiente.

    export resourceGroupName=RESOURCEGROUPNAME
    export location=LOCATION
    export clusterName=CLUSTERNAME
    export storageAccount=STORAGEACCOUNTNAME
    export httpPassword='PASSWORD'
    export sshPassword='PASSWORD'
    export securityGroupName=SECURITYGROUPNAME
    export securityGroupID=SECURITYGROUPID
    
    export storageContainer=$(echo $clusterName | tr "[:upper:]" "[:lower:]")
    export workernodeCount=3
    export clusterType=kafka
    export clusterVersion=4.0
    export componentVersion=kafka=2.1
    
  3. Creare il gruppo di risorse immettendo il comando seguente:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Creare un account di archiviazione di Azure immettendo il comando seguente:

    # Note: kind BlobStorage is not available as the default storage account.
    az storage account create \
        --name $storageAccount \
        --resource-group $resourceGroupName \
        --https-only true \
        --kind StorageV2 \
        --location $location \
        --sku Standard_LRS
    
  5. Estrarre la chiave primaria dall'account di archiviazione di Azure e archiviarla in una variabile immettendo il comando seguente:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Creare un contenitore di archiviazione di Azure immettendo il comando seguente:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Creare il cluster HDInsight. Prima di immettere il comando, osservare i parametri seguenti:

    1. Parametri obbligatori per i cluster Kafka:

      Parametro Descrizione
      --type Il valore deve essere Kafka.
      --workernode-data-disks-per-node Numero di dischi dati da usare per ogni nodo di lavoro. HDInsight Kafka è supportato solo con i dischi dati. In questa esercitazione viene usato il valore 2.
    2. Parametri obbligatori per il proxy REST Kafka:

      Parametro Descrizione
      --kafka-management-node-size Dimensioni del nodo. In questa esercitazione viene usato il valore Standard_D4_v2.
      --kafka-client-group-id ID del gruppo di sicurezza Microsoft Entra client per il proxy REST Kafka. Il valore viene passato dalla variabile $securityGroupID.
      --kafka-client-group-name Nome del gruppo di sicurezza Microsoft Entra client per il proxy REST Kafka. Il valore viene passato dalla variabile $securityGroupName.
      --version La versione del cluster HDInsight deve essere almeno 4.0. Il valore viene passato dalla variabile $clusterVersion.
      --component-version La versione di Kafka deve essere almeno 2.1. Il valore viene passato dalla variabile $componentVersion.

      Se si vuole creare il cluster senza proxy REST, eliminare --kafka-management-node-size, --kafka-client-group-ide --kafka-client-group-name dal comando az hdinsight create.

    3. Se si dispone di una rete virtuale esistente, aggiungere i parametri --vnet-name e --subnet e i relativi valori.

    Immettere il comando seguente per creare il cluster:

    az hdinsight create \
        --name $clusterName \
        --resource-group $resourceGroupName \
        --type $clusterType \
        --component-version $componentVersion \
        --http-password $httpPassword \
        --http-user admin \
        --location $location \
        --ssh-password $sshPassword \
        --ssh-user sshuser \
        --storage-account $storageAccount \
        --storage-account-key $storageAccountKey \
        --storage-container $storageContainer \
        --version $clusterVersion \
        --workernode-count $workernodeCount \
        --workernode-data-disks-per-node 2 \
        --kafka-management-node-size "Standard_D4_v2" \
        --kafka-client-group-id $securityGroupID \
        --kafka-client-group-name "$securityGroupName"
    

    Il processo di creazione del cluster può richiedere alcuni minuti, in genere circa 15.

Pulire le risorse

Al termine dell'articolo, è consigliabile eliminare il cluster. Con HDInsight, i dati vengono archiviati in Archiviazione di Azure ed è possibile eliminare tranquillamente un cluster quando non è in uso. Vengono addebitati i costi anche per i cluster HDInsight che non sono in uso. Poiché i costi per il cluster sono decisamente superiori a quelli per l'archiviazione, eliminare i cluster quando non vengono usati è una scelta economicamente conveniente.

Immettere tutti o alcuni dei comandi seguenti per rimuovere le risorse:

# Remove cluster
az hdinsight delete \
    --name $clusterName \
    --resource-group $resourceGroupName

# Remove storage container
az storage container delete \
    --account-name $storageAccount  \
    --name $storageContainer

# Remove storage account
az storage account delete \
    --name $storageAccount  \
    --resource-group $resourceGroupName

# Remove resource group
az group delete \
    --name $resourceGroupName

Passaggi successivi

Ora che è stato creato un cluster abilitato per proxy REST Apache Kafka in Azure HDInsight usando l'interfaccia della riga di comando di Azure, usare il codice Python per interagire con il proxy REST: