هادوب Apache Hadoop هو إطار عمل مفتوح المصدر يستخدم لتخزين ومعالجة مجموعات البيانات الكبيرة بكفاءة والتي تتراوح في الحجم من جيجا بايت إلى بيتابايت من البيانات. بدلاً من استخدام جهاز كمبيوتر واحد كبير لتخزين البيانات ومعالجتها، يسمح هادوب بتجميع أجهزة كمبيوتر متعددة لتحليل مجموعات البيانات الضخمة بشكل متوازٍ بسرعة أكبر.

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

كان أحد هذه المشاريع عبارة عن محرك بحث ويب مفتوح المصدر يُدعى Nutch- من بنات أفكار دوغ كاتنج ومايك كافاريلا. لقد أرادوا إرجاع نتائج بحث الويب بشكل أسرع من خلال توزيع البيانات والحسابات عبر أجهزة كمبيوتر مختلفة بحيث يمكن إنجاز مهام متعددة في وقت واحد. خلال هذا الوقت، كان مشروع محرك بحث آخر يسمى “جوجل” قيد التنفيذ. كان يعتمد على نفس المفهوم — تخزين البيانات ومعالجتها بطريقة آلية موزعة بحيث يمكن إرجاع نتائج بحث الويب ذات الصلة بشكل أسرع.

في عام 2006 ، انضم كاتنج إلى ياهو وأخذ معه مشروع نوتش بالإضافة إلى أفكار تستند إلى عمل “جوجل” المبكر في أتمتة تخزين البيانات الموزعة ومعالجتها. تم تقسيم مشروع Nutch — بقي جزء زاحف الويب مثل Nutch وأصبح جزء المعالجة والحوسبة الموزعة هادوب (سمي على اسم لعبة ابن كاتينج وهو فيل). في عام 2008، أصدرت ياهو مكتوب هادوب كمشروع مفتوح المصدر. اليوم، تتم إدارة وصيانة إطار Hadoop والنظام البيئي للتقنيات بواسطة مؤسسة Apache Software Foundation (ASF) غير الربحية، وهي مجتمع عالمي من مطوري البرامج والمساهمين.

ما هو Hadoop؟

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

مكونات ومجالات Hadoop

لا يمكنك فهم عمل Hadoop دون معرفة مكوناته الأساسية. إذن ، Hadoop يتكون من ثلاث طبقات (مكونات أساسية) وهي: –
HDFS – يوفر نظام الملفات الموزعة Hadoop لتخزين Hadoop. كما يوحي الاسم ، فإنه يخزن البيانات بطريقة موزعة. يتم تقسيم الملف إلى عدد من الكتل التي تنتشر عبر مجموعة الأجهزة السلعية.
MapReduce – هذا هو محرك المعالجة لبرنامج Hadoop. يعمل MapReduce على مبدأ المعالجة الموزعة . يقسم المهمة المرسلة من قبل المستخدم إلى عدد من المهام الفرعية المستقلة. يتم تنفيذ هذه المهام الفرعية بالتوازي وبالتالي زيادة الإنتاجية.
الغزل – توفر إدارة موارد أخرى r إدارة الموارد لـ Hadoop. هناك نوعان من الشياطين يعملان من أجل الغزل. أحدهما هو NodeManager على الأجهزة التابعة والآخر هو مدير الموارد على العقدة الرئيسية. يعتني الغزل بتخصيص الموارد بين مختلف العبيد الذين يتنافسون عليه.

تعرف على جميع مكونات نظام Hadoop البيئي في 7 دقائق فقط. 
Daemons هي العمليات التي تعمل في الخلفية. Hadoop Daemons هي: –
أ) Namenode – يعمل على عقدة رئيسية لـ HDFS.
ب) Datanode – يعمل على العقد التابعة لـ HDFS.
ج) مدير الموارد  – يعمل على عقدة YARN الرئيسية لـ MapReduce.
د) مدير العقدة – يعمل على عقدة YARN التابعة لـ MapReduce.

تعمل هذه الشياطين الأربعة لـ Hadoop حتى تكون وظيفية.

كيف يعمل Hadoop؟

يقوم Hadoop بمعالجة موزعة لمجموعات البيانات الضخمة عبر مجموعة خوادم السلع ويعمل على أجهزة متعددة في وقت واحد. لمعالجة أي بيانات ، يرسل العميل البيانات والبرنامج إلى Hadoop. يقوم HDFS بتخزين البيانات بينما تقوم  MapReduce  بمعالجة البيانات ويقوم Yarn بتقسيم المهام.
دعونا نناقش بالتفصيل كيف يعمل Hadoop –

أولا . HDFS

يحتوي نظام الملفات الموزعة Hadoop على طوبولوجيا السيد والعبد . لديها اثنين من الشيطان قيد التشغيل ، وهما NameNode و DataNode.

NameNode

NameNode  هو البرنامج الخفي الذي يعمل على الجهاز الرئيسي. إنه حجر الزاوية في نظام ملفات HDFS. يقوم NameNode بتخزين شجرة الدليل لجميع الملفات في نظام الملفات. يتتبع المكان الذي توجد فيه بيانات الملف عبر الكتلة. لا يقوم بتخزين البيانات الموجودة في هذه الملفات.
عندما تريد تطبيقات العميل إضافة / نسخ / نقل / حذف ملف ، فإنها تتفاعل مع NameNode. تستجيب NameNode للطلب المقدم من العميل من خلال إعادة قائمة بخوادم DataNode ذات الصلة حيث توجد البيانات.

DataNode

يعمل برنامج DataNode الخفي على العقد التابعة. يقوم بتخزين البيانات في HadoopFileSystem. في نظام الملفات الوظيفي يتم نسخ البيانات عبر العديد من DataNodes.
عند بدء التشغيل ، يتصل DataNode بـ NameNode. يستمر في البحث عن الطلب من NameNode للوصول إلى البيانات. بمجرد أن توفر NameNode موقع البيانات ، يمكن لتطبيقات العميل التحدث مباشرة إلى DataNode ، أثناء نسخ البيانات ، يمكن لمثيلات DataNode التحدث مع بعضها البعض.

وضع النسخة المتماثلة

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

ثانيا. مابريديوس

الفكرة العامة لخوارزمية MapReduce هي معالجة البيانات بالتوازي على المجموعة الموزعة. ثم يتم دمجها في النتيجة أو المخرجات المرغوبة.

يتضمن Hadoop MapReduce عدة مراحل:

  • في الخطوة الأولى ، يحدد البرنامج ويقرأ “ملف الإدخال” الذي يحتوي على البيانات الأولية.
  • نظرًا لأن تنسيق الملف عشوائي ، فهناك حاجة لتحويل البيانات إلى شيء يمكن للبرنامج معالجته. يقوم “InputFormat” و “RecordReader” (RR) بهذه المهمة.

يستخدم InputFormat وظيفة InputSplit لتقسيم الملف إلى أجزاء أصغر
ثم يقوم RecordReader  بتحويل البيانات الأولية للمعالجة بواسطة الخريطة. يقوم بإخراج قائمة من أزواج المفتاح والقيمة.
بمجرد أن يقوم المخطط بمعالجة أزواج المفتاح والقيمة هذه ، تنتقل النتيجة إلى «OutputCollector». هناك وظيفة أخرى تسمى “Reporter” والتي تنبه المستخدم عند انتهاء مهمة التعيين.

  • في الخطوة التالية ، تقوم وظيفة Reduce بتنفيذ مهمتها على كل زوج من المفاتيح والقيمة من مصمم الخرائط.
  • أخيرًا ، تنظم OutputFormat أزواج القيمة الرئيسية من Reducer لكتابتها على HDFS.
  • نظرًا لكونه قلب نظام Hadoop ، يقوم Map-Reduce بمعالجة البيانات بطريقة مرنة للغاية ومتسامحة مع الأخطاء.

ثالثا. غزل

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

فيما يلي مهام مدير التطبيقات: –

  • يقبل تقديم الوظائف من قبل العميل.
  • Negotaites أول حاوية لتطبيق معين.
  • إعادة تشغيل الحاوية بعد فشل التطبيق.

فيما يلي مسؤوليات  ApplicationMaster

  • يفاوض الحاويات من المجدول
  • متابعة حالة الحاوية ومراقبة تقدمها.

يدعم الغزل مفهوم حجز الموارد عبر نظام الحجز. في هذا ، يمكن للمستخدم إصلاح عدد من الموارد لتنفيذ وظيفة معينة بمرور الوقت والقيود الزمنية. يتأكد نظام الحجز من أن الموارد متاحة للوظيفة حتى اكتمالها. كما يقوم بمراقبة الدخول للحجز.
يمكن للغزل أن يتعدى بضعة آلاف من العقد عبر اتحاد الغزل. يسمح اتحاد YARN بتوصيل مجموعة فرعية متعددة في الكتلة الضخمة المفردة. يمكننا استخدام العديد من المجموعات المستقلة معًا لوظيفة واحدة كبيرة. يمكن استخدامه لتحقيق نظام واسع النطاق.
دعونا نلخص كيف يعمل Hadoop خطوة بخطوة:

  • يتم تقسيم بيانات الإدخال إلى كتل بحجم 128 ميجا بايت ثم يتم نقل الكتل إلى عقد مختلفة.
  • بمجرد تخزين جميع كتل البيانات على عقد البيانات ، يمكن للمستخدم معالجة البيانات.
  • ثم يقوم Resource Manager بجدولة البرنامج (المقدم من قبل المستخدم) على العقد الفردية.
  • بمجرد معالجة جميع العقد للبيانات ، تتم إعادة كتابة الإخراج إلى HDFS.

لذلك ، كان هذا كله في كيفية عمل برنامج Hadoop التعليمي.

لماذا هادوب مهمة جداً؟

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

ما هي تحديات استخدام منصة هادوب؟

  1. برمجة MapReduce ليست مناسبة لجميع المشاكل.
  2. هناك فجوة في المواهب معترف بها على نطاق واسع. قد يكون من الصعب العثور على مبرمجين للمبتدئين لديهم مهارات Java كافية ليكونوا منتجين باستخدام MapReduce.
  3. أمن البيانات. هناك تحدٍ آخر يتركز حول قضايا أمن البيانات المجزأة، على الرغم من ظهور أدوات وتقنيات جديدة.
  4. إدارة البيانات الكاملة والحوكمة. لا يحتوي هادوب على أدوات سهلة الاستخدام وكاملة الميزات لإدارة البيانات وتنقية البيانات والحوكمة والبيانات الوصفية.

كيف يتم استخدام Hadoop؟

تخزين منخفض التكلفة وأرشيف البيانات:

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

إنترنت الأشياء و هدوب:

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

استكمال مستودع البيانات الخاص بك:

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

بحيرة البيانات:

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