Compartir a través de


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

En este tutorial, aprenderá a crear un clúster habilitado para proxy REST de Apache Kafka en Azure HDInsight mediante la CLI de Azure. Azure HDInsight es un servicio de análisis de código abierto administrado y de espectro completo para empresas. Apache Kafka es una plataforma de streaming distribuida de código abierto. A menudo se usa como agente de mensajes, ya que proporciona funcionalidad similar a una cola de mensajes de publicación y suscripción. El proxy REST de Kafka le permite interactuar con el clúster de Kafka a través de 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 recursos de Azure.

Los recursos dentro de la misma red virtual solo pueden acceder a la API de Apache Kafka. Puede acceder al clúster directamente mediante SSH. Para conectar otros servicios, redes o máquinas virtuales a 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 mediante una red virtual.

En este tutorial, aprenderá:

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

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

Prerrequisitos

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. El uso de variables en este tutorial se basa en Bash. Se necesitarán ligeras variaciones para otros entornos.

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

    Actualice las variables con valores deseados. A continuación, 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. Para crear el grupo de recursos , escriba el comando siguiente:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Para crear una cuenta de Azure Storage , escriba 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 escribiendo el comando siguiente:

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

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

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

      Parámetro Description
      --tipo El valor debe ser Kafka.
      --workernode-data-disks-per-node 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 un valor de 2.
    2. Parámetros necesarios para el proxy REST de Kafka:

      Parámetro Description
      --kafka-management-node-size Tamaño del nodo. En este tutorial se usa el valor Standard_D4_v2.
      --kafka-client-group-id Id. 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 del 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 al menos 4.0. El valor se pasa desde la variable $clusterVersion.
      --component-version La versión de Kafka debe ser al menos 2.1. El valor se pasa desde la variable $componentVersion.

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

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

    Escriba el siguiente comando 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. Alrededor de 15 minutos.

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 proxy REST de Apache Kafka en Azure HDInsight mediante la CLI de Azure, use código de Python para interactuar con el proxy REST: