Udostępnij za pomocą


Samouczek: Utwórz klaster z włączonym serwerem proxy REST dla Apache Kafka w usłudze HDInsight, korzystając z Azure CLI

Z tego samouczka dowiesz się, jak utworzyć klaster Apache Kafka z obsługą serwera proxy REST w Azure HDInsight przy użyciu interfejsu wiersza polecenia platformy Azure. Azure HDInsight to zarządzana usługa analizy typu open source o pełnym spektrum 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 systemu publikowania i subskrybowania komunikatów. Serwer proxy REST platformy Kafka umożliwia interakcję z klastrem Platformy Kafka za pośrednictwem interfejsu API REST za pośrednictwem protokołu HTTP. Azure CLI firmy Microsoft to wieloplatformowe narzędzie do używania wiersza polecenia do zarządzania zasobami 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 Nawiązywanie połączenia z platformą 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 opiera się na Bashu. W innych środowiskach będą potrzebne niewielkie różnice.

    Zmienna Opis
    resourceGroupName (nazwa grupy zasobów) 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
    nazwa klastra Zastąp ciąg CLUSTERNAME globalnie unikatową nazwą nowego klastra.
    konto magazynu Zastąp tekst STORAGEACCOUNTNAME nazwą nowego konta magazynu.
    httpPassword Zastąp PASSWORD hasłem logowania do klastra, admin.
    sshPassword Zastąp ciąg PASSWORD hasłem dla nazwy użytkownika powłoki SSH sshuser.
    nazwaGrupyBezpieczeństwa Zastąp tekst SECURITYGROUPNAME nazwą grupy zabezpieczeń Microsoft Entra dla serwera proxy REST Kafka. Zmienna zostanie przekazana do parametru --kafka-client-group-name dla az-hdinsight-create.
    IdentyfikatorGrupyZabezpieczeń Zastąp wartość SECURITYGROUPID identyfikatorem grupy zabezpieczeń Microsoft Entra dla usługi Kafka REST Proxy. Zmienna zostanie przekazana do parametru --kafka-client-group-id dla az-hdinsight-create.
    pojemnik magazynowy Kontener do przechowywania używany przez klaster, pozostaw as-is na potrzeby tego samouczka. Ta zmienna zostanie ustawiona z nazwą klastra.
    workernodeCount Liczba węzłów roboczych w klastrze, pozostaw as-is dla tego samouczka. Aby zagwarantować wysoką dostępność, platforma Kafka wymaga co najmniej 3 węzłów roboczych
    typ klastra Typ klastra usługi HDInsight pozostaw as-is na potrzeby tego samouczka.
    wersja klastra Wersję klastra usługi HDInsight pozostaw jako as-is na potrzeby tego samouczka. Serwer proxy REST platformy Kafka wymaga minimalnej wersji klastra w wersji 4.0.
    wersja komponentu Dla tego samouczka pozostaw wersję Kafka as-is. Serwer proxy REST platformy Kafka wymaga minimalnej wersji składnika 2.1.

    Zaktualizuj zmienne przy użyciu żądanych wartości. Następnie wprowadź polecenia w konsoli, w celu ustawienia zmiennych środowiskowych.

    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
      --typ Wartość musi być kafka.
      --workernode-data-disks-per-node Liczba dysków danych do użycia dla węzła roboczego. Obsługa platformy Kafka w usłudze HDInsight dotyczy wyłącznie 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żywa się wartości Standard_D4_v2.
      --kafka-client-group-id Identyfikator grupy zabezpieczeń klienta Microsoft Entra dla serwera proxy REST platformy Kafka. Wartość jest przekazywana z $securityGroupID zmiennej.
      --kafka-client-group-name Nazwa grupy zabezpieczeń Microsoft Entra dla klienta 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 z $componentVersion zmiennej.

      Jeśli chcesz utworzyć klaster bez serwera proxy REST, wyeliminuj --kafka-management-node-size element, --kafka-client-group-id i --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: