ترحيل مقاطع تخزين Apache Hadoop المحلية إلى Azure HDInsight - أفضل ممارسات البنية

تقدم هذه المقالة توصيات لبنية أنظمة Azure HDInsight. إنها جزء من سلسلة توفر أفضل الممارسات للمساعدة في ترحيل أنظمة Apache Hadoop المحلية إلى Azure HDInsight.

استخدام مقاطع تخزين متعددة محسنة لعبء العمل

تتكون العديد من عمليات نشر Apache Hadoop المحلية من مقطع تخزين كبير واحد يدعم العديد من أعباء العمل. يمكن أن يكون هذا المقطع مفردًا ومعقدًا وقد يتطلب تنازلات إلى الخدمات الفردية لجعل كل شيء يعمل معًا. يتطلب ترحيل مقاطع تخزين Hadoop المحلية إلى Azure HDInsight تغييرًا في النهج.

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

حمل العمل نوع مقطع تخزين HDInsight
معالجة الدفعات (ETL / ELT) Hadoop, Spark
تخزين البيانات Hadoop، Spark، الاستعلام التفاعلي
IoT / البث Kafka، Spark
معالجة معاملات NoSQL HBase
استعلامات تفاعلية وأسرع مع التخزين المؤقت في الذاكرة استعلام تفاعلي
علوم البيانات "Spark"

يوضح الجدول التالي الطرق المختلفة التي يمكنك استخدامها لإعداد مقطع تخزين HDInsight.

الأداة استنادًا إلى مستعرض سطر الأوامر REST API SDK
⁩مدخل Microsoft Azure⁧ X
Azure Data Factory X X X X
Azure CLI (ver 1.0) X
Azure PowerShell X
cURL X X
.NET SDK X
Python SDK X
Java SDK X
قوالب Azure Resource Manager X

لمزيد من المعلومات، راجع المقالة أنواع مقطع التخزين في HDInsight.

استخدام مقاطع تخزين عابرة عند الطلب

قد تبقى مقاطع تخزين HDInsight غير مستخدمة لفترات طويلة من الزمن. للمساعدة في توفير تكاليف الموارد، يدعم HDInsight مقاطع التخزين العابرة عند الطلب، والتي يمكن حذفها بمجرد اكتمال عبء العمل بنجاح.

عند حذف مقطع تخزين، لا تتم إزالة حساب التخزين المقترن وبيانات التعريف الخارجية. يمكن لاحقًا إعادة إنشاء مقطع تخزين باستخدام نفس حسابات التخزين ومخازن التعريف.

يمكن استخدام Azure Data Factory لجدولة إنشاء مقاطع تخزين HDInsight عند الطلب. لمزيد من المعلومات، راجع المقالة إنشاء مقاطع تخزين Apache Hadoop عند الطلب في HDInsight باستخدام Azure Data Factory.

فصل التخزين عن الحساب

تستخدم عمليات نشر Hadoop المحلية النموذجية نفس مجموعة الأجهزة لتخزين البيانات ومعالجة البيانات. لأنها ضخمة، يجب أن يتم قياس الحساب والتخزين معًا.

على مقاطع تخزين HDInsight، لا يحتاج التخزين إلى أن يكون ضخمًا بالحساب ويمكن أن يكون إما في تخزين Azure أو تخزين Azure Data Lake أو كليهما. فصل التخزين عن حساب له الفوائد التالية:

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

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

استخدام مخازن بيانات التعريف الخارجية

هناك نوعان من مخازن بيانات التعريف الرئيسية التي تعمل مع مقاطع تخزين HDInsight: Apache Hive وApache Oozie. مخزن بيانات تعريف Hive هو مستودع المخطط المركزي الذي يمكن استخدامه من قبل محركات معالجة البيانات، بما في ذلك Hadoop، Spark، LLAP، Presto، وApache Pig. يخزن مخزن بيانات التعريف Oozie تفاصيل حول الجدولة وحالة قيد التقدم ووظائف Hadoop المكتملة.

يستخدم HDInsight قاعدة بيانات Azure SQL للمخازن بيانات التعريف في Hive وOozie. هناك طريقتان لإعداد مخزن بيانات التعريف في مقاطع تخزين HDInsight:

  1. مخزن بيانات التعريف الافتراضي

    • لا توجد تكلفة إضافية.
    • يتم حذف Metastore عند حذف مقطع التخزين.
    • لا يمكن مشاركة Metastore بين مقاطع تخزين مختلفة.
    • يستخدم Azure SQL DB الأساسية، التي تحتوي على خمسة حدود DTU.
  2. مخزن بيانات تعريف خارجي مخصص

    • تحديد قاعدة بيانات Azure SQL خارجية كمخزن بيانات تعريف.
    • يمكن إنشاء مقاطع التخزين وحذفها دون فقدان بيانات التعريف، بما في ذلك تفاصيل وظيفة Oozie لمخطط Hive.
    • يمكن مشاركة قاعدة بيانات مخزن بيانات تعريف واحد مع أنواع مختلفة من مقاطع التخزين.
    • يمكن تغيير سعة Metastore حسب الحاجة.
    • لمزيد من المعلومات، راجع استخدام مخازن بيانات التعريف الخارجية في Azure HDInsight.

أفضل الممارسات بخصوص Hive Metastore

بعض أفضل ممارسات مخزن بيانات تعريف HDInsight Hive هي على النحو التالي:

  • استخدم مخزن بيانات تعريف خارجي مخصص لفصل موارد الحساب وبيانات التعريف.
  • ابدأ بمثيل Azure SQL من مستوى S2، والذي يوفر 50 DTU و250 غيغابايت من التخزين. إذا رأيت اختناقًا، يمكنك تغيير سعة قاعدة البيانات.
  • لا تشارك مخزن بيانات التعريف الذي تم إنشاؤه لإصدار مقطع تخزين HDInsight واحد مع مقاطع تخزين من إصدار مختلف. إصدارات Hive مختلفة استخدام مخططات مختلفة. على سبيل المثال، لا يمكن مشاركة مخزن بيانات تعريف مع كل من مقاطع تخزين Hive 1.2 and Hive 2.1.
  • اعمل نسخة احتياطية من مخزن بيانات التعريف المخصص بشكل دوري.
  • احتفظ بمخزن بيانات التعريف ومقطع تخزين HDInsight في نفس المنطقة.
  • راقب مخزن بيانات التعريف للأداء والتوافر باستخدام أدوات مراقبة Azure SQL Database، مثل مدخل Azure أو سجلات Azure Monitor.
  • تنفيذ الأمرANALYZE TABLE كما هو مطلوب لإنشاء إحصائيات للجداول والأعمدة. على سبيل المثال، ⁧ANALYZE TABLE [table_name] COMPUTE STATISTICS⁩.

أفضل الممارسات لأعباء العمل المختلفة

  • فكر في استخدام مقطع التخزين LLAP لاستعلامات Hive التفاعلية مع تحسين وقت الاستجابة LLAP وهي ميزة جديدة في Hive 2.0، والتي تسمح بالتخزين المؤقت في الذاكرة للاستعلامات.
  • فكر في استخدام وظائف Spark بدلاً من وظائف Hive.
  • فكر في استبدال الاستعلامات المستندة إلى impala باستعلامات LLAP.
  • فكر في استبدال وظائف MapReduce بوظائف Spark.
  • فكر في استبدال وظائف دفعة Spark ذات زمن الوصول المنخفض باستخدام وظائف البث المنظم من Spark.
  • فكر في استخدام مصنع بيانات Azure (ADF) 2.0 لتنسيق البيانات.
  • فكر في Ambari لإدارة مقطع التخزين.
  • تغيير تخزين البيانات من HDFS المحلي إلى WASB أو ADLS أو ADFS لمعالجة البرامج النصية.
  • فكر في استخدام Ranger RBAC على جداول Hive والتدقيق.
  • فكر في استخدام CosmosDB بدلاً من MongoDB أو Cassandra.

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

اقرأ المقال التالي في هذه السلسلة: