Partilhar via


Tutorial: Criar um cluster habilitado para proxy Apache Kafka REST no HDInsight usando a CLI do Azure

Neste tutorial, vais aprender a criar um cluster de proxy REST do Apache Kafka , habilitado para, no Azure HDInsight usando o Azure CLI. O Azure HDInsight é um serviço de análise gerenciado, de espectro completo e de código aberto para empresas. Apache Kafka é uma plataforma de streaming distribuída de código aberto. É frequentemente utilizado como mediador de mensagens, uma vez que fornece funcionalidades semelhantes a uma fila de mensagens de publicação-subscrição. O Proxy REST Kafka permite que você interaja com seu cluster Kafka por meio de uma API REST por HTTP. A CLI do Azure é a experiência de linha de comando entre plataformas da Microsoft para gerenciar recursos do Azure.

Só os recursos dentro da mesma rede virtual podem aceder à API do Apache Kafka. Você pode acessar o cluster diretamente usando SSH. Para ligar outros serviços, redes ou máquinas virtuais ao Apache Kafka, tem primeiro de criar uma rede virtual e, em seguida, criar os recursos dentro da rede. Para obter mais informações, consulte Conectar-se ao Apache Kafka usando uma rede virtual.

Neste tutorial, você aprende:

  • Pré-requisitos para proxy Kafka REST
  • Criar um cluster Apache Kafka usando a CLI do Azure

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Criar um cluster do Apache Kafka

  1. Entre na sua assinatura do Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Defina variáveis de ambiente. O uso de variáveis neste tutorial é baseado em Bash. Pequenas variações serão necessárias para outros ambientes.

    Variável Descrição
    nomeDoGrupoDeRecursos Substitua RESOURCEGROUPNAME pelo nome do seu novo grupo de recursos.
    localização Substitua LOCATION por uma região onde o cluster será criado. Para obter uma lista de locais válidos, use o comando az account list-locations
    nome_do_cluster Substitua CLUSTERNAME por um nome globalmente exclusivo para o novo cluster.
    conta de armazenamento Substitua STORAGEACCOUNTNAME por um nome para sua nova conta de armazenamento.
    httpPalavra-passe Substitua PASSWORD por uma senha para o login do cluster, admin.
    sshSenha Substitua PASSWORD por uma senha para o nome de usuário do shell seguro, sshuser.
    nomeDoGrupoDeSegurança Substitua SECURITYGROUPNAME pelo nome do grupo de segurança cliente Microsoft Entra para Kafka REST Proxy. A variável será passada para o parâmetro --kafka-client-group-name para az-hdinsight-create.
    ID do Grupo de Segurança Substitua SECURITYGROUPID pelo ID do grupo de segurança Microsoft Entra do cliente para o Proxy REST Kafka. A variável será passada para o parâmetro --kafka-client-group-id para az-hdinsight-create.
    recipiente de armazenamento Contêiner de armazenamento que o cluster usará, deixe as-is para este tutorial. Esta variável será definida com o nome do cluster.
    workernodeCount Número de nós de trabalho no cluster, deixe as-is para este tutorial. Para garantir alta disponibilidade, Kafka requer um mínimo de 3 nós de trabalho
    tipo de cluster Tipo de cluster HDInsight, deixe as-is para este tutorial.
    versão do cluster Versão do cluster HDInsight, deixe as-is para este tutorial. Kafka REST Proxy requer uma versão mínima de cluster de 4.0.
    versão do componente Versão do Kafka, mantém as-is para este tutorial. Kafka REST Proxy requer uma versão de componente mínimo de 2.1.

    Atualize as variáveis com os valores desejados. Em seguida, insira os comandos da CLI para definir as variáveis de ambiente.

    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. Crie o grupo de recursos inserindo o comando abaixo:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Criar uma conta de Armazenamento do Azure inserindo o comando abaixo:

    # 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. Extraia a chave primária da conta de armazenamento do Azure e armazene-a numa variável inserindo o comando abaixo:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Crie um contêiner de Armazenamento do Azure inserindo o comando abaixo:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Criar o cluster HDInsight. Antes de inserir o comando, observe os seguintes parâmetros:

    1. Parâmetros necessários para clusters Kafka:

      Parâmetro Descrição
      --tipo O valor deve ser Kafka.
      --workernode-data-disks-per-node O número de discos de dados a serem usados por cada nó de trabalho. O HDInsight Kafka só é suportado com discos de dados. Este tutorial usa um valor de 2.
    2. Parâmetros necessários para o proxy Kafka REST:

      Parâmetro Descrição
      --kafka-management-node-size O tamanho do nó. Este tutorial usa o valor Standard_D4_v2.
      --id-grupo-de-cliente-kafka O ID do grupo de segurança do cliente Microsoft Entra para o Proxy REST do Kafka. O valor é passado da variável $securityGroupID.
      --kafka-cliente-grupo-nome O nome do grupo de segurança do cliente da Microsoft Entra para o Kafka REST Proxy. O valor é passado da variável $securityGroupName.
      --versão A versão do cluster HDInsight deve ser pelo menos 4.0. O valor é passado da variável $clusterVersion.
      --componente-versão A versão Kafka deve ser pelo menos 2.1. O valor é passado da variável $componentVersion.

      Se você quiser criar o cluster sem proxy REST, elimine --kafka-management-node-size, --kafka-client-group-ide --kafka-client-group-name do comando az hdinsight create.

    3. Se você tiver uma rede virtual existente, adicione os parâmetros --vnet-name e --subnete seus valores.

    Digite o seguinte comando para criar o 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"
    

    Pode levar vários minutos para que o processo de criação do cluster seja concluído. Geralmente em torno de 15.

Limpar recursos

Depois de concluir o artigo, pode achar conveniente eliminar o cluster. Com o HDInsight, seus dados são armazenados no Armazenamento do Azure, para que você possa excluir com segurança um cluster quando ele não estiver em uso. Você também é cobrado por um cluster HDInsight, mesmo quando ele não está em uso. Como as cobranças para o cluster são muitas vezes mais do que as taxas para armazenamento, faz sentido econômico excluir clusters quando eles não estão em uso.

Insira todos ou alguns dos seguintes comandos para remover 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

Próximos passos

Agora que você criou com êxito um cluster habilitado para proxy Apache Kafka REST no Azure HDInsight usando a CLI do Azure, use o código Python para interagir com o proxy REST: