Tutorial: Criar um cluster habilitado para proxy Apache Kafka REST no HDInsight usando a CLI do Azure
Neste tutorial, você aprenderá a criar um cluster habilitado para proxy Apache Kafka REST no Azure HDInsight usando a CLI do Azure. O Azure HDInsight é um serviço de análise gerido, de espectro completo e de código aberto para empresas. O Apache Kafka é uma plataforma de código aberto de transmissão em fluxo distribuída. É frequentemente utilizado como mediador de mensagens, uma vez que fornece funcionalidades semelhantes a uma fila de mensagens de publicação-subscrição. O Kafka REST Proxy permite que você interaja com seu cluster Kafka por meio de uma API REST sobre HTTP. A CLI do Azure é a experiência de linha de comandos para várias plataformas da Microsoft para a gestão de 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
Uma aplicação registada com o Microsoft Entra ID. Os aplicativos cliente que você escreve para interagir com o proxy REST Kafka usarão a ID e o segredo desse aplicativo para autenticar no Azure. Para obter mais informações, consulte Registrar um aplicativo com a plataforma de identidade da Microsoft.
Um grupo de segurança do Microsoft Entra com seu aplicativo registrado como membro. Esse security group será usado para controlar quais aplicativos têm permissão para interagir com o proxy REST. Para obter mais informações sobre como criar grupos do Microsoft Entra, consulte Criar um grupo básico e adicionar membros usando o Microsoft Entra ID.
CLI do Azure. Certifique-se de ter pelo menos a versão 2.0.79. Consulte Instalar a CLI do Azure.
Criar um cluster do Apache Kafka
Entre na sua assinatura do Azure.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
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 resourceGroupName 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 az account list-locations
comandoclusterName Substitua CLUSTERNAME por um nome globalmente exclusivo para o novo cluster. storageAccount 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. securityGroupName Substitua SECURITYGROUPNAME pelo nome do grupo de segurança cliente Microsoft Entra para Kafka REST Proxy. A variável será passada para o --kafka-client-group-name
parâmetro paraaz-hdinsight-create
.securityGroupID Substitua SECURITYGROUPID pelo ID do grupo de segurança cliente Microsoft Entra para Kafka REST Proxy. A variável será passada para o --kafka-client-group-id
parâmetro paraaz-hdinsight-create
.storageContainer Contêiner de armazenamento que o cluster usará, deixe como está para este tutorial. Esta variável será definida com o nome do cluster. workernodeCount Número de nós de trabalho no cluster, deixe como está 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 como está para este tutorial. clusterVersão Versão do cluster HDInsight, deixe como está para este tutorial. Kafka REST Proxy requer uma versão mínima de cluster de 4.0. componentVersion Kafka versão, deixe como está 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
Crie o grupo de recursos inserindo o comando abaixo:
az group create \ --location $location \ --name $resourceGroupName
Crie 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
Extraia a chave primária da conta de Armazenamento do Azure e armazene-a em uma variável inserindo o comando abaixo:
export storageAccountKey=$(az storage account keys list \ --account-name $storageAccount \ --resource-group $resourceGroupName \ --query [0].value -o tsv)
Crie um contêiner de Armazenamento do Azure inserindo o comando abaixo:
az storage container create \ --name $storageContainer \ --account-key $storageAccountKey \ --account-name $storageAccount
Crie o cluster HDInsight. Antes de inserir o comando, observe os seguintes parâmetros:
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 nó de trabalho. O HDInsight Kafka só é suportado com discos de dados. Este tutorial usa um valor de 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. --kafka-cliente-grupo-id A ID do grupo de segurança cliente Microsoft Entra para Kafka REST Proxy. O valor é passado da variável $securityGroupID. --kafka-cliente-grupo-nome O nome do grupo de segurança cliente Microsoft Entra para 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-id
e--kafka-client-group-name
doaz hdinsight create
comando.Se você tiver uma rede virtual existente, adicione os parâmetros
--vnet-name
e , e--subnet
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.
Clean up resources (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 maiores 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: