ماذا تعرف عن حوسبة كثيفة البيانات Data-intensive computing؟

نشره Fahad في

نتابع اليوم سلسلة المقالات المتخصصة في مجال تقنيات الحوسبة السحابية، كنا قد نشرنا سابقا مقالة ماذا تعرف عن البيانات الضخمة Big Data؟ موضوع المقالة التالية هي حوسبة البيانات الكثيفة التي لها علاقة وثيقة بالبيانات الضخمة وكيفية معالجعتها. هذه المقالة عبارة عن ترجمة لمقالة Data-intensive computing من موسوعة ويكيبديا،وذلك من أجل إثراء المحتوى العربي في هذا المجال المتخصص.

إن حوسبة كثيفة البيانات Data-intensive computing ، هي فئة من تطبيقات الحوسبة المتوازية التي تستخدم نهج بيانات متوازي لمعالجة كميات كبيرة من البيانات والتي يكون حجمها مكافئ عادة للتيرابايت أو البيتابايت ويشار إليها باسم البيانات الضخمة. إن تطبيقات الحوسبة التي تكرس معظم أوقات عملها من أجل المتطلبات الحسابية تعتبر كثيفة الحوسبة وعادة ما تتطلب كميات صغيرة من البيانات، بينما تطبيقات الحوسبة التي تتطلب كميات كبيرة من البيانات وتكرس معظم وقت معالجتها من أجل عملية الإدخال/الإخراج والمعالجة البارعة للبيانات فتعتبر كثيفة البيانات[1].

مقدمة

لقد أدي النمو السريع لشبكة الإنترنت وشبكة الويب العالمية إلي إتاحة كميات هائلة من المعلومات علي الإنترنت. وبالإضافة لذلك، فقد قامت الحكومات ومنظمات الأعمال بإنشاء كميات كبيرة من المعلومات المنظمة والغير منظمة علي حد سواء، والتي تحتاج إلي معالجتها، تحليلها وربطها ببعضها البعض. وقد وصف "فينتون سيرف" هذا الأمر علي أنه "تدفق سريع للمعلومات Information Avalanche"، وذكر بأنه يجب علينا تسخير طاقة الإنترنت قبل أن تقوم المعلومات التي يحتويها بالتغلب علينا[2].

في تقرير IDC الحكومي والمدعوم من قبل شركة EMC، فقد تم إحصاء كمية المعلومات المخزنة حالياً في شكل رقمي منذ عام 2007 والتي بلغت 281 إكسابايت، كما أوضح التقرير أن معدل النمو الكلي المركب يصل إلي 57% مع العلم أن المعلومات الموجودة في المنظمات تنمو بمعدل أسرع من ذلك[3]. وفي دراسة أخري لما يسمي بانفجار المعلومات، فقد أشارت الإحصائيات أن 95% من جميع المعلومات تتواجد حالياً في شكل غير منظم يحتاج لمعالجة بيانات متزايدة مقارنة بالمعلومات المنظمة[4]. وتمثل عملية تخزين وإدارة ومعالجة هذا الكم الهائل من البيانات مطلباً أساسياً وتحدياً هائلاً من أجل تلبية احتياجات بحث وتحليل وعرض هذه البيانات والمعلومات[5]. ولهذا، وضعت الحوسبة كثيفة البيانات من أجل تلبية هذا الغرض.

إن مناهج المعالجة المتوازية يمكن تصنيفها بشكل عام علي أنها كثيفة الحوسبة أو كثيفة البيانات[6][7][8]. ويستخدم مصطلح "كثيفة الحوسبة" من أجل وصف برامج التطبيقات الملزمة بالحوسبة، ومثل هذه التطبيقات تكرس معظم أوقات عملها من أجل المتطلبات الحسابية بدلاً من عمليات الإدخال/الإخراج، وعادة ما تتطلب كميات صغيرة من البيانات. أما المعالجة المتوازية لتطبيقات الحوسبة المكثفة فعادة ما تنطوي علي موازاة الخوارزميات الفردية ضمن عملية التطبيق، وتقوم بتحليل عملية التطبيق الشامل إلي مهام منفصلة، والتي يمكن تنفيذها بالتوازي علي منصة الحوسبة الملائمة لتحقيق أداء أعلي عموماً من عملية المعالجة المتسلسلة. وفي تطبيقات الحوسبة المكثفة، يتم تنفيذ العمليات المتعددة في وقت واحد، حيث تقوم كل عملية بمعالجة جزء معين من المشكلة. وهذا غالباً ما يشار إليه باسم توازي المهمة.

ويستخدم مصطلح "كثيفة البيانات" لوصف التطبيقات الملزمة بعملية الإدخال/الإخراج أو عند الحاجة لمعالجة كمية كبيرة من البيانات[9]. وهذه البيانات تكرس معظم وقت عملها من أجل الإدخال/الإخراج وحركة ومعالجة البيانات. وعادة ما تتضمن المعالجة المتوازية للتطبيقات كثيفة البيانات علي تقسيم أو تجزئة البيانات إلي شرائح متعددة يمكن معالجتها بشكل مستقل باستخدام نفس برنامج التطبيق القابل للتنفيذ بشكل متوازي علي منصة الحوسبة المناسبة، ثم إعادة تجميع النتائج لإنتاج البيانات النهائية المُخرجة. وك[10] البيانات المتنامية بشكل كبير، تقليل بشكل ملحوظ دورات تحليل البيانات المرتبطة بها من أجل دعم تطبيقات الوقتية الإجرائية، وتطوير خوارزميات جديدة يمكنها توسيع نطاق البحث ومعالجة كميات هائلة من البيانات. ولذلك، فقد صاغ الباحثون مصطلح BORPS (مليارات السجلات في الثانية الواحدة) لقياس سرعة تسجيل المعالجة بطريقة مشابهة لكيفية عمل المصطلح MIPS لوصف سرعة معالجة الكمبيوتر[11].

 

توازي البيانات

إن أبنية نظام الكمبيوتر والتي يمكنها دعم تطبيقات البيانات المتوازية هي حل محتمل لمتطلبات معالجة البيانات في نطاق التيرابايت والبيتابايت والخاصة بالحوسبة كثيفة البيانات[12]. ويمكن تعريف توازي البيانات علي أنها عملية حوسبة يتم تطبيقها بشكل مستقل علي كل بند من بنود البيانات ضمن مجموعة البيانات، والتي تسمح لدرجة التوازي بأن يتم قياسها بحجم البيانات. والسبب الأكثر أهمية لتطوير تطبيقات توازي البيانات هو إمكانية وجود أداء قابل للتطوير، وربما يؤدي إلي عدة أوامر تساعد من أجل تحسين حجم الأداء.

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

خصائص نظم الحوسبة كثيفة البيانات

تعتقد المؤسسة الوطنية للعلوم أن الحوسبة كثيفة البيانات تتطلب "مجموعة مختلفة جوهرياً من المبادئ" عن مناهج الحوسبة الحالية[15]. ومن خلال برنامج تمويل ضمن مجال الهندسة وعلوم الحاسب والمعلومات، تسعي NSF إلي "زيادة فهم قدرات وحدود الحوسبة كثيفة البيانات". وتُعد مجالات التركيز الرئيسية هي:

  • المناهج الخاصة بالبرمجة المتوازية لمخاطبة المعالجة المتوازية للبيانات في أنظمة البيانات المكثفة.

  • تجريدات البرمجة بما في ذلك النماذج واللغات والخوارزميات التي تسمح بالتعبير الطبيعي للمعالجة المتوازية للبيانات.

  • تصميم منصات الحوسبة كثيفة البيانات لتوفير مستويات عالية من الموثوقية، الكفاءة، التوافر والتدرج.

  • تحديد التطبيقات التي يمكنها استغلال نموذج الحوسبة هذا وتحديد الكيفية التي ينبغي أن تتطور بها لدعم تطبيقات البيانات المكثفة الناشئة.

قامت مختبرات Pacific Northwest National Labs بتحديد الحوسبة مكثفة البيانات علي أنها "التقاط، وإدارة، وتحليل وفهم البيانات بأحجام ومعدلات تقوم بدفع حدود التكنولوجيات الحالية"[16][17]. فهم يعتقدون أن من أجل معالجة كميات البيانات المتنامية بسرعة يتطلب الأمر "تقدم عظيم في البرمجيات والأجهزة وتطوير الخوارزميات" والذي يمكنه الجدولة بسهولة مع حجم البيانات ويوفر تحليل فعال في الوقت المناسب ونتائج المعالجة.

 

نهج المعالجة

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

الخصائص الشائعة

هناك العديد من الخصائص الشائعة المهمة لنظم الحوسبة كثيفة البيانات والتي تميزها عن غيرها من أشكال الحوسبة الأخري:

1. يتم استخدام مبدأ جمع البيانات والبرامج أو الخوارزميات لأداء عملية الحوسبة. ومن المهم جداً تقليص حركة البيانات[19] لتحقيق أداء عالي في مجال الحوسبة كثيفة البيانات[20]. وتسمح التقنيات الأحدث مثل InfiniBand للبيانات بأن يتم تخزينها في مستودع بيانات منفصلة وتقديم أداء مماثل للبيانات المنظمة.

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

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

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

 

معمارية النظام

لقد تم تنفيذ مجموعة متنوعة من أبنية نظم الحوسبة مكثفة البيانات وتطبيقات تحليل البيانات الموسعة، بما في ذلك نظم إدارة قواعد البيانات العلائقية المتوازية والموزعة والتي كانت متاحة للعمل علي المجموعات المشتركة لعقد المعالجة لأكثر من عقدين من الزمان[22]. ومع ذلك، فإن معظم عمليات نمو البيانات يكون للبيانات الموجودة في شكل غير منظم، لذا فقد كان هناك حاجة لوجود نماذج معالجة جديدة ذات قوالب بيانات مرنة. ومن هذا المنطلق، فقد ظهرت العديد من الحلول بما في ذلك البنية المعمارية MapReduce الخاصة بجوجل والمتوفرة الآن في شكل مفتوح المصدر يُدعي Hadoop والمستخدم من قبل شركة ياهو، فيسبوك وآخرين. وقد تم تطوير LexisNexis Risk Solutions أيضاً وتنفيذ منصة لحوسبة البيانات المكثفة والمستخدمة من قبل LexisNexis.

معمارية MapReduce

إن معمارية MapReduce ونموذج برمجتها الرائدة من قبل جوجل تُعد مثال لبنية النظم الحديثة المصممة من أجل حوسبة البيانات المكثفة[23]. حيث تسمح معمارية MapReduce للمبرمجين باستخدام أسلوب برمجة وظيفي لإنشاء وظيفة مرسومة بالتفصيل والتي تعالج القيمة الأساسية المرتبطة بالبيانات المدخلة لتوليد مجموعة من أزواج القيمة المفتاحية المتوسطة، ووظيفة مختزلة تدمج كل القيم المتوسطة المرتبطة بنفس المقام المتوسط. وحيث أن النظام يعتني تلقائياً بالتفاصيل مثل تقسيم البيانات المُدخلة، وجدولة وتنفيذ المهام عبر مجموعة المعالجة، وإدارة الاتصالات بين العقد، فإن المبرمجين الذين ليس لديهم خبرة في البرمجة المتوازية يمكنهم بسهولة استخدام بيئة معالجة موزعة كبيرة الحجم.

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

Hadoop

إن Hadoop هو مشروع برنامج مفتوح المصدر برعاية مؤسسة Apache Software Foundation والذي يُطبق معمارية MapReduce. ويشمل Hadoop الآن مشاريع فرعية متعددة بالإضافة إلي مشروعه الأساسي، MapReduce، وملفات النظام الموزعة HDFS. هذه المشاريع الفرعية الإضافية توفر قدرات معالجة معززة لتطبيق مشروع Hadoop وتشمل حالياً Avro و Pig و Hbase و ZooKeeper و Hive و Chukwa. إن معمارية Hadoop MapReduce تشبه مشروع جوجل من ناحية الوظيفة، إلا أن لغة البرمجة الرئيسية لـ Hadoop هي الجافا بدلاً من C++.

ويقوم Hadoop بتنفيذ جدولة معالجة البيانات الموزعة وتجهيز بيئة وإطار العمل الخاص بوظائف MapReduce. ويتضمن Hadoop نظام ملفات موزع يُدعي HDFS والذي يشبه نظام GFS في مشروع MapReduce الخاص بجوجل. وتقوم بيئة Hadoop التنفيذية بدعم قدرات معالجة البيانات الإضافية الموزعة والتي تم تصميمها للعمل باستخدام معمارية Hadoop MapReduce. وتتضمن هذه القدرات Hbase، وهي عبارة عن قاعدة بيانات موزعة عمودياً والتي توفر وصول عشوائي لقدرات القراءة/الكتابة، Hive وهو عبارة عن نظام مستودع البيانات تم بناءه علي قمة Hadoop والذي يوفر قدرات استعلام مشابهة لـ SQL من أجل تلخيص البيانات، والاستعلامات المخصصة، وتحليل مجموعات البيانات الكبيرة، Pig – وهي عبارة عن لغة برمجة عالية المستوي والتي تقوم بتنفيذ إطار عمل لحوسبة البيانات المكثفة.

وقد تم تطوير لغة البرمجة Pig في ياهو لتوفير لغة تدوين معينة من أجل تطبيقات تحليل البيانات ولتحسين إنتاجية المبرمج وتقليص دورات التطوير عند استخدام بيئة Hadoop MapReduce. ويتم ترجمة برامج Pig تلقائياً إلي سلسلة من برامج MapReduce إذا لزم الأمر في بيئة العمل. وتوفر Pig عدد من القدرات في اللغة من أجل التحميل، التخزين، التصفية، التجميع، الأوامر، الفرز، التجميع وضم العمليات علي البيانات[24].

HPCC

إن HPCC (مجموعة حوسبة عالية الأداء) قد تم تطويرها وتنفيذها من قبل LexisNexis Risk Solutions. وقد بدأ تطوير منصة الحوسبة هذه في عام 1999 وتم إنتاج التطبيقات في أواخر عام 2000. وقد استخدام نهج LexisNexis أيضاً مجموعات سلعية من الأجهزة التي تعمل علي نظام التشغيل لينكس. وقد تم تطوير برنامج النظام الرئيسي والمكونات الوسيطة علي قاعدة نظام التشغيل "لينكس" لتوفير بيئة العمل ودعم نظام الملفات الموزع اللازم لحوسبة البيانات المكثفة. كما قامت LexisNexis أيضاً بتنفيذ لغة جديدة عالية المستوي من أجل الحوسبة مكثفة البيانات أطلقت عليها إسم ECL.

إن لغة البرمجة ECL هي العامل الأساسي المميز بين HPCC وغيرها من حلول حوسبة البيانات المكثفة. فهي لغة رفيعة المستوي، مركزية البيانات وموازية ضمناً والتي تسمح للمبرمج بتحديد ما ينبغي أن تكون عليه نتائج معالجة البيانات وتدفقات البيانات والتحولات الضرورية لتحقيق النتيجة. إن لغة ECL تتضمن قدرات واسعة لتعريف البيانات، التصفية، إدارة البيانات، ونقل البيانات، وتوفر مجموعة واسعة من الوظائف المدمجة للعمل علي السجلات في قواعد البيانات التي يمكن أن تتضمن وظائف التحول المُعرفة من قبل المستخدم. ويتم تصنيف برامج ECL إلي شفرة مصدر C++ مُحسنة، والتي يتم تجميعها لاحقا في كود قابل للتنفيذ وتوزيعها علي عقد كتلة المعالجة.

إن منصة Thor هي كتلة هدفها هو أن تكون مصفاة للبيانات لتجهيز كميات هائلة من البيانات الخام من أجل التطبيقات مثل تنقية البيانات، ETL (استخراج وتحويل الحمل)، ربط السجل، وإنشاء البيانات والفهارس المقفولة لدعم الاستعلامات المهيكلة عالية الأداء وتطبيقات مستودع البيانات. إن نظام Thor يشبه في تكوينه، ووظيفته، وبيئة تنفيذه، ونظام ملفاته، وقدراته منصة Hadoop MapReduce، ولكنه يوفر أداء أعلي في التكوينات المعادلة. وتوفر منصة Roxie استعلام هيكلي عالي الأداء علي الإنترنت ونظام تحليل أو مستودع بيانات يسلم متطلبات معالجة البيانات المتوازية لتطبيقات الإنترنت عبر واجهات خدمات الويب التي تدعم الآلاف من الاستعلامات المتزامنة ومستخدمين مع أوقات استجابة أقل من الثانية. إن وظيفة وقدرات نظام Roxie مع Hadoop تشبه Hbase مع إضافة قدرات Hive، ولكنه يوفر بيئة تنفيذ أمثل ونظام ملفات من أجل المعالجة عالية الأداء علي الإنترنت. ويستخدم نظامي Thor و Roxie نفس لغة البرمجة " ECL" لتنفيذ التطبيقات، وزيادة إنتاجية المبرمجين.

 

ترجمة: محمد مصباح