مشاركة عبر


البرنامج التعليمي: إنشاء مجموعة ممكّنة لوكيل 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، فأنشئ حساباً مجانيّاً قبل البدء.

المتطلبات الأساسية

إنشاء نظام مجموعة Apache Kafka

  1. سجل الدخول إلى اشتراك Azure الخاص بك.

    az login
    
    # If you have multiple subscriptions, set the one to use
    # az account set --subscription "SUBSCRIPTIONID"
    
  2. قم بتعيين متغيرات البيئة. يعتمد استخدام المتغيرات في هذا البرنامج التعليمي على 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
    
  3. أنشئ نظام مجموعة الموارد بإدخال الأمر أدناه:

     az group create \
        --location $location \
        --name $resourceGroupName
    
  4. 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
    
  5. استخرج المفتاح الأساسي من حساب Azure Storage وقم بتخزينه في أحد المتغيرات عن طريق إدخال الأمر أدناه:

    export storageAccountKey=$(az storage account keys list \
        --account-name $storageAccount \
        --resource-group $resourceGroupName \
        --query [0].value -o tsv)
    
  6. أنشئ حاوية Azure Storage بإدخال الأمر أدناه:

    az storage container create \
        --name $storageContainer \
        --account-key $storageAccountKey \
        --account-name $storageAccount
    
  7. إنشاء مجموعة HDInsight. قبل إدخال الأمر، لاحظ المعلمات التالية:

    1. المعلمات المطلوبة لمجموعات نظام Kafka:

      المعلمة ‏‏الوصف‬
      --type يجب أن تكون القيمة Kafka.
      --workernode-data-disks-per-node عدد أقراص البيانات المطلوب استخدامها لكل عقدة عاملة. HDInsight Kafka مدعوم فقط بأقراص البيانات. يستخدم هذا البرنامج التعليمي قيمة 2.
    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.

    3. إذا كانت لديك شبكة ظاهرية موجودة، فأضف المعلمات --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: