ضبط Azure Data Lake Storage Gen1 للأداء

يدعم Data Lake Storage Gen1 معدل النقل العالي لتحليلات الإدخال/إخراج المكثفة وحركة البيانات. في Data Lake Storage Gen1، يعد استخدام جميع الإنتاجية المتوفرة - كمية البيانات التي يمكن قراءتها أو كتابتها في الثانية - أمرا مهما للحصول على أفضل أداء. ويتحقق ذلك من خلال إجراء أكبر عدد ممكن من القراءات والكتابة بالتوازي قدر الإمكان.

أداء Data Lake Storage Gen1

يمكن توسيع نطاق Data Lake Storage Gen1 لتوفير معدل النقل الضروري لجميع سيناريو التحليلات. بشكل افتراضي، يوفر حساب Data Lake Storage Gen1 معدل نقل كاف تلقائيا لتلبية احتياجات فئة واسعة من حالات الاستخدام. بالنسبة للحالات التي يجتاز فيها العملاء الحد الافتراضي، يمكن تكوين حساب Data Lake Storage Gen1 لتوفير المزيد من معدل النقل عن طريق الاتصال بدعم Microsoft.

استيعاب البيانات

عند استيعاب البيانات من نظام مصدر إلى Data Lake Storage Gen1، من المهم مراعاة أن الأجهزة المصدر وأجهزة الشبكة المصدر والاتصال بالشبكة Data Lake Storage Gen1 يمكن أن تكون الازدحام.

رسم تخطيطي يوضح أن الأجهزة المصدر وأجهزة الشبكة المصدر واتصال الشبكة Data Lake Storage Gen1 يمكن أن تكون الازدحام.

من المهم التأكد من عدم تأثر حركة البيانات بهذه العوامل.

الأجهزة المصدر

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

اتصال الشبكة Data Lake Storage Gen1

يمكن أن يكون اتصال الشبكة بين بيانات المصدر Data Lake Storage Gen1 في بعض الأحيان هو الازدحام. عندما تكون بيانات المصدر محلية، ضع في اعتبارك استخدام ارتباط مخصص مع Azure ExpressRoute . إذا كانت بيانات المصدر الخاصة بك موجودة في Azure، فسيكون الأداء أفضل عندما تكون البيانات في نفس منطقة Azure مثل حساب Data Lake Storage Gen1.

تكوين أدوات استيعاب البيانات لتحقيق أقصى قدر من التوازي

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

الأداة الإعدادات مزيد من التفاصيل
PowerShell PerFileThreadCount, ConcurrentFileCount الرابط
AdlCopy وحدات Azure Data Lake Analytics الرابط
DistCp -m (معين) الرابط
Azure Data Factory نسخ متوازية الرابط
Sqoop fs.azure.block.size, -m (معين) الرابط

هيكلة مجموعة البيانات الخاصة بك

عند تخزين البيانات في Data Lake Storage Gen1، يؤثر حجم الملف وعدد الملفات وبنية المجلد على الأداء. يصف القسم التالي أفضل الممارسات في هذه المجالات.

حجم الملف

عادة ما يكون لمحركات التحليلات مثل HDInsight وAzure Data Lake Analytics حمل لكل ملف. إذا قمت بتخزين البيانات الخاصة بك كملفات صغيرة كثيرة، يمكن أن يؤثر ذلك سلبًا على الأداء.

بشكل عام، قم بتنظيم بياناتك في ملفات بحجم أكبر للحصول على أداء أفضل. كقاعدة عامة، قم بتنظيم مجموعات البيانات في ملفات بحجم 256 ميغابايت أو أكبر. في بعض الحالات مثل الصور والبيانات الثنائية، لا يمكن معالجتها بالتوازي. في هذه الحالات، يوصى بالاحتفاظ بالملفات الفردية أقل من 2 غيغابايت.

في بعض الأحيان، تتمتع مسارات البيانات بتحكم محدود في البيانات الأولية التي تحتوي على الكثير من الملفات الصغيرة. من المستحسن أن يكون لديك عملية "التحضير" التي تنشئ ملفات أكبر لاستخدامها في تطبيقات انتقال البيانات من الخادم.

تنظيم بيانات السلاسل الزمنية في المجلدات

بالنسبة لأحمال عمل Apache Hive و ADLA، يمكن أن يساعد تقسيم بيانات السلسلة الزمنية بعض الاستعلامات على قراءة مجموعة فرعية فقط من البيانات، ما يحسن الأداء.

غالبا ما تضع البنية الأساسية لبرنامج ربط العمليات التجارية التي تستوعب بيانات السلاسل الزمنية ملفاتها بتسمية منظمة للملفات والمجلدات. فيما يلي مثال شائع نراه للبيانات المنظمة حسب التاريخ: \DataSet\YYYY\MM\DD\datafile_YYYY_MM_DD.tsv.

لاحظ أن معلومات datetime تظهر كمجلدات واسم ملف.

بالنسبة للتاريخ والوقت، ما يلي نمط شائع: \DataSet\YYYY\MM\DD\HH\mm\datafile_YYYY_MM_DD_HH_mm.tsv.

تذكر أن الاختيار الذي تتخذه لتنظيم المجلد والملف يجب أن يحسن أحجام الملفات ذات الأحجام الكبيرة وتكون بعدد معقول من الملفات في كل مجلد.

تحسين وظائف الإدخال/الإخراج المكثفة على أحمال عمل Hadoop وSpark على HDInsight

تندرج الوظائف ضمن إحدى الفئات الثلاث التالية:

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

تنطبق الإرشادات التالية فقط على الوظائف المكثفة للإداء/الإخراج.

الاعتبارات العامة لنظام مجموعة HDInsight

  • إصدارات HDInsight. للحصول على أفضل أداء، استخدم أحدث إصدار من HDInsight.
  • المناطق. ضع حساب Data Lake Storage Gen1 في نفس منطقة نظام مجموعة HDInsight.

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

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

  • الطبقة المادية
  • طبقة YARN
  • طبقة حمل العمل

الطبقة المادية

قم بتشغيل نظام المجموعة مع المزيد من العقد و/أو الأجهزة الظاهرية ذات الحجم الأكبر. ستمكنك مجموعة أكبر من تشغيل المزيد من حاويات YARN كما هو موضح في الصورة أدناه.

رسم تخطيطي يوضح استخدام المزيد من حاويات YARN.

استخدم الأجهزة الظاهرية مع المزيد من النطاق الترددي للشبكة. يمكن أن يكون مقدار النطاق الترددي للشبكة ازدحاما إذا كان هناك نطاق ترددي للشبكة أقل من معدل النقل Data Lake Storage Gen1. سيكون للأجهزة الظاهرية المختلفة أحجام عرض نطاق ترددي مختلفة للشبكة. اختر نوع الجهاز الظاهري الذي يحتوي على أكبر نطاق ترددي ممكن للشبكة.

طبقة YARN

استخدم حاويات YARN أصغر. تقليل حجم كل حاوية YARN لإنشاء المزيد من الحاويات بنفس كمية الموارد.

رسم تخطيطي يوضح استخدام حاويات YARN الأصغر.

اعتمادا على حمل العمل الخاص بك، سيكون هناك دائما الحد الأدنى لحجم حاوية YARN المطلوب. إذا اخترت حاوية صغيرة جدا، فست واجهت مهامك مشكلات نفاد الذاكرة. عادة لا يجب أن تكون حاويات YARN أصغر من 1 غيغابايت. من الشائع رؤية حاويات YARN بسعة 3 غيغابايت. بالنسبة لبعض أحمال العمل، قد تحتاج إلى حاويات YARN أكبر.

زيادة الذاكرات الأساسية لكل حاوية YARN. قم بزيادة عدد الذاكرات الأساسية المخصصة لكل حاوية لزيادة عدد المهام المتوازية التي تعمل في كل حاوية. يعمل هذا مع تطبيقات مثل Spark، التي تقوم بتشغيل مهام متعددة لكل حاوية. بالنسبة لتطبيقات مثل Hive التي تقوم بتشغيل مؤشر ترابط واحد في كل حاوية، من الأفضل أن يكون لديك المزيد من الحاويات بدلا من المزيد من الذاكرات الأساسية لكل حاوية.

طبقة حمل العمل

استخدم جميع الحاويات المتوفرة. قم بتعيين عدد المهام ليكون مساويا أو أكبر من عدد الحاويات المتوفرة بحيث يتم استخدام جميع الموارد.

رسم تخطيطي يوضح استخدام جميع الحاويات المتوفرة.

المهام الفاشلة مكلفة. إذا كانت كل مهمة تحتوي على كمية كبيرة من البيانات لمعالجتها، فإن فشل المهمة يؤدي إلى إعادة محاولة مكلفة. لذلك، من الأفضل إنشاء المزيد من المهام، كل منها يعالج كمية صغيرة من البيانات.

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

حمل العمل معلمة لتعيين المهام
Spark on HDInsight
  • منفذو Num
  • ذاكرة المنفذ
  • الذاكرات الأساسية للمنفذ
Hive على HDInsight
  • hive.tez.container.size
MapReduce على HDInsight
  • Mapreduce.map.memory
  • Mapreduce.job.maps
  • Mapreduce.reduce.memory
  • Mapreduce.job.reduces
Storm على HDInsight
  • عدد عمليات العامل
  • عدد مثيلات منفذ spout
  • عدد مثيلات منفذ bolt
  • عدد مهام spout
  • عدد مهام bolt

راجع أيضًا