برنامج تعليمي: إنشاء مجموعات Apache Hadoop عند الطلب في HDInsight باستخدام Azure Data Factory

في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء مجموعة Apache Hadoop ، عند الطلب، في Azure HDInsight باستخدام Azure Data Factory. يمكنك بعد ذلك استخدام خطوط أنابيب البيانات في Azure Data Factory لتشغيل مهام Hive وحذف المجموعة. بنهاية هذا البرنامج التعليمي، ستتعلم كيفية operationalize تشغيل مهمة البيانات الضخمة حيث يتم إنشاء نظام المجموعة وتشغيل الوظيفة وحذف نظام المجموعة على جدول زمني.

يشمل البرنامج التعليمي المهام التالية:

  • أنشئ حساب خدمة في Azure
  • فهم نشاط Azure Data Factory
  • قم بإنشاء مصنع بيانات باستخدام مدخل Azure
  • إنشاء linked services
  • إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية
  • قم بتشغيل خط أنابيب
  • مراقبة خط الأنابيب
  • تحقق من الإخراج

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

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

  • تم تثبيت PowerShell ​​Az Module.

  • كيان خدمة Microsoft Entra. بمجرد إنشاء كيان الخدمة، تأكد من استرداد معرف التطبيق ومفتاح المصادقة باستخدام الإرشادات الواردة في المقالة المرتبطة. أنت بحاجة إلى هذه القيم لاحقًا في هذا البرنامج التعليمي. تأكد أيضا من أن كيان الخدمة عضو في دور المساهم للاشتراك أو مجموعة الموارد التي يتم إنشاء نظام المجموعة فيها. للحصول على إرشادات لاسترداد القيم المطلوبة وتعيين الأدوار الصحيحة، راجع إنشاء كيان خدمة Microsoft Entra.

إنشاء كائنات Azure أولية

في هذا القسم، تقوم بإنشاء كائنات متنوعة سيتم استخدامها لمجموعة HDInsight التي تقوم بإنشائها عند الطلب. سيحتوي حساب التخزين الذي تم إنشاؤه على نموذج برنامج HiveQL النصي، partitionweblogs.hql، الذي تستخدمه لمحاكاة عينة مهمة Apache Hive التي تعمل على نظام المجموعة.

يستخدم هذا القسم برنامجAzure PowerShell النصي لإنشاء حساب التخزين ونسخ الملفات المطلوبة داخل حساب التخزين. يقوم نموذج البرنامج النصيAzure PowerShell في هذا القسم بالمهام التالية:

  1. يقوم بتسجيل الدخول إلى Azure.
  2. ينشئ مجموعة موارد Azure.
  3. إنشاء حساب تخزين Azure.
  4. ينشئ حاوية Blob في حساب التخزين
  5. نسخ نموذج البرنامج النصي HiveQL (partitionweblogs.hql) حاوية Blob. يتوفر نموذج البرنامج النصي بالفعل في حاوية Blob عامة أخرى. يقوم برنامج PowerShell النصي أدناه بعمل نسخة من هذه الملفات في حساب Azure Storage الذي يقوم بإنشائه.

إنشاء حساب تخزين ونسخ الملفات

هام

حدد أسماء مجموعة موارد Azure وحساب تخزين Azure الذي سيتم إنشاؤه بواسطة البرنامج النصي. اكتب اسم مجموعة الموارد واسم حساب التخزين ومفتاححساب التخزين الناتج عن البرنامج النصي. لا بد من توافرهم في القسم التالي.

$resourceGroupName = "<Azure Resource Group Name>"
$storageAccountName = "<Azure Storage Account Name>"
$location = "East US"

$sourceStorageAccountName = "hditutorialdata"  
$sourceContainerName = "adfv2hiveactivity"

$destStorageAccountName = $storageAccountName
$destContainerName = "adfgetstarted" # don't change this value.

####################################
# Connect to Azure
####################################
#region - Connect to Azure subscription
Write-Host "`nConnecting to your Azure subscription ..." -ForegroundColor Green
$sub = Get-AzSubscription -ErrorAction SilentlyContinue
if(-not($sub))
{
    Connect-AzAccount
}

# If you have multiple subscriptions, set the one to use
# Select-AzSubscription -SubscriptionId "<SUBSCRIPTIONID>"

#endregion

####################################
# Create a resource group, storage, and container
####################################

