Share via


Tutorial: Creación de un clúster habilitado para el proxy REST de Apache Kafka en HDInsight con la CLI de Azure

En este tutorial, aprenderá a crear un clúster habilitado para un proxy REST de Apache Kafka en Azure HDInsight mediante la CLI de Azure. Azure HDInsight es un servicio administrado, de espectro completo y de análisis de código abierto para empresas. Apache Kafka es una plataforma de streaming distribuida y de código abierto. A menudo se usa como agente de mensajes, ya que proporciona una funcionalidad similar a una cola de mensajes de publicación o suscripción. El proxy REST de Kafka le permite interactuar con el clúster de Kafka mediante una API REST a través de HTTP. La CLI de Azure es la experiencia de línea de comandos multiplataforma de Microsoft para administrar los recursos de Azure.

Solo los recursos dentro de la misma red virtual pueden tener acceso a la API de Apache Kafka. Puede acceder al clúster directamente mediante SSH. Para conectar otros servicios, redes o máquinas virtuales con Apache Kafka, primero debe crear una red virtual y, a continuación, crear los recursos dentro de la red. Para más información, consulte Conexión a Apache Kafka con una red virtual.

En este tutorial, aprenderá:

  • Requisitos previos para el proxy REST de Kafka
  • Creación de un clúster de Apache Kafka con la CLI de Azure

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

Creación de un clúster de Apache Kafka

  1. Inicie sesión en la suscripción de Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Establezca las variables de entorno. En este tutorial, el uso de variables se basa en Bash. Se necesitarán ligeras variaciones con otros entornos.

    Variable Descripción
    resourceGroupName Reemplace RESOURCEGROUPNAME por el nombre del nuevo grupo de recursos.
    ubicación Reemplace LOCATION por la región donde se creará el clúster. Para obtener una lista de ubicaciones válidas, use el comando az account list-locations
    clusterName Reemplace CLUSTERNAME por un nombre único global para el nuevo clúster.
    StorageAccount Reemplace STORAGEACCOUNTNAME por el nombre de la nueva cuenta de almacenamiento.
    httpPassword Reemplace PASSWORD por la contraseña del inicio de sesión del clúster, admin.
    sshPassword Reemplace PASSWORD por la contraseña para el nombre de usuario del shell seguro, sshuser.
    securityGroupName Reemplace SECURITYGROUPNAME por el nombre del grupo de seguridad de Microsoft Entra de cliente para el proxy REST de Kafka. La variable se pasará al parámetro --kafka-client-group-name para az-hdinsight-create.
    securityGroupID Reemplace SECURITYGROUPID por el identificador de grupo de seguridad de Microsoft Entra de cliente para el proxy REST de Kafka. La variable se pasará al parámetro --kafka-client-group-id para az-hdinsight-create.
    storageContainer Contenedor de almacenamiento que usará el clúster; déjelo tal cual en este tutorial. Esta variable se establecerá con el nombre del clúster.
    workernodeCount Número de nodos de trabajo en el clúster; déjelo tal cual en este tutorial. Para garantizar una alta disponibilidad, Kafka requiere un mínimo de tres nodos de trabajo.
    clusterType Tipo del clúster de HDInsight; déjelo tal cual en este tutorial.
    clusterVersion Versión del clúster de HDInsight; déjela tal cual en este tutorial. El proxy REST de Kafka requiere la versión mínima de clúster 4.0.
    componentVersion Versión de Kafka; déjela tal cual en este tutorial. El proxy REST de Kafka requiere la versión mínima de componente 2.1.

    Actualice las variables con los valores deseados. Luego, escriba los comandos de la CLI para establecer las variables de entorno.

    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. Cree el grupo de recursos con el comando siguiente:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Cree una cuenta de Azure Storage con el comando siguiente:

    # 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. Extraiga la clave principal de la cuenta de Azure Storage y almacénela en una variable con el comando siguiente:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Cree un contenedor de Azure Storage con el comando siguiente:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Creación del clúster de HDInsight. Antes de escribir el comando, tenga en cuenta los siguientes parámetros:

    1. Parámetros necesarios para los clústeres de Kafka:

      Parámetro Descripción
      --type El valor debe ser Kafka.
      --workernode-data-disks-per-node El número de discos de datos que se van a usar por nodo de trabajo. HDInsight Kafka solo se admite con discos de datos. En este tutorial se usa el valor 2.
    2. Parámetros necesarios para el proxy REST de Kafka:

      Parámetro Descripción
      --kafka-management-node-size El tamaño del nodo. En este tutorial se usa el valor Standard_D4_v2.
      --kafka-client-group-id Identificador del grupo de seguridad de Microsoft Entra del cliente para el Proxy de REST de Kafka. El valor se pasa desde la variable $securityGroupID.
      --kafka-client-group-name Nombre del grupo de seguridad de Microsoft Entra de cliente para el Proxy de REST de Kafka. El valor se pasa desde la variable $securityGroupName.
      --version La versión del clúster de HDInsight debe ser la 4.0, como mínimo. El valor se pasa desde la variable $clusterVersion.
      --component-version La versión de Kafka debe ser la 2.1, como mínimo. El valor se pasa desde la variable $componentVersion.

      Si desea crear el clúster sin el proxy REST, elimine --kafka-management-node-size, --kafka-client-group-idy --kafka-client-group-name del comando az hdinsight create.

    3. Si tiene una red virtual existente, agregue los parámetros --vnet-name y --subnet, y sus valores.

    Escriba el comando siguiente para crear el clúster:

    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"
    

    El proceso de creación del clúster puede tardar varios minutos en completarse. de creación del clúster.

Limpieza de recursos

Después de completar el artículo, puede eliminar el clúster. Con HDInsight, los datos se almacenan en Azure Storage, por lo que puede eliminar un clúster de forma segura cuando no se esté usando. También se le cobrará por un clúster de HDInsight aunque no se esté usando. Como en muchas ocasiones los cargos por el clúster son mucho más elevados que los cargos por el almacenamiento, desde el punto de vista económico tiene sentido eliminar clústeres cuando no se usen.

Escriba todos o algunos de los siguientes comandos para quitar recursos:

# 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

Pasos siguientes

Ahora que ha creado correctamente un clúster habilitado para el proxy REST de Apache Kafka en Azure HDInsight mediante la CLI de Azure, use el código de Python para interactuar con el proxy REST: