تصميم Apache Hadoop في HDInsight
يشتمل Apache Hadoop على مكونين أساسيين: نظام الملفات الموزعة Apache Hadoop (HDFS) الذي يوفر التخزين، وApache Hadoop Yet another Resource Negotiator (YARN) الذي يوفر المعالجة. بفضل إمكانات التخزين والمعالجة، تصبح المجموعة قادرة على تشغيل برامج MapReduce لإجراء معالجة البيانات المطلوبة.
إشعار
لا يتم توزيع HDFS عادةً داخل مجموعة HDInsight لتوفير التخزين. بدلاً من ذلك، يتم استخدام طبقة واجهة متوافقة مع HDFS بواسطة مكونات Hadoop. يتم توفير إمكانية التخزين الفعلية إما من خلال Azure Storage أو Azure Data Lake Storage. بالنسبة إلى Hadoop، تعمل وظائف MapReduce المنفذة على مجموعة HDInsight كما لو كانت HDFS موجودة وبالتالي لا تتطلب أي تغييرات لدعم احتياجات التخزين الخاصة بها. في Hadoop على HDInsight، يتم الاستعانة بمصادر خارجية للتخزين، لكن معالجة YARN تظل مكوناً أساسياً. لمزيد من المعلومات، راجع مقدمة إلى Azure HDInsight.
يقدم هذا المقال YARN وكيف ينسق تنفيذ التطبيقات على HDInsight.
أساسيات Apache Hadoop YARN
يحكم YARN وينظم معالجة البيانات في Hadoop. لدى YARN خدمتان أساسيتان تعملان كعمليات على العقد في الكتلة:
- ResourceManager
- NodeManager
يمنح ResourceManager موارد حساب الكتلة لتطبيقات مثل وظائف MapReduce. يمنح ResourceManager هذه الموارد كحاويات، حيث تتكون كل حاوية من تخصيص نوى CPU وذاكرة RAM. إذا جمعت جميع الموارد المتاحة في مجموعة ثم وزعت النوى والذاكرة في كتل، فإن كل كتلة من الموارد هي حاوية. كل عقدة في الكتلة لديها سعة لعدد معين من الحاويات، وبالتالي فإن الكتلة لديها حد ثابت لعدد الحاويات المتاحة. تخصيص الموارد في الحاوية قابل للتكوين.
عند تشغيل تطبيق MapReduce على كتلة، يوفر ResourceManager التطبيق الحاويات التي سيتم التنفيذ فيها. يتتبع ResourceManager حالة التطبيقات قيد التشغيل، وسعة المجموعة المتاحة، ويتتبع التطبيقات أثناء إكمالها وإصدار مواردها.
يدير ResourceManager أيضاً عملية خادم ويب توفر واجهة مستخدم ويب لمراقبة حالة التطبيقات.
عندما يرسل المستخدم تطبيق MapReduce للتشغيل على الكتلة، يتم إرسال التطبيق إلى ResourceManager. بدوره، يخصص ResourceManager حاوية على العقد NodeManager المتاحة. عُقد NodeManager هي المكان الذي يتم فيه تنفيذ التطبيق بالفعل. تقوم الحاوية الأولى المخصصة بتشغيل تطبيق خاص يسمى ApplicationMaster. هذا ApplicationMaster مسؤول عن الحصول على الموارد، في شكل حاويات لاحقة، اللازمة لتشغيل التطبيق المقدم. يفحص ApplicationMaster مراحل التطبيق، مثل مرحلة الخريطة وتقليل المرحلة، وعوامل مقدار البيانات التي يجب معالجتها. ثم يطلب ApplicationMaster (التفاوض) الموارد من ResourceManager نيابة عن التطبيق. بدوره، يمنح ResourceManager الموارد من NodeManagers في الكتلة إلى ApplicationMaster لاستخدامها في تنفيذ التطبيق.
يقوم NodeManagers بتشغيل المهام التي يتألف منها التطبيق، ثم يقوم بإبلاغ مدير التطبيق عن تقدمه وحالته. يقوم ApplicationMaster بدوره بالإبلاغ عن حالة التطبيق مرة أخرى إلى ResourceManager. يقوم ResourceManager بإرجاع أي نتائج إلى العميل.
غزل على HDInsight
جميع أنواع مجموعات HDInsight توزيع YARN. يتم توزيع ResourceManager لإتاحة عالية مع مثيل أساسي وثانوي، والذي يتم تشغيله على عقدتي الرأس الأولى والثانية داخل المجموعة على التوالي. يتم تنشيط مثيل واحد فقط من ResourceManager في كل مرة. تعمل مثيلات NodeManager عبر العقد العاملة المتوفرة في الكتلة.
الحذف المبدئي
لإلغاء حذف ملف من حساب التخزين الخاص بك، راجع:
تخزين Azure
Azure Data Lake Storage Gen 1
استعادة عنصر DataLakeStore المحذوف من Azar
Azure Data Lake Storage Gen2
المشكلات المعروفة مع الجيل الثاني من تخزين Azure Data
إزالة المحذوفات
يجب أن تظل الخاصية fs.trash.interval
من HDFS>Advanced core-site عند القيمة الافتراضية 0
لأنه لا يجب تخزين أي بيانات على نظام الملفات المحلي. لا تؤثر هذه القيمة على حسابات التخزين البعيد (WASB وADLS GEN1 وABFS)