#region - create Azure resources
Write-Host "`nCreating resource group, storage account and blob container ..." -ForegroundColor Green

New-AzResourceGroup `
    -Name $resourceGroupName `
    -Location $location

New-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName `
    -Kind StorageV2 `
    -Location $location `
    -SkuName Standard_LRS `
    -EnableHttpsTrafficOnly 1

$destStorageAccountKey = (Get-AzStorageAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $destStorageAccountName)[0].Value

$sourceContext = New-AzStorageContext `
    -StorageAccountName $sourceStorageAccountName `
    -Anonymous

$destContext = New-AzStorageContext `
    -StorageAccountName $destStorageAccountName `
    -StorageAccountKey $destStorageAccountKey

New-AzStorageContainer `
    -Name $destContainerName `
    -Context $destContext
#endregion

####################################
# Copy files
####################################
#region - copy files
Write-Host "`nCopying files ..." -ForegroundColor Green

$blobs = Get-AzStorageBlob `
    -Context $sourceContext `
    -Container $sourceContainerName `
    -Blob "hivescripts\hivescript.hql"

$blobs|Start-AzStorageBlobCopy `
    -DestContext $destContext `
    -DestContainer $destContainerName `
    -DestBlob "hivescripts\partitionweblogs.hql"

Write-Host "`nCopied files ..." -ForegroundColor Green
Get-AzStorageBlob `
    -Context $destContext `
    -Container $destContainerName
#endregion

Write-host "`nYou will use the following values:" -ForegroundColor Green
write-host "`nResource group name: $resourceGroupName"
Write-host "Storage Account Name: $destStorageAccountName"
write-host "Storage Account Key: $destStorageAccountKey"

Write-host "`nScript completed" -ForegroundColor Green

تحقق من حساب التخزين

  1. قم بتسجيل الدخول إلى مدخل Microsoft Azure.
  2. من اليسار، انتقل إلى All services>General>Resource groups.
  3. حدد اسم مجموعة الموارد الذي أنشأته في برنامج PowerShell النصي. استخدم عامل التصفية إذا كان لديك عدد كبير جدًّا من مجموعات الموارد المدرجة.
  4. من طريقة العرض نظرة عامة، ترى موردا واحدا مدرجا ما لم تشارك مجموعة الموارد مع مشاريع أخرى. هذا المورد هو حساب التخزين بالاسم الذي حددته سابقًا. حدد اسم حساب التخزين.
  5. حدد تجانب Containers .
  6. حدد الحاوية adfgetstarted . ترى مجلدا يسمى hivescripts.
  7. افتح المجلد وتأكد من أنه يحتوي على نموذج ملف البرنامج النصي، partitionweblogs.hql.

افهم نشاط Azure Data Factory

ينسق Azure Data Factory حركة البيانات وتحويلها ويأتمتتها. يمكن لـ Azure Data Factory إنشاء مجموعة HDInsight Hadoop في الوقت المناسب لمعالجة شريحة بيانات الإدخال وحذف المجموعة عند اكتمال المعالجة.

في Azure Data Factory، يمكن أن يحتوي مصنع البيانات على واحد أو أكثر من خطوط أنابيب البيانات. يحتوي خط أنابيب البيانات على نشاط واحد أو أكثر. هناك نوعان من الأنشطة:

  • أنشطة نقل البيانات. يمكنك استخدام أنشطة حركة البيانات لنقل البيانات من مخزن بيانات المصدر إلى مخزن بيانات الوجهة.
  • أنشطة تحويل البيانات. يمكنك استخدام أنشطة تحويل البيانات لتحويل / معالجة البيانات. يعد HDInsight Hive Activity أحد أنشطة التحويل التي يدعمها Data Factory. يمكنك استخدام نشاط تحويل الخلية في هذا البرنامج التعليمي.

في هذه المقالة، تقوم بتكوين نشاط الخلية لإنشاء مجموعة HDInsight Hadoop عند الطلب. عند تشغيل النشاط لمعالجة البيانات، إليك ما يحدث:

  1. يتم إنشاء مجموعة HDInsight Hadoop تلقائيًّا لك في الوقت المناسب لمعالجة الشريحة.

  2. تتم معالجة بيانات الإدخال عن طريق تشغيل برنامج نصي HiveQL على الكتلة. في هذا البرنامج التعليمي، يقوم نص HiveQL المرتبط بنشاط الخلية بالإجراءات التالية:

    • يستخدم الجدول الموجود (hivesampletable) لإنشاء جدول آخر HiveSampleOut.
    • يملأ جدول HiveSampleOut بأعمدة محددة فقط من hivesampletable الأصلي.
  3. يتم حذف مجموعة HDInsight Hadoop بعد اكتمال المعالجة وتكون المجموعة خاملة للمدة التي تم تكوينها (إعداد timeToLive). إذا كانت شريحة البيانات التالية متاحة للمعالجة في وقت الخمول هذا، فسيتم استخدام نفس المجموعة لمعالجة الشريحة.

إنشاء مصدرًا للبيانات

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. من القائمة اليسرى، انتقل إلى + Create a resource>Analytics>Data Factory.

    Azure Data Factory on the portal.

  3. أدخل القيم التالية أو حددها للوحة New data factory :

    الخاصية القيمة
    الاسم إدخال اسم لـ data factory. يجب أن يكون هذا الاسم فريدًا بشكل عام.
    إصدار اتركه في الإصدار 2.
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد مجموعة الموارد التي قمت بإنشائها باستخدام برنامج PowerShell النصي.
    الموقع يتم تعيين الموقع تلقائيًّا إلى الموقع الذي حددته أثناء إنشاء مجموعة الموارد مسبقًا. لهذا البرنامج التعليمي، يتم تعيين الموقع إلى شرق الولايات المتحدة.
    تمكين GIT قم بإلغاء تحديد هذا المربع.

    Create Azure Data Factory using Azure portal.

  4. حدد إنشاء. قد يستغرق إنشاء مصنع بيانات ما بين 2 إلى 4 دقائق.

  5. بمجرد إنشاء مصنع البيانات، ستتلقى إعلاما بنجاح النشر مع زر الانتقال إلى المورد . حدد Go to resource لفتح طريقة العرض الافتراضية Data Factory.

  6. حدد Author & Monitor لتشغيل مدخل تأليف ومراقبة Azure Data Factory.

    Azure Data Factory portal overview.

إنشاء linked services

في هذا القسم، تقوم بتأليف خدمتين مرتبطتين داخل مصنع البيانات الخاص بك.

  • تربط Azure Storage linked service حساب تخزين Azure بمصنع البيانات. يتم استخدام هذا التخزين بواسطة مجموعة HDInsight عند الطلب. يحتوي أيضًا على برنامج Hive النصي الذي يتم تشغيله على الكتلة.
  • خدمة HDInsight المرتبطة عند الطلب. يقوم Azure Data Factory تلقائيًّا بإنشاء مجموعة HDInsight وتشغيل البرنامج النصي Hive. ثم يقوم بحذف مجموعة HDInsight بعد أن تكون الكتلة خامدة لفترة محددة مسبقًا.

أنشئ خدمة مرتبطة بالتخزين في Azure

  1. من الجزء الأيمن من صفحة Let's get started ، حدد أيقونة Author .

    Create an Azure Data Factory linked service.

  2. حدد الاتصال من الزاوية السفلية اليمنى من النافذة ثم حدد +جديد.

    Create connections in Azure Data Factory.

  3. في مربع الحوار خدمة مرتبطة جديدة، حدد تخزين Azure Blob ثم حدد متابعة.

    Create Azure Storage linked service for Data Factory.

  4. قم بتوفير القيم التالية لخدمة التخزين المرتبطة:

    الخاصية القيمة
    الاسم أدخل HDIStorageLinkedService.
    اشتراك Azure حدد اشتراكك من القائمة المنسدلة.
    Storage account name حدد حساب Azure Storage الذي أنشأته كجزء من برنامج PowerShell النصي.

    حدد اختبار الاتصال وإذا نجح، ثم حدد إنشاء.

    Provide name for Azure Storage linked service.

إنشاء خدمة HDInsight مرتبطة عند الطلب

  1. حدد الزر + New مرة أخرى لإنشاء خدمة مرتبطة أخرى.

  2. في نافذة New Linked Service ، حدد علامة التبويب Compute .

  3. حدد Azure HDInsight، ثم حدد Continue.

    Create HDInsight linked service for Azure Data Factory.

  4. في نافذة خدمة مرتبطة جديدة، أدخل القيم التالية واترك الباقي كافتراضي:

    الخاصية القيمة
    الاسم أدخل HDInsightLinkedService.
    نوع حدد عند الطلب HDInsight.
    خدمة Azure Storage المرتبطة حدد HDIStorageLinkedService.
    نوع شبكة نظام المجموعة تحديد hadoop
    حان الوقت للحياة قم بتوفير المدة التي تريد أن تكون فيها مجموعة HDInsight متاحة قبل أن يتم حذفها تلقائيًّا.
    المعرف الرئيسي للخدمة ID قم بتوفير معرف التطبيق الخاص بكيان خدمة Microsoft Entra الذي أنشأته كجزء من المتطلبات الأساسية.
    مفتاح الخدمة الرئيسي توفير مفتاح المصادقة لمدير خدمة Microsoft Entra.
    بادئة اسم الكتلة قم بتوفير قيمة تكون مسبوقة لجميع أنواع المجموعات التي تم إنشاؤها بواسطة مصنع البيانات.
    الاشتراك حدد اشتراكك من القائمة المنسدلة.
    حدد resource group حدد مجموعة الموارد التي أنشأتها كجزء من برنامج PowerShell النصي الذي استخدمته سابقًا.
    نوع نظام التشغيل OS/اسم مستخدم الكتلة SSH أدخل اسم مستخدم SSH، عادة sshuser.
    نوع نظام التشغيل OS/كلمة مرور SSH العنقودية أدخل كلمة مرور لمستخدم SSH
    نوع نظام التشغيل OS/اسم مستخدم الكتلة أدخل اسم مستخدم نظام المجموعة، عادة admin.
    نوع نظام التشغيل OS/كلمة مرور الكتلة قم بتوفير كلمة مرور لمستخدم الكتلة.

    وبعد ذلك، حدد إنشاء.

    Provide values for HDInsight linked service.

إنشاء البنية الأساسية لبرنامج ربط العمليات التجارية

  1. + حدد الزر (علامة الجمع)، ثم حدد البنية الأساسية لبرنامج ربط العمليات التجارية.

    Create a pipeline in Azure Data Factory.

  2. في مربع أدوات الأنشطة ، قم بتوسيع HDInsight، واسحب نشاط Apache Hive إلى سطح مصمم البنية الأساسية لبرنامج ربط العمليات التجارية. في علامة التبويب عام ، أدخل اسما للنشاط.

    Add activities to Data Factory pipeline.

  3. تأكد من تحديد نشاط Hive، حدد علامة التبويب HDI Cluster . ومن القائمة المنسدلة HDInsight Linked Service ، حدد الخدمة المرتبطة التي أنشأتها سابقا، HDInsightLinkedService، ل HDInsight.

    Provide HDInsight cluster details for the pipeline.

  4. حدد علامة التبويب Script وأكمل الخطوات التالية:

    1. بالنسبة إلى الخدمة المرتبطة بالبرنامج النصي، حدد HDIStorageLinkedService من القائمة المنسدلة. هذه القيمة هي خدمة التخزين المرتبطة التي أنشأتها سابقًا.

    2. بالنسبة إلى File Path، حدد Browse Storage وانتقل إلى الموقع حيث يتوفر نموذج البرنامج النصي Hive. إذا قمت بتشغيل البرنامج النصي PowerShell في وقت سابق، يجب أن يكون adfgetstarted/hivescripts/partitionweblogs.hqlهذا الموقع .

      Provide Hive script details for the pipeline.

    3. ضمن Advanced>Parameters، حدد Auto-fill from script. يبحث هذا الخيار عن أي معاملات في البرنامج النصي Hive تتطلب قيمًا في وقت التشغيل.

    4. في مربع نص القيمة ، أضف المجلد الموجود بالتنسيق wasbs://adfgetstarted@<StorageAccount>.blob.core.windows.net/outputfolder/. يتمتع المسار بحساسية حالة الأحرف. يعتبر هذا المسار المكان الذي سيتم فيه تخزين إخراج البرنامج النصي. wasbs المخطط ضروري لأن حسابات التخزين لديها الآن نقل آمن مطلوب ممكن افتراضيا.

      Provide parameters for the Hive script.

  5. حدد Validate للتحقق من صحة البنية الأساسية لبرنامج ربط العمليات التجارية. حدد زر (السهم الأيمن)>> لإغلاق نافذة التحقق من الصحة.

    Validate the Azure Data Factory pipeline.

  6. وأخيرا، حدد Publish All لنشر البيانات الاصطناعية إلى Azure Data Factory.

    Publish the Azure Data Factory pipeline.

قم بتشغيل خط أنابيب

  1. من شريط الأدوات على سطح المصمم، حدد إضافة مشغل المشغل>الآن.

    Trigger the Azure Data Factory pipeline.

  2. حدد موافق في الشريط الجانبي المنبثق.

مراقبة خط الأنابيب

  1. يمكنك التبديل إلى علامة التبويب "Monitor" في الجهة اليسرى. ترى تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية في قائمة Pipeline Runs . لاحظ حالة التشغيل ضمن عمود الحالة .

    Monitor the Azure Data Factory pipeline.

  2. حدد تحديث لتحديث الحالة.

  3. يمكنك أيضا تحديد الأيقونة View Activity Runs لمشاهدة تشغيل النشاط المقترن بالبنية الأساسية لبرنامج ربط العمليات التجارية. في لقطة الشاشة أدناه، ترى نشاطًا واحدًا فقط يتم تشغيله نظرًا لوجود نشاط واحد فقط في خط الأنابيب الذي أنشأته. للعودة إلى طريقة العرض السابقة، حدد Pipelines باتجاه أعلى الصفحة.

    Monitor the Azure Data Factory pipeline activity.

تحقق من الإخراج

  1. للتحقق من المخرجات، في مدخل Azure، انتقل إلى حساب التخزين الذي استخدمته لهذا البرنامج التعليمي. يجب أن تشاهد المجلدات أو الحاويات التالية:

    • ترى adfgerstarted/outputfolder الذي يحتوي على إخراج البرنامج النصي Hive الذي تم تشغيله كجزء من المسار.

    • تشاهد adfhdidatafactory-<اسم-الخدمة-المرتبطة>-<طابع زمني>حاوية. هذه الحاوية هي موقع التخزين الافتراضي لمجموعة HDInsight التي تم إنشاؤها كجزء من تشغيل خط الأنابيب.

    • ترى حاوية adfjobs تحتوي على سجلات مهام Azure Data Factory.

      Verify the Azure Data Factory pipeline output.

تنظيف الموارد

من خلال إنشاء مجموعة HDInsight عند الطلب، لن تحتاج إلى حذف مجموعة HDInsight بشكل صريح. يتم حذف المجموعة بناءً على التكوين الذي قدمته أثناء إنشاء خط الأنابيب. حتى بعد حذف الكتلة، تستمر حسابات التخزين المرتبطة بالكتلة في الوجود. هذا السلوك حسب التصميم بحيث يمكنك الحفاظ على البيانات الخاصة بك سليمة. ومع ذلك، إذا كنت لا ترغب في الاحتفاظ بالبيانات، فيمكنك حذف حساب التخزين الذي قمت بإنشائه.

أو يمكنك حذف مجموعة الموارد التي قمت بإنشائها لهذا البرنامج التعليمي بالكامل. تحذف هذه العملية حساب التخزين و Azure Data Factory الذي قمت بإنشائه.

لا تحذف مجموعة الموارد

  1. قم بتسجيل الدخول إلى مدخل Microsoft Azure.

  2. حدد Resource groups في الجزء الأيمن.

  3. حدد اسم مجموعة الموارد الذي أنشأته في برنامج PowerShell النصي. استخدم عامل التصفية إذا كان لديك عدد كبير جدًّا من مجموعات الموارد المدرجة. يفتح مجموعة الموارد.

  4. في لوحة الموارد ، يجب أن يكون لديك حساب التخزين الافتراضي ومصنع البيانات مدرجين ما لم تشارك مجموعة الموارد مع مشاريع أخرى.

  5. حدد Delete resource group. يؤدي القيام بذلك إلى حذف حساب التخزين والبيانات المخزنة في حساب التخزين.

    Azure portal delete resource group.

  6. أدخل اسم مجموعة الموارد لتأكيد الحذف، ثم حدد حذف.

الخطوات التالية

في هذه المقالة، تعلمت كيفية استخدام Azure Data Factory لإنشاء مجموعة HDInsight عند الطلب وتشغيل مهام Apache Hive. تقدم إلى المقالة التالية لمعرفة كيفية إنشاء مجموعات HDInsight بتكوين مخصص.