Tutorial: Membuat kluster yang diaktifkan proxy Apache Kafka REST di HDInsight menggunakan Azure CLI
Dalam tutorial ini, Anda mempelajarai cara membuat kluster yang diaktifkan proxy REST Apache Kafka di Azure HDInsight menggunakan Azure CLI. Azure HDInsight merupakan layanan analitik sumber terbuka terkelola dengan spektrum penuh untuk perusahaan. Apache Kafka adalah platform streaming sumber terbuka yang didistribusikan. Platform ini sering digunakan sebagai perantara pesan, karena menyediakan fungsionalitas yang mirip dengan antrian pesan terbitkan-berlangganan. Kafka REST Proxy memungkinkan Anda berinteraksi dengan kluster Kafka melalui REST API lewat HTTP. Azure CLI adalah pengalaman baris perintah lintas platform Microsoft untuk mengelola sumber daya Azure.
API Apache Kafka hanya dapat diakses oleh sumber daya di dalam jaringan virtual yang sama. Anda dapat mengakses kluster secara langsung menggunakan SSH. Untuk menghubungkan layanan, jaringan, atau komputer virtual lainnya ke Apache Kafka, Anda harus terlebih dahulu membuat jaringan virtual dan kemudian membuat sumber daya dalam jaringan. Untuk informasi selengkapnya, lihat Terhubung ke Apache Kafka menggunakan jaringan virtual.
Dalam tutorial ini, Anda mempelajari:
- Prasyarat untuk proxy Kafka REST
- Membuat kluster Apache Kafka menggunakan Azure CLI
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Prasyarat
Aplikasi yang terdaftar dengan ID Microsoft Entra. Aplikasi klien yang Anda tulis untuk berinteraksi dengan proxy Kafka REST akan menggunakan ID aplikasi ini dan rahasia untuk mengautentikasi ke Azure. Untuk informasi selengkapnya, lihat Daftarkan aplikasi dengan platform identitas Microsoft.
Grup keamanan Microsoft Entra dengan aplikasi terdaftar Anda sebagai anggota. Grup keamanan ini akan digunakan untuk mengontrol aplikasi mana yang diizinkan untuk berinteraksi dengan proksi REST. Untuk informasi selengkapnya tentang membuat grup Microsoft Entra, lihat Membuat grup dasar dan menambahkan anggota menggunakan ID Microsoft Entra.
Azure CLI. Pastikan Anda memiliki setidaknya versi 2.0.79. Lihat Instal Azure CLI.
Membuat kluster Apache Kafka
Masuk ke langganan Azure Anda.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
Atur variabel lingkungan. Penggunaan variabel dalam tutorial ini didasarkan pada Bash. Sedikit variasi akan diperlukan untuk lingkungan lain.
Variabel Deskripsi resourceGroupName Ganti RESOURCEGROUPNAME dengan nama untuk grup sumber daya baru Anda. lokasi Ganti LOCATION dengan wilayah tempat kluster akan dibuat. Untuk daftar lokasi yang valid, gunakan perintah az account list-locations
clusterName Ganti CLUSTERNAME dengan nama unik global untuk kluster baru Anda. storageAccount Ganti STORAGEACCOUNTNAME dengan nama untuk akun penyimpanan baru Anda. httpPassword Ganti PASSWORD dengan kata sandi untuk masuk kluster, admin. sshPassword Ganti PASSWORD dengan kata sandi untuk nama pengguna shell aman, sshuser. securityGroupName Ganti SECURITYGROUPNAME dengan nama grup keamanan Microsoft Entra klien untuk Kafka REST Proxy. Variabel akan diteruskan ke parameter --kafka-client-group-name
untukaz-hdinsight-create
.securityGroupID Ganti SECURITYGROUPID dengan ID grup keamanan Microsoft Entra klien untuk Kafka REST Proxy. Variabel akan diteruskan ke parameter --kafka-client-group-id
untukaz-hdinsight-create
.storageContainer Kontainer penyimpanan yang akan digunakan kluster, biarkan apa adanya untuk tutorial ini. Variabel ini akan diatur dengan nama kluster. workernodeCount Jumlah node pekerja dalam kluster, biarkan apa adanya untuk tutorial ini. Untuk menjamin ketersediaan tinggi, Kafka membutuhkan minimal 3 node pekerja clusterType Jenis kluster HDInsight, biarkan apa adanya untuk tutorial ini. clusterVersion Jenis kluster HDInsight, biarkan apa adanya untuk tutorial ini. Proksi REST Kafka membutuhkan versi kluster minimum 4.0. componentVersion Versi Kafka, tinggalkan apa adanya untuk tutorial ini. Proksi REST Kafka membutuhkan versi komponen minimum 2.1. Perbarui variabel dengan nilai yang diinginkan. Kemudian masukkan perintah CLI untuk mengatur variabel lingkungan.
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
Buat grup sumber daya dengan memasukkan perintah di bawah ini:
az group create \ --location $location \ --name $resourceGroupName
Buat akun Azure Storage dengan memasukkan perintah di bawah ini:
# 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
Ekstrak kunci primer dari akun Azure Storage dan simpan dalam variabel dengan memasukkan perintah di bawah ini:
export storageAccountKey=$(az storage account keys list \ --account-name $storageAccount \ --resource-group $resourceGroupName \ --query [0].value -o tsv)
Buat kontainer Azure Storage dengan memasukkan perintah di bawah ini:
az storage container create \ --name $storageContainer \ --account-key $storageAccountKey \ --account-name $storageAccount
Buat Kluster HDInsight. Sebelum memasukkan perintah, perhatikan parameter berikut:
Parameter yang diperlukan untuk kluster Kafka:
Parameter Deskripsi --type Nilainya harus Kafka. --workernode-data-disks-per-node Jumlah disk data yang digunakan per node pekerja. HDInsight Kafka hanya didukung dengan disk data. Tutorial ini menggunakan nilai 2. Parameter yang diperlukan untuk kluster Kafka:
Parameter Deskripsi --kafka-management-node-size Ukuran node. Tutorial ini menggunakan nilai Standard_D4_v2. --kafka-client-group-id ID grup keamanan Microsoft Entra klien untuk Kafka REST Proxy. Nilai diteruskan dari variabel $securityGroupID. --kafka-client-group-id Nama grup keamanan Microsoft Entra klien untuk Kafka REST Proxy. Nilai diteruskan dari variabel $securityGroupName. --versi Versi kluster HDInsight harus minimal 4.0. Nilai diteruskan dari variabel $clusterVersion. --component-version Versi Kafka harus setidaknya 2.1. Nilai diteruskan dari variabel $componentVersion. Jika Anda ingin membuat kluster tanpa proxy REST, hilangkan
--kafka-management-node-size
,--kafka-client-group-id
, dan--kafka-client-group-name
dari perintahaz hdinsight create
.Jika Anda memiliki jaringan virtual yang ada, tambahkan parameter
--vnet-name
dan--subnet
, dan nilainya.
Jalankan perintah berikut untuk membuat kluster:
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"
Mungkin perlu waktu beberapa menit agar proses pembuatan klaster selesai. Biasanya sekitar 15 menit.
Membersihkan sumber daya
Setelah Anda menyelesaikan artikel ini, Anda dapat menghapus kluster. Dengan HDInsight, data Anda disimpan di Azure Storage, sehingga Anda dapat menghapus kluster dengan aman saat tidak digunakan. Anda juga dikenakan biaya untuk kluster HDInsight, bahkan saat tidak digunakan. Karena biaya untuk kluster berkali-kali lebih banyak daripada biaya untuk penyimpanan, masuk akal secara ekonomis untuk menghapus kluster saat tidak digunakan.
Masukkan semua atau beberapa perintah berikut ini untuk menghapus sumber daya:
# 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
Langkah berikutnya
Sekarang setelah Anda berhasil membuat kluster yang diaktifkan proxy Apache Kafka REST di Azure HDInsight menggunakan Azure CLI, gunakan kode Python untuk berinteraksi dengan proxy REST: