Kurz: Vytvoření clusteru s povoleným proxy serverem REST Apache Kafka ve službě HDInsight pomocí Azure CLI

V tomto kurzu se dozvíte, jak vytvořit cluster s povoleným proxy serverem Apache Kafka v Azure HDInsight pomocí Azure CLI. Azure HDInsight je spravovaná opensourcová analytická služba určená pro podniky. Apache Kafka je open source distribuovaná streamovací platforma. Často se používá jako zprostředkovatel zpráv, protože nabízí funkce podobné frontě pro publikování a odběr zpráv. Proxy rest Kafka umožňuje interakci s clusterem Kafka prostřednictvím rozhraní REST API přes PROTOKOL HTTP. Azure CLI je nové víceplatformové prostředí příkazového řádku Microsoftu pro správu prostředků Azure.

Rozhraní Apache Kafka API je přístupné jenom pro prostředky ve stejné virtuální síti. Ke clusteru se dostanete přímo pomocí SSH. Pokud chcete k platformě Apache Kafka připojit jiné služby, sítě nebo virtuální počítače, musíte nejprve vytvořit virtuální síť a pak v síti vytvořit prostředky. Další informace najdete v tématu Připojení k Apache Kafka pomocí virtuální sítě.

V tomto kurzu se naučíte:

  • Požadavky na proxy server REST Kafka
  • Vytvoření clusteru Apache Kafka pomocí Azure CLI

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Předpoklady

Vytvoření clusteru Apache Kafka

  1. Přihlaste se ke svému předplatnému Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Nastavte proměnné prostředí. Použití proměnných v tomto kurzu je založeno na Bash. Pro jiná prostředí budou potřeba mírné variace.

    Proměnná Popis
    resourceGroupName Nahraďte RESOURCEGROUPNAME názvem nové skupiny prostředků.
    umístění Umístění nahraďte oblastí, ve které se cluster vytvoří. Pro seznam platných umístění použijte az account list-locations příkaz
    clusterName Nahraďte CLUSTERNAME globálně jedinečným názvem nového clusteru.
    storageAccount Nahraďte STORAGEACCOUNTNAME názvem nového účtu úložiště.
    httpPassword Heslo nahraďte heslem pro přihlášení ke clusteru, správce.
    sshPassword Heslo nahraďte heslem pro uživatelské jméno zabezpečeného prostředí sshuser.
    securityGroupName Nahraďte SECURITYGROUPNAME názvem klientské skupiny zabezpečení Microsoft Entra pro proxy serveru REST Kafka. Proměnná bude předána parametru --kafka-client-group-name pro az-hdinsight-create.
    securityGroupID Nahraďte SECURITYGROUPID klientským ID skupiny zabezpečení Microsoft Entra pro proxy serveru REST Kafka. Proměnná bude předána parametru --kafka-client-group-id pro az-hdinsight-create.
    storageContainer Kontejner úložiště, který bude cluster používat, ponechte v tomto kurzu tak, jak je. Tato proměnná se nastaví s názvem clusteru.
    workernodeCount Počet pracovních uzlů v clusteru ponechte v tomto kurzu tak, jak je. K zajištění vysoké dostupnosti vyžaduje Kafka minimálně 3 pracovní uzly.
    clusterType Typ clusteru HDInsight ponechte v tomto kurzu tak, jak je.
    clusterVersion Verze clusteru HDInsight ponechte v tomto kurzu tak, jak je. Kafka REST Proxy vyžaduje minimální verzi clusteru 4.0.
    componentVersion Pro účely tohoto kurzu ponechte verzi Kafka tak, jak je. Kafka REST Proxy vyžaduje minimální verzi komponenty 2.1.

    Aktualizujte proměnné požadovanými hodnotami. Pak zadejte příkazy rozhraní příkazového řádku pro nastavení proměnných prostředí.

    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. Vytvořte skupinu prostředků zadáním následujícího příkazu:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Vytvořte účet Azure Storage zadáním následujícího příkazu:

    # 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. Extrahujte primární klíč z účtu služby Azure Storage a uložte ho do proměnné zadáním následujícího příkazu:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Zadáním následujícího příkazu vytvořte kontejner Azure Storage:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Vytvořte cluster HDInsight. Před zadáním příkazu si poznamenejte následující parametry:

    1. Požadované parametry pro clustery Kafka:

      Parametr Popis
      --Typ Hodnota musí být Kafka.
      --workernode-data-disks-per-node Počet datových disků, které se mají použít na pracovní uzel. HdInsight Kafka se podporuje jenom s datovými disky. Tento kurz používá hodnotu 2.
    2. Požadované parametry pro proxy serveru REST Kafka:

      Parametr Popis
      --kafka-management-node-size Velikost uzlu. V tomto kurzu se používá hodnota Standard_D4_v2.
      --kafka-client-group-id ID klientské skupiny zabezpečení Microsoft Entra pro proxy serveru REST Kafka. Hodnota se předává z proměnné $securityGroupID.
      --kafka-client-group-name Název klientské skupiny zabezpečení Microsoft Entra pro proxy serveru REST Kafka. Hodnota se předá z proměnné $securityGroupName.
      --Verze Verze clusteru HDInsight musí být minimálně 4.0. Hodnota se předá z proměnné $clusterVersion.
      --component-version Verze Kafka musí být minimálně 2.1. Hodnota se předá z proměnné $componentVersion.

      Pokud chcete vytvořit cluster bez proxy serveru REST, odstraňte --kafka-management-node-size--kafka-client-group-ida --kafka-client-group-name z az hdinsight create příkazu.

    3. Pokud máte existující virtuální síť, přidejte parametry --vnet-name a --subnetjejich hodnoty.

    Zadáním následujícího příkazu vytvořte 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"
    

    Dokončení procesu vytváření clusteru může trvat několik minut. Obvykle kolem 15.

Vyčištění prostředků

Jakmile budete s článkem hotovi, můžete cluster odstranit. S HDInsight jsou vaše data uložená ve službě Azure Storage, takže můžete cluster bezpečně odstranit, když se nepoužívá. Za cluster HDInsight se vám také účtují poplatky, i když se nepoužívá. Vzhledem k tomu, že poplatky za cluster jsou mnohokrát vyšší než poplatky za úložiště, dává smysl odstranit clustery, když se nepoužívají.

Pokud chcete odebrat prostředky, zadejte všechny nebo některé z následujících příkazů:

# 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

Další kroky

Teď, když jste úspěšně vytvořili cluster s povoleným proxy serverem Apache Kafka v Azure HDInsight pomocí Azure CLI, použijte kód Pythonu k interakci s proxy serverem REST: