Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você aprenderá a criar um cluster habilitado para proxy REST do Apache Kafka no Azure HDInsight usando a CLI do Azure. O Azure HDInsight é um serviço de análise gerenciado e de código aberto, abrangente para empresas. O Apache Kafka é uma plataforma de streaming distribuída de software livre. Ele geralmente é usado como um agente de mensagens, pois fornece funcionalidade semelhante a uma fila de mensagens de publicação e assinatura. O Proxy REST do Kafka permite que você interaja com seu cluster Kafka por meio de uma API REST via HTTP. A CLI do Azure é a experiência de linha de comando multiplataforma da Microsoft para gerenciar recursos do Azure.
A API do Apache Kafka só pode ser acessada por recursos dentro da mesma rede virtual. Você pode acessar o cluster diretamente usando o SSH. Para conectar outros serviços, redes ou máquinas virtuais ao Apache Kafka, primeiro você deve 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ê aprenderá:
- Pré-requisitos para o proxy REST do Kafka
- Criar um cluster do Apache Kafka usando a CLI do Azure
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Um aplicativo registrado com o Microsoft Entra ID. Os aplicativos cliente que você desenvolve para interagir com o proxy REST do Kafka usarão a ID e a chave secreta desse aplicativo para autenticar-se no Azure. Para obter mais informações, confira Registrar um aplicativo na plataforma de identidade da Microsoft.
Um grupo de segurança do Microsoft Entra com seu aplicativo registrado como membro. Esse grupo de segurança 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 a ID do Microsoft Entra.
CLI do Azure. Verifique se você tem pelo menos a versão 2.0.79. Confira Instalar a CLI do Azure.
Criar um cluster do Apache Kafka
Entre em sua assinatura do Azure.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"Configure as variáveis de ambiente. O uso de variáveis neste tutorial baseia-se no Bash. Pequenas variações serão necessárias para outros ambientes.
Variable Description resourceGroupName Substitua RESOURCEGROUPNAME pelo nome do novo grupo de recursos. local Substitua LOCATION por uma região em que o cluster será criado. Para obter uma lista de locais válidos, use o az account list-locationscomandonome do cluster Substitua CLUSTERNAME por um nome global exclusivo para seu novo cluster. storageAccount Substitua STORAGEACCOUNTNAME por um nome para sua nova conta de armazenamento. httpPassword Substitua PASSWORD por uma senha para o logon do cluster, administrador. sshPassword 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 do Microsoft Entra do cliente para o Kafka REST Proxy. A variável será passada para o parâmetro --kafka-client-group-namedeaz-hdinsight-create.ID do Grupo de Segurança Substitua SECURITYGROUPID pela ID do grupo de segurança do cliente no Microsoft Entra para o Proxy REST do Kafka. A variável será passada para o parâmetro --kafka-client-group-iddeaz-hdinsight-create.recipiente de armazenamento Contêiner de armazenamento que o cluster usará, deixe como está para este tutorial. Essa variável será definida com o nome do cluster. workernodeCount Número de nós de trabalho no cluster, deixe no estado em que se encontram para este tutorial. Para garantir alta disponibilidade, o Kafka requer um mínimo de 3 nós de trabalho clusterType Tipo de cluster HDInsight, deixe como está para este tutorial. clusterVersion Versão do cluster HDInsight, deixe no estado em que se encontra para este tutorial. O Proxy REST do Kafka requer uma versão mínima do cluster 4.0. componentVersion Versão do Kafka, deixe no estado em que se encontra para este tutorial. O Proxy REST do Kafka requer uma versão mínima do componente 2.1. Atualize as variáveis com 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.1Crie o grupo de recursos inserindo o comando abaixo:
az group create \ --location $location \ --name $resourceGroupNameCrie 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_LRSExtraia 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 $storageAccountCriar o cluster HDInsight. Antes de inserir o comando, observe os seguintes parâmetros:
Parâmetros necessários para clusters Kafka:
Parâmetro Description --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 Kafka do HDInsight só tem suporte com discos de dados. Este tutorial usa um valor de 2. Parâmetros necessários para o proxy REST do Kafka:
Parâmetro Description --kafka-management-node-size O tamanho do nó. Este tutorial usa o valor Standard_D4_v2. --kafka-client-group-id A ID do grupo de segurança do Microsoft Entra cliente para o Proxy REST do Kafka. O valor é passado da variável $securityGroupID. --kafka-client-group-name O nome do grupo de segurança do Microsoft Entra do cliente para o Proxy REST do Kafka. 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. --component-version A versão do 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-namea partir doaz hdinsight createcomando.Se você tiver uma rede virtual existente, adicione os parâmetros
--vnet-namee--subnetos valores deles.
Insira 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. Normalmente, por volta de 15.
Limpar os recursos
Após a conclusão do artigo, convém excluir o cluster. Com o HDInsight, seus dados são armazenados no Armazenamento do Azure, assim você poderá 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 os encargos para o cluster são muitas vezes maiores do que os encargos para armazenamento, faz sentido, do ponto de vista econômico, excluir os clusters quando não estiverem em uso.
Insira todos ou alguns dos comandos a seguir 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óximas etapas
Agora que você criou com êxito um cluster habilitado para proxy REST do Apache Kafka no Azure HDInsight usando a CLI do Azure, use o código Python para interagir com o proxy REST: