Aracılığıyla paylaş


Öğretici: Azure CLI kullanarak HDInsight'ta Apache Kafka REST proxy özellikli küme oluşturma

Bu öğreticide, Azure CLI kullanarak Azure HDInsight'ta Apache Kafka REST proxy özellikli bir küme oluşturmayı öğreneceksiniz. Azure HDInsight kuruluşlara yönelik, yönetilen, tam spektrumlu ve açık kaynaklı bir analiz hizmetidir. Apache Kafka açık kaynaklı, dağıtılmış bir akış platformudur. Yayımla-abone ol ileti kuyruğuna benzer işlevler sağladığı için genellikle ileti aracısı olarak kullanılır. Kafka REST Proxy, HTTP üzerinden bir REST API aracılığıyla Kafka kümenizle etkileşim kurmanızı sağlar. Azure CLI, Azure kaynaklarını yönetmek için Microsoft tarafından sunulan platformlar arası komut satırı deneyimidir.

Apache Kafka API'sine yalnızca aynı sanal ağ içindeki kaynaklar tarafından erişilebilir. Kümeye doğrudan SSH kullanarak erişebilirsiniz. Diğer hizmetleri, ağları veya sanal makineleri Apache Kafka'ya bağlamak için önce bir sanal ağ oluşturmanız e sonra ağ içinde kaynakları oluşturmanız gerekir. Daha fazla bilgi için bkz. Sanal ağ kullanarak Apache Kafka'ya Bağlan.

Bu öğreticide şunları öğreneceksiniz:

  • Kafka REST proxy önkoşulları
  • Azure CLI kullanarak Apache Kafka kümesi oluşturma

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Ön koşullar

  • Microsoft Entra Kimliği ile kaydedilmiş bir uygulama. Kafka REST proxy'si ile etkileşime geçmek için yazdığınız istemci uygulamaları, Azure'da kimlik doğrulaması yapmak için bu uygulamanın kimliğini ve gizli dizisini kullanır. Daha fazla bilgi için bkz. Uygulamayı Microsoft kimlik platformu kaydetme.

  • Kayıtlı uygulamanızı üye olarak içeren bir Microsoft Entra güvenlik grubu. Bu güvenlik grubu, HANGI uygulamaların REST proxy ile etkileşim kurmasına izin verileceğini denetlemek için kullanılır. Microsoft Entra grupları oluşturma hakkında daha fazla bilgi için bkz . Temel grup oluşturma ve Microsoft Entra Id kullanarak üye ekleme.

  • Azure CLI. En az 2.0.79 sürümüne sahip olduğunuzdan emin olun. Bkz . Azure CLI'yi yükleme.

Apache Kafka kümesi oluşturma

  1. Azure aboneliğinizde oturum açın.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. Ortam değişkenlerini ayarlayın. Bu öğreticide değişkenlerin kullanımı Bash'i temel alır. Diğer ortamlar için hafif çeşitlemeler gerekecektir.

    Değişken Tanım
    resourceGroupName RESOURCEGROUPNAME değerini yeni kaynak grubunuzun adıyla değiştirin.
    konum LOCATION değerini kümenin oluşturulacağı bölgeyle değiştirin. Geçerli konumların listesi için komutunu kullanın az account list-locations
    clusterName CLUSTERNAME değerini yeni kümeniz için genel olarak benzersiz bir adla değiştirin.
    storageAccount STORAGEACCOUNTNAME değerini yeni depolama hesabınız için bir adla değiştirin.
    httpPassword PASSWORD değerini küme oturum açma parolası ile değiştirin, yönetici.
    sshPassword PASSWORD değerini, güvenli kabuk kullanıcı adı olan sshuser için bir parolayla değiştirin.
    securityGroupName SECURITYGROUPNAME değerini Kafka REST Proxy için istemci Microsoft Entra güvenlik grubu adıyla değiştirin. değişkeni parametresine --kafka-client-group-name az-hdinsight-creategeçirilir.
    securityGroupID SECURITYGROUPID değerini Kafka REST Proxy için istemci Microsoft Entra güvenlik grubu kimliğiyle değiştirin. değişkeni parametresine --kafka-client-group-id az-hdinsight-creategeçirilir.
    storageContainer Kümenin kullanacağı kapsayıcı Depolama bu öğretici için olduğu gibi bırakın. Bu değişken küme adıyla ayarlanır.
    workernodeCount Kümedeki çalışan düğümlerinin sayısı, bu öğretici için olduğu gibi bırakın. Yüksek kullanılabilirliği garanti etmek için Kafka için en az 3 çalışan düğümü gerekir
    clusterType HDInsight kümesi türü, bu öğretici için olduğu gibi bırakın.
    clusterVersion HDInsight küme sürümü, bu öğretici için olduğu gibi bırakın. Kafka REST Proxy için en düşük küme sürümü 4.0 gerekir.
    componentVersion Kafka sürümü, bu öğretici için olduğu gibi bırakın. Kafka REST Proxy için en düşük bileşen sürümü 2.1 gerekir.

    Değişkenleri istenen değerlerle güncelleştirin. Ardından ortam değişkenlerini ayarlamak için CLI komutlarını girin.

    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. Aşağıdaki komutu girerek kaynak grubunu oluşturun:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. Aşağıdaki komutu girerek bir Azure Depolama hesabı oluşturun:

    # 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. Azure Depolama hesabından birincil anahtarı ayıklayın ve aşağıdaki komutu girerek bir değişkende depolayın:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. Aşağıdaki komutu girerek bir Azure Depolama kapsayıcısı oluşturun:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. HDInsight kümesini oluşturun. Komutu girmeden önce aşağıdaki parametreleri not edin:

    1. Kafka kümeleri için gerekli parametreler:

      Parametre Tanım
      --Türü Değer Kafka olmalıdır.
      --workernode-data-disks-per-node Çalışan düğümü başına kullanılacak veri disklerinin sayısı. HDInsight Kafka yalnızca veri diskleriyle desteklenir. Bu öğreticide 2 değeri kullanılır.
    2. Kafka REST proxy için gerekli parametreler:

      Parametre Tanım
      --kafka-management-node-size Düğümün boyutu. Bu öğreticide Standard_D4_v2 değeri kullanılır.
      --kafka-client-group-id Kafka REST Proxy için istemci Microsoft Entra güvenlik grubu kimliği. Değer, $securityGroupID değişkeninden geçirilir.
      --kafka-client-group-name Kafka REST Proxy için istemci Microsoft Entra güvenlik grubu adı. Değer, $securityGroupName değişkeninden geçirilir.
      --Sürüm HDInsight kümesi sürümü en az 4.0 olmalıdır. Değer, $clusterVersion değişkeninden geçirilir.
      --component-version Kafka sürümü en az 2.1 olmalıdır. Değer, $componentVersion değişkeninden geçirilir.

      Kümeyi REST proxy olmadan oluşturmak istiyorsanız, komutundan az hdinsight create , --kafka-client-group-idve --kafka-client-group-name öğesini kaldırın--kafka-management-node-size.

    3. Mevcut bir sanal ağınız varsa, ve parametrelerini --vnet-name ve --subnetdeğerlerini ekleyin.

    Kümeyi oluşturmak için aşağıdaki komutu girin:

    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"
    

    Küme oluşturma işleminin tamamlanması birkaç dakika sürebilir. Genellikle 15 civarında.

Kaynakları temizleme

Makaleyi tamamladıktan sonra kümeyi silmek isteyebilirsiniz. HDInsight ile verileriniz Azure Depolama'de depolanır, böylece kullanılmadığında kümeyi güvenle silebilirsiniz. Kullanımda olmasa bile HDInsight kümesi için de ücretlendirilirsiniz. Küme ücretleri depolama ücretlerinden çok daha fazla olduğundan, kullanımda olmayan kümeleri silmek ekonomik bir anlam ifade eder.

Kaynakları kaldırmak için aşağıdaki komutların tümünü veya bazılarını girin:

# 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

Sonraki adımlar

Azure CLI kullanarak Azure HDInsight'ta Apache Kafka REST proxy özellikli bir kümeyi başarıyla oluşturduğunuza göre, REST ara sunucusuyla etkileşime geçmek için Python kodunu kullanın: