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
Eine Anwendung, die bei Microsoft Entra ID registriert ist. Die Clientanwendungen, die Sie für die Interaktion mit dem Kafka-REST-Proxy schreiben, verwenden die ID und den geheimen Schlüssel dieser Anwendung zur Authentifizierung bei Azure. Weitere Informationen finden Sie unter Registrieren einer Anwendung bei Microsoft Identity Platform.
Eine Microsoft Entra-Sicherheitsgruppe, in der Ihre registrierte Anwendung Mitglied ist. Mit dieser Sicherheitsgruppe wird gesteuert, welche Anwendungen mit dem REST-Proxy interagieren dürfen. Weitere Informationen zum Erstellen einer Microsoft Entra-Gruppe finden Sie unter Erstellen einer Basisgruppe und Hinzufügen von Mitgliedern mithilfe von Microsoft Entra ID.
Azure CLI Stellen Sie sicher, dass Sie mindestens Version 2.0.79 verwenden. Weitere Informationen finden Sie unter Installieren der Azure CLI.
Erstellen eines Apache Kafka-Clusters
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"
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üraz-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üraz-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
Erstellen Sie die Ressourcengruppe mithilfe des folgenden Befehls:
az group create \ --location $location \ --name $resourceGroupName
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
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)
Erstellen Sie einen Azure Storage-Container mithilfe des folgenden Befehls:
az storage container create \ --name $storageContainer \ --account-key $storageAccountKey \ --account-name $storageAccount
Erstellen des HDInsight-Clusters Beachten Sie vor dem Eingeben des Befehls die folgenden Parameter:
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. 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 Befehlaz hdinsight create
entfernen.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: