البرنامج التعليمي: إنشاء نظام مجموعة ممكن لوكيل Apache Kafka REST في HDInsight باستخدام Azure CLI

في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء مجموعة ممكنة لوكيل Apache Kafka REST في Azure HDInsight باستخدام Azure CLI. Azure HDInsight هي خدمة تحليلات مدارة كاملة الطيف ومفتوحة المصدر للمؤسسات. Apache Kafka عبارة عن منصة بث موزعة مفتوحة المصدر. غالبا ما يتم استخدامه كوسيط رسائل، لأنه يوفر وظائف مشابهة لقائمة انتظار رسائل النشر والاشتراك. يمكنك Kafka REST Proxy من التفاعل مع مجموعة Kafka الخاصة بك عبر واجهة برمجة تطبيقات REST عبر 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 باسم فريد عموما لنظام المجموعة الجديد.
    storageAccount استبدل STORAGEACCOUNTNAME باسم حساب التخزين الجديد.
    كلمة مرور http استبدل كلمة المرور بكلمة مرور لتسجيل الدخول إلى نظام المجموعة ، المسؤول.
    sshPassword استبدل كلمة المرور بكلمة مرور لاسم مستخدم الغلاف الآمن ، sshuser.
    securityGroupName استبدل SECURITYGROUPNAME باسم مجموعة أمان Microsoft Entra للعميل لوكيل Kafka REST. سيتم تمرير المتغير إلى --kafka-client-group-name المعلمة ل az-hdinsight-create.
    securityGroupID استبدل SECURITYGROUPID بمعرف مجموعة أمان Microsoft Entra للعميل لوكيل Kafka REST. سيتم تمرير المتغير إلى --kafka-client-group-id المعلمة ل az-hdinsight-create.
    حاوية التخزين حاوية التخزين التي ستستخدمها نظام المجموعة، اترك as-is لهذا البرنامج التعليمي. سيتم تعيين هذا المتغير باسم نظام المجموعة.
    workernodeCount عدد العقد العاملة في نظام المجموعة، اترك as-is لهذا البرنامج التعليمي. لضمان التوافر العالي ، يتطلب كافكا ما لا يقل عن 3 عقد عاملة
    clusterType نوع نظام مجموعة HDInsight، اترك as-is لهذا البرنامج التعليمي.
    إصدار نظام المجموعة إصدار مجموعة HDInsight ، اترك as-is لهذا البرنامج التعليمي. يتطلب Kafka REST Proxy الحد الأدنى لإصدار نظام المجموعة 4.0.
    إصدار المكون إصدار كافكا ، اترك as-is لهذا البرنامج التعليمي. يتطلب 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. قم بإنشاء حساب Azure Storage عن طريق إدخال الأمر أدناه:

    # 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 عن طريق إدخال الأمر أدناه:

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

    1. المعلمات المطلوبة لمجموعات كافكا:

      المعلمة ‏‏الوصف
      --نوع يجب أن تكون القيمة كافكا.
      --workernode-data-disks-per-node عدد أقراص البيانات المراد استخدامها لكل عقدة عامل. HDInsight Kafka مدعوم فقط مع أقراص البيانات. يستخدم هذا البرنامج التعليمي قيمة 2.
    2. المعلمات المطلوبة لوكيل Kafka REST:

      المعلمة ‏‏الوصف
      - كافكا إدارة حجم العقدة حجم العقدة. يستخدم هذا البرنامج التعليمي قيمة Standard_D4_v2.
      --kafka-client-group-id معرف مجموعة أمان Microsoft Entra للعميل لوكيل Kafka REST. يتم تمرير القيمة من المتغير $securityGroupID.
      --kafka-client-group-name اسم مجموعة أمان Microsoft Entra للعميل لوكيل Kafka REST. يتم تمرير القيمة من المتغير $securityGroupName.
      --الإصدار يجب أن يكون إصدار نظام مجموعة HDInsight 4.0 على الأقل. يتم تمرير القيمة من المتغير $clusterVersion.
      - إصدار مكون يجب أن يكون إصدار كافكا 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: