إضافة حسابات تخزين إضافية إلى HDInsight
تعرف على كيفية استخدام إجراءات البرنامج النصي لإضافة حسابات تخزين Azure إضافية إلى HDInsight. توضح الخطوات الموجودة في هذا المستند إضافة حساب تخزين إلى مجموعة HDInsight موجودة. تختص هذه المقالة بحسابات التخزين (وليس حساب تخزين المجموعة الافتراضي)، وليس التخزين الإضافي مثل Azure Data Lake Storage Gen1
وAzure Data Lake Storage Gen2
.
هام
تختص المعلومات الواردة في هذا المستند بإضافة حساب (حسابات) تخزين إضافي إلى المجموعة بعد إنشائها. للحصول على معلومات عن إضافة حسابات تخزين أثناء إنشاء المجموعة، راجع إعداد المجموعات في HDInsight باستخدام Apache Hadoop وApache Spark وApache Kafka وغيرها.
المتطلبات الأساسية
- نظام مجموعة Linux-based Hadoop المُتاحة على HDInsight. راجع بدء استخدام HDInsight على Linux.
- اسم حساب تخزين ومفتاحه. راجع إدارة مفاتيح اختصار حساب التخزين.
- إذا كنت تستخدم PowerShell، فأنت بحاجة إلى وحدة AZ. راجع نظرة عامة على Azure PowerShell.
كيف تعمل هذه الميزة
أثناء المعالجة، ينفِّذ البرنامج النصي الإجراءات التالية:
إذا كان حساب التخزين موجوداً بالفعل في تكوين core-site.xml للمجموعة، يتم إنهاء البرنامج النصي ولا تُنفَذ أي إجراءات أخرى.
تتحقق من وجود حساب التخزين وإمكانية الوصول إليه باستخدام المفتاح.
تشفِر المفتاح باستخدام بيانات اعتماد المجموعة.
تضيف حساب التخزين إلى ملف core-site.xml.
توقف تشغيل خدمات Apache Oozie وApache Hadoop YARN وApache Hadoop MapReduce2 وApache Hadoop HDFS وتعيد تشغيلها. يسمح لها إيقاف تشغيل هذه الخدمات وإعادة تشغيلها باستخدام حساب التخزين الجديد.
تحذير
استخدام حساب تخزين في موقع مختلف عن مجموعة HDInsight غير مدعوم.
إضافة حساب تخزين
استخدم إجراء البرنامج النصي لتطبيق التغييرات مع الاعتبارات التالية:
الخاصية | القيمة |
---|---|
عنوان URI النصي Bash | https://hdiconfigactions.blob.core.windows.net/linuxaddstorageaccountv01/add-storage-account-v01.sh |
نوع العقدة (العقدات) | الرأس |
المعلمات | ACCOUNTNAME ACCOUNTKEY -p (اختياري) |
ACCOUNTNAME
هو اسم حساب التخزين المُضاف إلى مجموعة HDInsight.ACCOUNTKEY
هو مفتاح الوصول لـACCOUNTNAME
.-p
اختياري. إذا تم تحديد المفتاح، فإنه غير مشفر ويتم تخزينه في ملف core-site.xml كنص عادي.
التحقق من الصحة
عند عرض مجموعة HDInsight في مدخل Microsoft Azure، حدد إدخال Storage Accounts ضمن Properties لا يعرض حسابات التخزين المضافة من خلال إجراء البرنامج النصي هذا. لا يعرض Azure PowerShell وAzure CLI حساب التخزين الإضافي أيضاً. لا تُعرَض معلومات التخزين لأن البرنامج النصي هو المسؤول فقط تعديل التكوين core-site.xml
للمجموعة. لا تُستخدَم هذه المعلومات عند استرداد معلومات المجموعة باستخدام واجهات برمجة التطبيقات لإدارة Azure.
للتحقق من التخزين الإضافي، استخدم إحدى الطرق الموضحة:
PowerShell
يقوم البرنامج النصي بإرجاع اسم (أسماء) حساب التخزين المقترن بالمجموعة المحددة. استخدم اسم المجموعة الفعلي بدلاً من CLUSTERNAME
ثم شغِّل البرنامج النصي.
# Update values
$clusterName = "CLUSTERNAME"
$creds = Get-Credential -UserName "admin" -Message "Enter the cluster login credentials"
$clusterName = $clusterName.ToLower();
# getting service_config_version
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName`?fields=Clusters/desired_service_config_versions/HDFS" `
-Credential $creds -UseBasicParsing
$respObj = ConvertFrom-Json $resp.Content
$configVersion=$respObj.Clusters.desired_service_config_versions.HDFS.service_config_version
$resp = Invoke-WebRequest -Uri "https://$clusterName.azurehdinsight.net/api/v1/clusters/$clusterName/configurations/service_config_versions?service_name=HDFS&service_config_version=$configVersion" `
-Credential $creds
$respObj = ConvertFrom-Json $resp.Content
# extract account names
$value = ($respObj.items.configurations | Where type -EQ "core-site").properties | Get-Member -membertype properties | Where Name -Like "fs.azure.account.key.*"
foreach ($name in $value ) { $name.Name.Split(".")[4]}
Apache Ambari
من متصفح ويب، انتقل إلى
https://CLUSTERNAME.azurehdinsight.net
، حيثCLUSTERNAME
هو اسم نظام المجموعة.انتقل إلى HDFS > Configs > Advanced > Custom core-site .
راقب المفاتيح التي تبدأ بـ
fs.azure.account.key
. اسم الحساب هو جزء من المفتاح كما هو ملاحظ في هذه الصورة النموذجية:
إزالة حساب التخزين
من متصفح ويب، انتقل إلى
https://CLUSTERNAME.azurehdinsight.net
، حيثCLUSTERNAME
هو اسم نظام المجموعة.انتقل إلى HDFS > Configs > Advanced > Custom core-site .
أزل المفاتيح التالية:
fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
fs.azure.account.keyprovider.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net
بعد إزالة هذه المفاتيح وحفظ التكوين، تحتاج إلى إعادة تشغيل كل منOozie وYarn وMapReduce2 وHDFS وHive واحداً تلو الآخر.
مشكلات معروفة
جدار حماية التخزين
إذا اخترت تأمين حساب التخزين الخاص بك باستخدام قيود جدران الحماية والشبكات الظاهرية على الشبكات المحددة، فتأكد من تمكين الاستثناء السماح خدمات Microsoft الموثوق به بحيث يمكن ل HDInsight الوصول إلى حساب التخزين الخاص بك.
تعذّر الوصول إلى التخزين بعد تغيير المفتاح
في حالة تغيير مفتاح حساب تخزين، لن يتمكن HDInsight من الوصول إلى حساب التخزين بعد الآن. يستخدم HDInsight نسخة البيانات المخزنة مؤقتاً من المفتاح في ملف core-site.xml للمجموعة. يجب تحديث نسخة البيانات المخزنة مؤقتاً هذه لمطابقة المفتاح الجديد.
لا يؤدي تشغيل إجراء البرنامج النصي مرة أخرى إلى تحديث المفتاح، حيث يتحقق البرنامج النصي مما إذا كان إدخال حساب التخزين موجوداً بالفعل أم لا. إذا كان الإدخال موجوداً بالفعل، فلا يجري أي تغييرات.
للتغلب على هذه المشكلة:
راجع تحديث مفاتيح الاختصار لحساب التخزين في كيفية تدوير مفاتيح الاختصار.
يمكنك أيضاً إزالة حساب التخزين ثم إضافته مرة أخرى.
الخطوات التالية
لقد تعلمت كيفية إضافة حسابات تخزين إضافية إلى مجموعة HDInsight موجودة. لمزيد من المعلومات عن إجراءات البرنامج النصي، راجع تخصيص مجموعات HDInsight على Linux باستخدام إجراء البرنامج النصي