Partager via


Tutoriel : Créer un cluster avec proxy REST Apache Kafka dans HDInsight à l’aide d’Azure CLI

Dans ce tutoriel, vous allez apprendre à créer un cluster compatible avec le proxy REST Apache Kafka dans Azure HDInsight à l’aide d’Azure CLI. Azure HDInsight est un service d’analytique open source managé, complet et à spectre complet pour les entreprises. Apache Kafka est une plateforme de diffusion en continu distribuée open source. Il est souvent utilisé comme répartiteur de messages, car il fournit des fonctionnalités similaires à une file d’attente de messages de publication-abonnement. Le proxy REST Kafka vous permet d’interagir avec votre cluster Kafka via une API REST via HTTP. Azure CLI est l’expérience en ligne de commande multiplateforme de Microsoft pour la gestion des ressources Azure.

L’API Apache Kafka est accessible uniquement par les ressources à l’intérieur du même réseau virtuel. Vous pouvez accéder directement au cluster à l’aide de SSH. Pour connecter d’autres services, réseaux ou machines virtuelles à Apache Kafka, vous devez d’abord créer un réseau virtuel, puis créer les ressources au sein du réseau. Pour plus d’informations, consultez Se connecter à Apache Kafka à l’aide d’un réseau virtuel.

Dans ce tutoriel, vous allez voir comment :

  • Conditions préalables pour le proxy REST Kafka
  • Créer un cluster Apache Kafka à l’aide d’Azure CLI

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Prerequisites

Créer un cluster Apache Kafka

  1. Connectez-vous à votre abonnement Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Définir des variables d’environnement L’utilisation de variables dans ce didacticiel est basée sur Bash. De légères variations seront nécessaires pour d’autres environnements.

    Variable Descriptif
    resourceGroupName Remplacez RESOURCEGROUPNAME par le nom de votre nouveau groupe de ressources.
    location Remplacez LOCATION par une région où le cluster sera créé. Pour obtenir la liste des emplacements valides, utilisez la az account list-locations commande
    nom du cluster Remplacez CLUSTERNAME par un nom global unique pour votre nouveau cluster.
    storageAccount Remplacez STORAGEACCOUNTNAME par un nom pour votre nouveau compte de stockage.
    httpPassword Remplacez PASSWORD par un mot de passe pour la connexion du cluster, administrateur.
    sshPassword Remplacez PASSWORD par un mot de passe pour le nom d’utilisateur de l’interpréteur de commandes sécurisé, sshuser.
    securityGroupName Remplacez SECURITYGROUPNAME par le nom du groupe de sécurité Microsoft Entra client pour le proxy REST Kafka. La variable est transmise au --kafka-client-group-name paramètre pour az-hdinsight-create.
    securityGroupID (identifiant de groupe de sécurité) Remplacez SECURITYGROUPID par l’ID de groupe de sécurité Microsoft Entra client pour le proxy REST Kafka. La variable est transmise au --kafka-client-group-id paramètre pour az-hdinsight-create.
    conteneur de stockage Le conteneur de stockage que le cluster utilisera, laissez tel quel pour ce didacticiel. Cette variable est définie avec le nom du cluster.
    workernodeCount Nombre de nœuds Worker dans le cluster ; laissez-le tel quel pour ce tutoriel. Pour garantir la haute disponibilité, Kafka nécessite un minimum de 3 nœuds de travail.
    clusterType Type de cluster HDInsight, laissez tel quel pour ce didacticiel.
    clusterVersion Version du cluster HDInsight ; laissez-la telle quelle pour ce tutoriel. Le proxy REST Kafka nécessite une version minimale du cluster 4.0.
    componentVersion Laissez la version de Kafka telle quelle pour ce didacticiel. Le proxy REST Kafka nécessite une version minimale du composant 2.1.

    Mettez à jour les variables avec les valeurs souhaitées. Entrez ensuite les commandes CLI pour définir les variables d’environnement.

    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. Créez le groupe de ressources en entrant la commande ci-dessous :

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Créez un compte de stockage Azure en entrant la commande ci-dessous :

    # 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. Extrayez la clé primaire du compte de stockage Azure et stockez-la dans une variable en entrant la commande ci-dessous :

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Créez un conteneur stockage Azure en entrant la commande ci-dessous :

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Créez le cluster HDInsight. Avant d’entrer la commande, notez les paramètres suivants :

    1. Paramètres requis pour les clusters Kafka :

      Paramètre Descriptif
      --type La valeur doit être Kafka.
      --workernode-data-disks-per-node Nombre de disques de données à utiliser par nœud de travail. HDInsight Kafka est pris en charge uniquement avec les disques de données. Ce didacticiel utilise la valeur 2.
    2. Paramètres requis pour le proxy REST Kafka :

      Paramètre Descriptif
      --kafka-management-node-size Taille du nœud. Ce didacticiel utilise la valeur Standard_D4_v2.
      --kafka-client-group-id ID du groupe de sécurité Microsoft Entra du client pour le proxy REST Kafka. La valeur est transmise à partir de la variable $securityGroupID.
      --kafka-client-group-name Nom du groupe de sécurité du client Microsoft Entra pour le proxy REST Kafka. La valeur est transmise à partir de la variable $securityGroupName.
      --version La version du cluster HDInsight doit être au moins 4.0. La valeur est transmise à partir de la variable $clusterVersion.
      --component-version La version kafka doit être au moins 2.1. La valeur est transmise à partir de la variable $componentVersion.

      Si vous souhaitez créer le cluster sans proxy REST, éliminez --kafka-management-node-size, --kafka-client-group-idet --kafka-client-group-name à partir de la az hdinsight create commande.

    3. Si vous disposez d’un réseau virtuel existant, ajoutez les paramètres --vnet-name et --subnet et leurs valeurs.

    Entrez la commande suivante pour créer le 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"
    

    La fin du processus de création du cluster peut prendre plusieurs minutes. En général, environ 15.

Nettoyer les ressources

Après avoir terminé ce tutoriel, vous souhaiterez peut-être supprimer le cluster. Avec HDInsight, vos données sont stockées dans le stockage Azure. Vous pouvez ainsi supprimer un cluster en toute sécurité s’il n’est pas en cours d’utilisation. Vous devez également payer pour un cluster HDInsight, même quand vous ne l’utilisez pas. Étant donné que les frais pour le cluster sont bien plus élevés que les frais de stockage, mieux vaut supprimer les clusters quand ils ne sont pas utilisés.

Entrez tout ou partie des commandes suivantes pour supprimer des ressources :

# 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

Étapes suivantes

Maintenant que vous avez créé un cluster compatible avec le proxy REST Apache Kafka dans Azure HDInsight à l’aide d’Azure CLI, utilisez le code Python pour interagir avec le proxy REST :