Freigeben über


Tutorial: Erstellen eines für Apache Kafka-REST-Proxys geeigneten Clusters in HDInsight per Azure CLI

In diesem Tutorial wird beschrieben, wie Sie einen für Apache Kafka-REST-Proxys geeigneten Cluster in Azure HDInsight erstellen, indem Sie die Azure CLI verwenden. Azure HDInsight ist ein umfassender, verwalteter Open-Source-Analysedienst für Unternehmen. Apache Kafka ist eine verteilte Open Source-Streamingplattform. Sie wird häufig als Nachrichtenbroker eingesetzt, da sie eine ähnliche Funktionalität wie eine Veröffentlichen-Abonnieren-Nachrichtenwarteschlange aufweist. Mithilfe des Kafka-REST-Proxys können Sie über eine REST-API per HTTP mit Ihrem Kafka-Cluster interagieren. Die Azure CLI ist die plattformübergreifende Befehlszeilenumgebung von Microsoft zum Verwalten von Azure-Ressourcen.

Auf die Apache Kafka-API kann nur von Ressourcen im gleichen virtuellen Netzwerk zugegriffen werden. Sie können per SSH direkt auf den Cluster zugreifen. Wenn Sie eine Verbindung zwischen anderen Diensten, Netzwerken und virtuellen Computern und Apache Kafka herstellen möchten, müssen Sie zunächst ein virtuelles Netzwerk und anschließend die Ressourcen in diesem Netzwerk erstellen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Apache Kafka in HDInsight über ein virtuelles Azure-Netzwerk.

In diesem Tutorial lernen Sie Folgendes:

  • Voraussetzungen für den Kafka-REST-Proxy
  • Erstellen eines Apache Kafka-Clusters per Azure CLI

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Erstellen eines Apache Kafka-Clusters

  1. Melden Sie sich bei Ihrem Azure-Abonnement an.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Legen Sie Umgebungsvariablen fest. Die Verwendung von Variablen in diesem Tutorial basiert auf Bash. Für andere Umgebungen sind geringfügige Variationen erforderlich.

    Variable BESCHREIBUNG
    resourceGroupName Ersetzen Sie RESOURCEGROUPNAME durch den Namen Ihrer neuen Ressourcengruppe.
    location Ersetzen Sie LOCATION durch eine Region, in der der Cluster erstellt werden soll. Verwenden Sie den Befehl az account list-locations, um eine Liste mit gültigen Standorten zu erhalten.
    clusterName Ersetzen Sie CLUSTERNAME durch einen global eindeutigen Namen für Ihren neuen Cluster.
    storageAccount Ersetzen Sie STORAGEACCOUNTNAME durch einen Namen für Ihr neues Speicherkonto.
    httpPassword Ersetzen Sie PASSWORD durch ein Kennwort für die Clusteranmeldung per admin.
    sshPassword Ersetzen Sie PASSWORD durch ein Kennwort für den Secure Shell-Benutzernamen sshuser.
    securityGroupName Ersetzen Sie SECURITYGROUPNAME durch den Namen der Microsoft Entra-Clientsicherheitsgruppe für den Kafka-REST-Proxy. Die Variable wird an den Parameter --kafka-client-group-name für az-hdinsight-create übergeben.
    securityGroupID Ersetzen Sie SECURITYGROUPID durch die ID der Microsoft Entra-Clientsicherheitsgruppe für den Kafka-REST-Proxy. Die Variable wird an den Parameter --kafka-client-group-id für az-hdinsight-create übergeben.
    storageContainer Der Speichercontainer, der vom Cluster verwendet wird. Lassen Sie die Einstellung für dieses Tutorial unverändert. Diese Variable wird anhand des Namens des Clusters festgelegt.
    workernodeCount Die Anzahl von Workerknoten im Cluster. Lassen Sie diese Einstellung für dieses Tutorial unverändert. Um Hochverfügbarkeit zu garantieren, benötigt Kafka mindestens drei Workerknoten.
    clusterType Der Typ des HDInsight-Clusters. Lassen Sie diese Einstellung für dieses Tutorial unverändert.
    clusterVersion Die Version des HDInsight-Clusters. Lassen Sie diese Einstellung für dieses Tutorial unverändert. Für den Kafka-REST-Proxy ist mindestens Clusterversion 4.0 erforderlich.
    componentVersion Kafka-Version. Lassen Sie diese Einstellung für dieses Tutorial unverändert. Für den Kafka-REST-Proxy ist mindestens Komponentenversion 2.1 erforderlich.

    Aktualisieren Sie die Variablen mit den gewünschten Werten. Geben Sie dann die CLI-Befehle zum Festlegen der Umgebungsvariablen ein.

    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. Erstellen Sie die Ressourcengruppe mithilfe des folgenden Befehls:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Erstellen Sie ein Azure Storage-Konto mithilfe des folgenden Befehls:

    # 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. Extrahieren Sie den Primärschlüssel aus dem Azure Storage-Konto, und speichern Sie ihn in einer Variablen, indem Sie den folgenden Befehl eingeben:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Erstellen Sie einen Azure Storage-Container mithilfe des folgenden Befehls:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Erstellen des HDInsight-Clusters Beachten Sie vor dem Eingeben des Befehls die folgenden Parameter:

    1. Erforderliche Parameter für Kafka-Cluster:

      Parameter BESCHREIBUNG
      --type Der Wert muss Kafka lauten.
      --workernode-data-disks-per-node Die Anzahl von Datenträgern, die pro Workerknoten verwendet werden sollen. HDInsight Kafka wird nur mit Datenträgern unterstützt. In diesem Tutorial wird der Wert 2 verwendet.
    2. Erforderliche Parameter für Kafka-REST-Proxy:

      Parameter BESCHREIBUNG
      --kafka-management-node-size Die Größe des Knotens. In diesem Tutorial wird der Wert Standard_D4_v2 verwendet.
      --kafka-client-group-id Die ID der Microsoft Entra-Clientsicherheitsgruppe für den Kafka-REST-Proxy. Der Wert wird über die Variable $securityGroupID übergeben.
      --kafka-client-group-name Der Name der Microsoft Entra-Clientsicherheitsgruppe für den Kafka-REST-Proxy. Der Wert wird über die Variable $securityGroupName übergeben.
      --version Es muss mindestens Version 4.0 des HDInsight-Clusters verwendet werden. Der Wert wird über die Variable $clusterVersion übergeben.
      --component-version Es muss mindestens Kafka-Version 2.1 verwendet werden. Der Wert wird über die Variable $componentVersion übergeben.

      Wenn Sie den Cluster ohne REST-Proxy erstellen möchten, müssen Sie --kafka-management-node-size, --kafka-client-group-id und --kafka-client-group-name aus dem Befehl az hdinsight create entfernen.

    3. Fügen Sie die Parameter --vnet-name und --subnet und die zugehörigen Werte hinzu, wenn Sie über ein virtuelles Netzwerk verfügen.

    Geben Sie den folgenden Befehl zum Erstellen des Clusters ein:

    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"
    

    Es kann möglicherweise einige Minuten dauern, bis die Clustererstellung abgeschlossen ist. In der Regel dauert es etwa 15 Minuten.

Bereinigen von Ressourcen

Nach Abschluss des Artikels kann es ratsam sein, den Cluster zu löschen. Mit HDInsight werden Ihre Daten in Azure Storage gespeichert, sodass Sie einen Cluster problemlos löschen können, wenn er nicht verwendet wird. Für einen HDInsight-Cluster fallen auch dann Gebühren an, wenn er nicht verwendet wird. Da die Gebühren für den Cluster erheblich höher sind als die Kosten für den Speicher, ist es sinnvoll, nicht verwendete Cluster zu löschen.

Geben Sie die folgenden Befehle oder einige von ihnen ein, um Ressourcen zu entfernen:

# 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

Nächste Schritte

Nachdem Sie in Azure HDInsight nun erfolgreich einen für Apache Kafka-REST-Proxys geeigneten Cluster per Azure CLI erstellt haben, können Sie Python-Code verwenden, um mit dem REST-Proxy zu interagieren: