Samouczek: tworzenie klastra serwera proxy REST platformy Apache Kafka w usłudze HDInsight przy użyciu interfejsu wiersza polecenia platformy Azure

Z tego samouczka dowiesz się, jak utworzyć klaster serwera proxy REST platformy Apache Kafka z obsługą usługi Azure HDInsight przy użyciu interfejsu wiersza polecenia platformy Azure. Azure HDInsight jest zarządzaną usługą analityczną typu „open source” o szerokim zakresie, z przeznaczeniem dla przedsiębiorstw. Apache Kafka to rozproszona platforma przesyłania strumieniowego typu open source. Jest ona często używana jako broker komunikatów, ponieważ oferuje funkcje podobne do kolejki komunikatów dotyczących publikowania i subskrybowania. Serwer proxy REST platformy Kafka umożliwia interakcję z klastrem Platformy Kafka za pośrednictwem interfejsu API REST za pośrednictwem protokołu HTTP. Interfejs wiersza polecenia platformy Azure to wieloplatformowe środowisko wiersza polecenia do zarządzania zasobami platformy Azure.

Dostęp do interfejsu API platformy Apache Kafka mogą uzyskać tylko zasoby będące w tej samej sieci wirtualnej. Dostęp do klastra można uzyskać bezpośrednio przy użyciu protokołu SSH. Aby do platformy Apache Kafka podłączyć inne usługi, sieci lub maszyny wirtualne, należy najpierw utworzyć sieć wirtualną, a następnie utworzyć zasoby w obrębie tej sieci. Aby uzyskać więcej informacji, zobacz Połączenie do platformy Apache Kafka przy użyciu sieci wirtualnej.

Z tego samouczka dowiesz się:

  • Wymagania wstępne dotyczące serwera proxy REST platformy Kafka
  • Tworzenie klastra platformy Apache Kafka przy użyciu interfejsu wiersza polecenia platformy Azure

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Tworzenie klastra platformy Apache Kafka

  1. Zaloguj się do subskrypcji platformy Azure.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Ustaw zmienne środowiskowe. Użycie zmiennych w tym samouczku jest oparte na powłoce Bash. W innych środowiskach będą potrzebne niewielkie różnice.

    Zmienna opis
    resourceGroupName Zastąp ciąg RESOURCEGROUPNAME nazwą nowej grupy zasobów.
    lokalizacja Zastąp ciąg LOCATION regionem, w którym zostanie utworzony klaster. Aby uzyskać listę prawidłowych lokalizacji, użyj az account list-locations polecenia
    clusterName Zastąp ciąg CLUSTERNAME globalnie unikatową nazwą nowego klastra.
    storageAccount Zastąp ciąg STORAGEACCOUNTNAME nazwą nowego konta magazynu.
    httpPassword Zastąp wartość PASSWORD hasłem logowania do klastra, administratorem.
    sshPassword Zastąp ciąg PASSWORD hasłem dla nazwy użytkownika bezpiecznej powłoki, sshuser.
    securityGroupName Zastąp ciąg SECURITYGROUPNAME nazwą grupy zabezpieczeń Microsoft Entra dla serwera proxy REST platformy Kafka. Zmienna zostanie przekazana do parametru dla az-hdinsight-createparametru --kafka-client-group-name .
    securityGroupID Zastąp wartość SECURITYGROUPID identyfikatorem grupy zabezpieczeń microsoft Entra dla serwera proxy REST platformy Kafka. Zmienna zostanie przekazana do parametru dla az-hdinsight-createparametru --kafka-client-group-id .
    storageContainer Kontener magazynu, który będzie używany przez klaster, pozostaw to, co jest przeznaczone dla tego samouczka. Ta zmienna zostanie ustawiona z nazwą klastra.
    workernodeCount Liczba węzłów procesu roboczego w klastrze pozostaw wartość tak samo jak w tym samouczku. Aby zagwarantować wysoką dostępność, platforma Kafka wymaga co najmniej 3 węzłów roboczych
    clusterType W tym samouczku pozostaw typ klastra usługi HDInsight.
    clusterVersion Wersja klastra usługi HDInsight pozostaw wartość zgodną z tym samouczkiem. Serwer proxy REST platformy Kafka wymaga minimalnej wersji klastra w wersji 4.0.
    componentVersion Wersja platformy Kafka pozostaw wartość zgodną z tym samouczkiem. Serwer proxy REST platformy Kafka wymaga minimalnej wersji składnika 2.1.

    Zaktualizuj zmienne przy użyciu żądanych wartości. Następnie wprowadź polecenia interfejsu wiersza polecenia, aby ustawić zmienne środowiskowe.

    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. Utwórz grupę zasobów, wprowadzając poniższe polecenie:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Utwórz konto usługi Azure Storage, wprowadzając poniższe polecenie:

    # 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. Wyodrębnij klucz podstawowy z konta usługi Azure Storage i zapisz go w zmiennej, wprowadzając poniższe polecenie:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Utwórz kontener usługi Azure Storage, wprowadzając poniższe polecenie:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. Utwórz klaster usługi HDInsight. Przed wprowadzeniem polecenia zanotuj następujące parametry:

    1. Wymagane parametry dla klastrów platformy Kafka:

      Parametr Opis
      --Typu Wartość musi być kafka.
      --workernode-data-disks-per-node Liczba dysków danych do użycia na węzeł roboczy. Platforma Kafka w usłudze HDInsight jest obsługiwana tylko w przypadku dysków danych. W tym samouczku jest używana wartość 2.
    2. Wymagane parametry serwera proxy REST platformy Kafka:

      Parametr Opis
      --kafka-management-node-size Rozmiar węzła. W tym samouczku użyto wartości Standard_D4_v2.
      --kafka-client-group-id Klient Microsoft Entra identyfikator grupy zabezpieczeń dla serwera proxy REST platformy Kafka. Wartość jest przekazywana ze zmiennej $securityGroupID.
      --kafka-client-group-name Nazwa grupy zabezpieczeń microsoft Entra klienta dla serwera proxy REST platformy Kafka. Wartość jest przekazywana ze zmiennej $securityGroupName.
      --Wersja Wersja klastra usługi HDInsight musi być co najmniej 4.0. Wartość jest przekazywana ze zmiennej $clusterVersion.
      --component-version Wersja platformy Kafka musi być co najmniej 2.1. Wartość jest przekazywana ze zmiennej $componentVersion.

      Jeśli chcesz utworzyć klaster bez serwera proxy REST, wyeliminuj --kafka-management-node-sizeelement , --kafka-client-group-idi --kafka-client-group-name z az hdinsight create polecenia .

    3. Jeśli masz istniejącą sieć wirtualną, dodaj parametry --vnet-name i --subneti ich wartości.

    Wprowadź następujące polecenie, aby utworzyć klaster:

    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"
    

    Ukończenie procesu tworzenia klastra może potrwać kilka minut. Zwykle około 15.

Czyszczenie zasobów

Po ukończeniu korzystania z artykułu warto usunąć klaster. W usłudze HDInsight dane są przechowywane w usłudze Azure Storage, dzięki czemu można bezpiecznie usunąć klaster, gdy nie jest używany. Opłaty są również naliczane za klaster usługi HDInsight, nawet jeśli nie jest używany. Ponieważ opłaty za klaster są wielokrotnie większe niż opłaty za magazyn, warto usunąć klastry, gdy nie są używane.

Wprowadź wszystkie lub niektóre z następujących poleceń, aby usunąć zasoby:

# 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

Następne kroki

Po pomyślnym utworzeniu klastra serwera proxy REST platformy Apache Kafka w usłudze Azure HDInsight przy użyciu interfejsu wiersza polecenia platformy Azure użyj kodu języka Python do interakcji z serwerem proxy REST: