Dela via


Självstudie: Skapa ett Apache Kafka REST-proxyaktiverat kluster i HDInsight med Azure CLI

I den här självstudien får du lära dig hur du skapar ett Apache Kafka REST-proxyaktiverat kluster i Azure HDInsight med hjälp av Azure CLI. Azure HDInsight är en hanterad analystjänst med fullständigt spektrum med öppen källkod för företag. Apache Kafka är en distribuerad strömningsplattform med öppen källkod. Den används ofta som en asynkron meddelandekö eftersom den innehåller funktioner som påminner om en publicera-prenumerera-meddelandekö. Med Kafka REST Proxy kan du interagera med ditt Kafka-kluster via ett REST-API via HTTP. Azure CLI är Microsofts plattformsoberoende kommandoradsmiljö för att hantera Azure-resurser.

Apache Kafka-API:et kan endast användas av resurser i samma virtuella nätverk. Du kan komma åt klustret direkt med hjälp av SSH. Om du vill ansluta andra tjänster, nätverk eller virtuella datorer till Apache Kafka måste du först skapa ett virtuellt nätverk och sedan skapa resurser i nätverket. Mer information finns i Anslut till Apache Kafka med hjälp av ett virtuellt nätverk.

I den här självstudien lär du dig:

  • Förutsättningar för Kafka REST-proxy
  • Skapa ett Apache Kafka-kluster med Hjälp av Azure CLI

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

Skapa ett Apache Kafka-kluster

  1. Logga in på din Azure-prenumeration.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Ange miljövariabler. Användningen av variabler i den här självstudien baseras på Bash. Små variationer kommer att behövas för andra miljöer.

    Olika Description
    resourceGroupName Ersätt RESOURCEGROUPNAME med namnet på den nya resursgruppen.
    location Ersätt LOCATION med en region där klustret skapas. Om du vill ha en lista över giltiga platser använder du az account list-locations kommandot
    clusterName Ersätt CLUSTERNAME med ett globalt unikt namn för det nya klustret.
    storageAccount Ersätt STORAGEACCOUNTNAME med ett namn för ditt nya lagringskonto.
    httpPassword Ersätt LÖSENORD med ett lösenord för klusterinloggningen, administratör.
    sshPassword Ersätt PASSWORD med ett lösenord för det säkra gränssnittets användarnamn, sshuser.
    securityGroupName Ersätt SECURITYGROUPNAME med klientens Microsoft Entra-säkerhetsgruppnamn för Kafka REST Proxy. Variabeln skickas till parametern --kafka-client-group-name för az-hdinsight-create.
    securityGroupID Ersätt SECURITYGROUPID med microsoft Entra-klientsäkerhetsgruppens ID för Kafka REST Proxy. Variabeln skickas till parametern --kafka-client-group-id för az-hdinsight-create.
    storageContainer Lagringscontainer som klustret ska använda, lämna som det är för den här självstudien. Den här variabeln anges med namnet på klustret.
    workernodeCount Antal arbetsnoder i klustret, lämna som det är för den här självstudien. För att garantera hög tillgänglighet kräver Kafka minst 3 arbetsnoder
    clusterType Typ av HDInsight-kluster, lämna som det är för den här självstudien.
    clusterVersion HDInsight-klusterversion, lämna som den är för den här självstudien. Kafka REST Proxy kräver en lägsta klusterversion på 4.0.
    componentVersion Kafka-version, lämna som den är för den här självstudien. Kafka REST Proxy kräver en lägsta komponentversion av 2.1.

    Uppdatera variablerna med önskade värden. Ange sedan CLI-kommandona för att ange miljövariablerna.

    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. Skapa resursgruppen genom att ange kommandot nedan:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Skapa ett Azure Storage-konto genom att ange kommandot nedan:

    # 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. Extrahera primärnyckeln från Azure Storage-kontot och lagra den i en variabel genom att ange kommandot nedan:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Skapa en Azure Storage-container genom att ange kommandot nedan:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Skapa HDInsight-klustret. Observera följande parametrar innan du anger kommandot:

    1. Obligatoriska parametrar för Kafka-kluster:

      Parameter Beskrivning
      --Typ Värdet måste vara Kafka.
      --workernode-data-disks-per-node Antalet datadiskar som ska användas per arbetsnod. HDInsight Kafka stöds endast med datadiskar. I den här självstudien används värdet 2.
    2. Obligatoriska parametrar för Kafka REST-proxy:

      Parameter Beskrivning
      --kafka-management-node-size Nodens storlek. I den här självstudien används värdet Standard_D4_v2.
      --kafka-client-group-id Klient-ID för Microsoft Entra-säkerhetsgrupp för Kafka REST Proxy. Värdet skickas från variabeln $securityGroupID.
      --kafka-client-group-name Klientens Microsoft Entra-säkerhetsgruppnamn för Kafka REST Proxy. Värdet skickas från variabeln $securityGroupName.
      --Version HDInsight-klusterversionen måste vara minst 4.0. Värdet skickas från variabeln $clusterVersion.
      --component-version Kafka-versionen måste vara minst 2.1. Värdet skickas från variabeln $componentVersion.

      Om du vill skapa klustret utan REST-proxy eliminerar --kafka-management-node-sizedu , --kafka-client-group-idoch --kafka-client-group-name från az hdinsight create kommandot .

    3. Om du har ett befintligt virtuellt nätverk lägger du till parametrarna --vnet-name och --subnet, och deras värden.

    Ange följande kommando för att skapa klustret:

    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"
    

    Det kan ta flera minuter innan klustret skapas. Vanligtvis runt 15.

Rensa resurser

När du är klar med artikeln kanske du vill ta bort klustret. Med HDInsight lagras dina data i Azure Storage, så att du på ett säkert sätt kan ta bort ett kluster när de inte används. Du debiteras också för ett HDInsight-kluster, även om det inte används. Eftersom avgifterna för klustret är många gånger högre än avgifterna för lagring är det ekonomiskt klokt att ta bort kluster när de inte används.

Ange alla eller några av följande kommandon för att ta bort resurser:

# 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

Nästa steg

Nu när du har skapat ett Apache Kafka REST-proxyaktiverat kluster i Azure HDInsight med hjälp av Azure CLI använder du Python-kod för att interagera med REST-proxyn: