البرنامج التعليمي: إنشاء مجموعة ممكّنة لوكيل Apache Kafka REST في HDInsight باستخدام Azure CLI
في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء مجموعة Apache Kafka تمكين وكيل REST في Azure HDInsight باستخدام Azure CLI. Azure HDInsight هي خدمة تحليلات مدارة كاملة الطيف ومفتوحة المصدر للمؤسسات. Apache Kafka عبارة عن منصة تدفق موزعة ومفتوحة المصدر. غالباً ما يتم استخدامها كوسيط رسائل، حيث يوفر وظائف مشابهة لقائمة انتظار publish-subscribe. يتيح لك Kafka REST Proxy التفاعل مع مجموعة Kafka عبر REST API عبر HTTP. Azure CLI هو تجربة سطر أوامر عبر الأنظمة الأساسية من Microsoft لإدارة موارد Azure.
لا يمكن الوصول إلى واجهة برمجة تطبيقات Apache Kafka إلا من خلال الموارد الموجودة داخل نفس الشبكة الظاهرية. يمكنك الوصول إلى النظام مجموعة مباشرة باستخدام SSH. لتوصيل خدمات أو شبكات أو أجهزة ظاهرية أخرى بـ Apache Kafka، يجب عليك أولاً إنشاء شبكة ظاهرية ثم إنشاء الموارد داخل الشبكة. لمزيد من المعلومات، راجع الاتصال بـ Apache Kafka باستخدام شبكة ظاهرية.
ستتعلم في هذا البرنامج التعليمي ما يلي:
- المتطلبات الأساسية لوكيل Kafka REST
- قم بإنشاء مجموعة Apache Kafka باستخدام Azure CLI
في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
المتطلبات الأساسية
تطبيق مسجل بمعرف Microsoft Entra. ستستخدم تطبيقات العميل التي تكتبها للتفاعل مع وكيل Kafka REST معرف وسر هذا التطبيق للمصادقة على Azure. لمزيد من المعلومات، راجع تسجيل تطبيق في النظام الأساسي للهوية من Microsoft.
مجموعة أمان Microsoft Entra مع تطبيقك المسجل كعضو. سيتم استخدام مجموعة الأمان هذه للتحكم في التطبيقات التي يُسمح لها بالتفاعل مع وكيل REST. لمزيد من المعلومات حول إنشاء مجموعات Microsoft Entra، راجع إنشاء مجموعة أساسية وإضافة أعضاء باستخدام معرف Microsoft Entra.
Azure CLI تأكد من أن لديك على الأقل الإصدار 2.0.79. راجع Install the Azure CLI.
إنشاء نظام مجموعة Apache Kafka
سجل الدخول إلى اشتراك Azure الخاص بك.
az login # If you have multiple subscriptions, set the one to use # az account set --subscription "SUBSCRIPTIONID"
قم بتعيين متغيرات البيئة. يعتمد استخدام المتغيرات في هذا البرنامج التعليمي على Bash. ستكون هناك حاجة إلى اختلافات طفيفة للبيئات الأخرى.
المتغير الوصف resourceGroupName استبدل RESOURCEGROUPNAME باسم مجموعة الموارد الجديدة. موقع استبدل LOCATION بمنطقة حيث سيتم إنشاء النظام مجموعة. للحصول على قائمة بالمواقع الصالحة، استخدم الأمر az account list-locations
clusterName استبدل CLUSTERNAME باسم فريد عالمياً لمجموعتك الجديدة. storageAccount استبدل STORAGEACCOUNTNAME باسم حساب التخزين الجديد. httpPassword استبدل PASSWORD بكلمة مرور لتسجيل الدخول إلى المجموعة، admin. sshPassword استبدل PASSWORD بكلمة مرور لاسم مستخدم shell الآمن، sshuser. securityGroupName استبدل SECURITYGROUPNAME باسم مجموعة أمان Microsoft Entra للعميل ل Kafka REST Proxy. سيتم تمرير المتغير إلى المعامل --kafka-client-group-name
لـaz-hdinsight-create
.SecurityGroupID استبدل SECURITYGROUPID بمعرف مجموعة أمان Microsoft Entra للعميل ل Kafka REST Proxy. سيتم تمرير المتغير إلى المعامل --kafka-client-group-id
لـaz-hdinsight-create
.storageContainer حاوية التخزين التي ستستخدمها المجموعة، اتركها كما هي لهذا البرنامج التعليمي. سيتم تعيين هذا المتغير باسم النظام مجموعة. workernodeCount عدد العقد العاملة في المجموعة، اتركها كما هي في هذا البرنامج التعليمي. لضمان التوافر العالي، فإن Kafka يتطلب 3 عقد عاملة على الأقل clusterType نوع مجموعة HDInsight، اتركها كما هي في هذا البرنامج التعليمي. clusterVersion إصدار مجموعة HDInsight، اتركه كما هو لهذا البرنامج التعليمي. يتطلب Kafka REST Proxy إصداراً للكتلة 4.0 كحد أدنى. componentVersion إصدار Kafka، اتركها كما هي في هذا البرنامج التعليمي. يتطلب Kafka REST Proxy إصدار مكون بحد أدنى 2.1. قم بتحديث المتغيرات بالقيم المرغوبة. ثم أدخِل أوامر CLI لتعيين متغيرات البيئة.
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
أنشئ نظام مجموعة الموارد بإدخال الأمر أدناه:
az group create \ --location $location \ --name $resourceGroupName
Create an Azure Storage account بإدخال الأمر أدناه:
# 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
استخرج المفتاح الأساسي من حساب Azure Storage وقم بتخزينه في أحد المتغيرات عن طريق إدخال الأمر أدناه:
export storageAccountKey=$(az storage account keys list \ --account-name $storageAccount \ --resource-group $resourceGroupName \ --query [0].value -o tsv)
أنشئ حاوية Azure Storage بإدخال الأمر أدناه:
az storage container create \ --name $storageContainer \ --account-key $storageAccountKey \ --account-name $storageAccount
إنشاء مجموعة HDInsight. قبل إدخال الأمر، لاحظ المعلمات التالية:
المعلمات المطلوبة لمجموعات نظام Kafka:
المعلمة الوصف --type يجب أن تكون القيمة Kafka. --workernode-data-disks-per-node عدد أقراص البيانات المطلوب استخدامها لكل عقدة عاملة. HDInsight Kafka مدعوم فقط بأقراص البيانات. يستخدم هذا البرنامج التعليمي قيمة 2. المعلمات المطلوبة لوكيل Kafka REST:
المعلمة الوصف --kafka-management-node-size حجم العقدة. يستخدم هذا البرنامج التعليمي القيمة Standard_D4_v2. --kafka-client-group-id معرف مجموعة أمان Microsoft Entra للعميل ل Kafka REST Proxy. يتم تمرير القيمة من المتغير securityGroupID $. --kafka-client-group-name اسم مجموعة أمان Microsoft Entra للعميل ل Kafka REST Proxy. يتم تمرير القيمة من المتغير $ securityGroupName. --version يجب أن يكون إصدار مجموعة HDInsight 4.0 على الأقل. يتم تمرير القيمة من المتغير $ clusterVersion. --component-version يجب أن يكون إصدار Kafka على الأقل 2.1. يتم تمرير القيمة من المتغير $ componentVersion. إذا كنت ترغب في إنشاء نظام المجموعة بدون وكيل REST، فقم بإزالة
--kafka-management-node-size
و--kafka-client-group-id
و--kafka-client-group-name
من الأمرaz hdinsight create
.إذا كانت لديك شبكة ظاهرية موجودة، فأضف المعلمات
--vnet-name
و--subnet
وقيمها.
أدخل الأمر التالي لإنشاء النظام مجموعة:
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"
قد تستغرق عملية إنشاء النظام مجموعة عدة دقائق حتى تكتمل. عادة حوالي 15.
تنظيف الموارد
بعد إكمال المقالة، قد ترغب في حذف نظام المجموعة. من خلال HDInsight، يتم تخزين البيانات الخاصة بك في Azure Storage؛ لذا يمكنك حذف المجموعة بأمان عندما لا تكون قيد الاستخدام. يتم محاسبتك أيضاً على نظام مجموعة HDInsight، حتى عندما لا تكون قيد الاستخدام. نظراً لأن رسوم نظام المجموعة تزيد عدة مرات عن رسوم التخزين، فمن المنطقي اقتصادياً حذف أنظمة المجموعات عندما لا تكون قيد الاستخدام.
أدخِل كل الأوامر التالية أو بعضها لحذف الموارد:
# 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
الخطوات التالية
الآن بعد أن أنشأت بنجاح مجموعة ممكّنة لوكيل Apache Kafka REST في Azure HDInsight باستخدام Azure CLI، استخدم كود Python للتفاعل مع وكيل REST: