برنامج Apache Spark التعليمي للمبتدئين: تعلم Apache Spark مع أمثلة

نشرت: 2020-03-26

جدول المحتويات

مقدمة

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

ولكن مع نمو الشركات ، ينمو العملاء وأصحاب المصلحة وشركاء الأعمال والمنتجات أيضًا. لذا ، فإن كمية البيانات التي يتعين عليهم التعامل معها تصبح ضخمة.

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

سوف ندخل في تفاصيل البرنامج من خلال مقدمة إلى Apache Spark .

ما هو اباتشي سبارك؟

Apache Spark هو إطار عمل للحوسبة العنقودية مفتوح المصدر . إنه في الأساس نظام معالجة بيانات يستخدم للتعامل مع أعباء عمل البيانات الضخمة ومجموعات البيانات. يمكنه معالجة مجموعات البيانات الكبيرة بسرعة وكذلك توزيع هذه المهام عبر أنظمة متعددة لتخفيف عبء العمل. يحتوي على واجهة برمجة تطبيقات بسيطة تقلل العبء عن المطورين عندما يغمرهم المصطلحان - معالجة البيانات الضخمة والحوسبة الموزعة!

بدأ تطوير Apache Spark كمشروع بحثي مفتوح المصدر في AMPLab في جامعة كاليفورنيا في بيركلي بواسطة ماتي زاهريا ، الذي يعتبر مؤسس Spark. في عام 2010 ، بموجب ترخيص BSD ، كان المشروع مفتوح المصدر. في وقت لاحق ، أصبح مشروعًا محتضنًا في إطار مؤسسة Apache Software Foundation في عام 2013. وأصبح هذا أحد أهم مشاريع الشركة في عام 2014.

في عام 2015 ، كان لدى Spark أكثر من 1000 مساهم في المشروع. وهذا ما جعله أحد أكثر المشاريع نشاطًا في مؤسسة Apache Software Foundation وأيضًا في عالم البيانات الضخمة. تدعم أكثر من 200 شركة هذا المشروع منذ عام 2009.

لكن لماذا كل هذا الجنون على سبارك؟

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

وهو يدعم مجموعة واسعة من قواعد البيانات مثل قواعد بيانات Hadoop's HDFS و Amazon S3 و NoSQL مثل MongoDB و Apache HBase و MapR Database و Apache Cassandra. كما أنها تدعم Apache Kafka و MapR Event Store.

أباتشي سبارك للهندسة المعمارية

بعد استكشاف مقدمة Apache Spark ، سنتعرف الآن على هيكلها. تعرف على المزيد حول Apache Architecture.

هيكلها محدد جيدًا ويتكون من مكونين أساسيين:

مجموعات البيانات الموزعة المرنة (RDD)

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

يدعم Spark نوعين من RDDs:

  • مجموعات بيانات Hadoop التي تم إنشاؤها من ملفات على HDFS (نظام الملفات الموزعة Hadoop)
  • مجموعات موازية على أساس مجموعات سكالا

يمكن استخدام RDDs لنوعين من العمليات هما:

  • التحويلات - تُستخدم هذه العمليات لإنشاء RDDs
  • الإجراءات - تُستخدم لتوجيه Spark لإجراء بعض العمليات الحسابية وإعادة النتيجة إلى السائق. سنتعلم المزيد عن السائقين في الأقسام القادمة

DAG (الرسم البياني غير الدوري الموجه)

يمكن اعتبار هذا كسلسلة من الإجراءات على البيانات. هم مزيج من القمم والحواف. يمثل كل رأس RDD وكل حافة تمثل الحساب الذي يجب إجراؤه على ذلك RDD. هذا رسم بياني يحتوي على جميع العمليات المطبقة على RDD.

هذا رسم بياني موجه لأن إحدى العقدة متصلة بالأخرى. الرسم البياني لا دوري حيث لا توجد حلقة أو دورة بداخله. بمجرد إجراء التحويل ، لا يمكنه العودة إلى موضعه الأصلي. التحويل في Apache Spark هو إجراء يحول حالة قسم البيانات من A إلى B.

إذن ، كيف تعمل هذه العمارة؟ دعنا نرى.

تحتوي بنية Apache Spark على شيطانين أساسيين ومدير مجموعة . هؤلاء هم - الخفي الرئيسي والعامل . الخفي هو برنامج يتم تنفيذه كخلفية. يمكن أن تحتوي الكتلة في Spark على العديد من العبيد ولكن شيطان رئيسي واحد.

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

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

اباتشي سبارك: الفوائد

فيما يلي مزايا استخدام Apache Spark :

سرعة

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

التعامل مع أعباء عمل متعددة

يمكن لـ Apache Spark التعامل مع أعباء عمل متعددة في وقت واحد. يمكن أن تكون هذه استعلامات تفاعلية ومعالجة الرسوم البيانية والتعلم الآلي والتحليلات في الوقت الفعلي. يمكن لتطبيق Spark دمج العديد من أحمال العمل بسهولة.

سهولة الاستعمال

يتمتع Apache Spark بواجهات برمجة تطبيقات سهلة الاستخدام للتعامل مع مجموعات البيانات الكبيرة. يتضمن ذلك أكثر من 100 عامل يمكنك استخدامها لبناء تطبيقات متوازية. يمكن لهؤلاء المشغلين تحويل البيانات ، ويمكن معالجة البيانات شبه المنظمة باستخدام واجهات برمجة التطبيقات لإطار البيانات.

دعم اللغة

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

كفاءة

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

التقييم الكسول يزيد من سرعة النظام وكفاءته.

دعم المجتمع

لكونه أحد أكبر مشاريع البيانات الضخمة مفتوحة المصدر ، فإن لديه أكثر من 200 مطور من شركات مختلفة يعملون عليه. في عام 2009 ، بدأ المجتمع ويتطور منذ ذلك الحين. لذلك ، إذا واجهت خطأً تقنيًا ، فمن المحتمل أن تجد حلاً عبر الإنترنت ، ينشره المطورون.

قد تجد أيضًا العديد من المطورين المستقلين أو بدوام كامل على استعداد لمساعدتك في مشروع Spark الخاص بك.

دفق في الوقت الحقيقي

تشتهر Spark بتدفق البيانات في الوقت الفعلي . أصبح هذا ممكنًا من خلال Spark Streaming ، وهو امتداد لواجهة Spark API الأساسية. يتيح ذلك لعلماء البيانات التعامل مع البيانات في الوقت الفعلي من مصادر مختلفة مثل Amazon Kinesis و Kafka . يمكن بعد ذلك نقل البيانات المعالجة إلى قواعد البيانات وأنظمة الملفات ولوحات المعلومات.

العملية فعالة بمعنى أن Spark Streaming يمكن أن يتعافى من فشل البيانات بسرعة. يقوم بأداء موازنة أفضل للحمل ويستخدم الموارد بكفاءة.

تطبيقات اباتشي سبارك

بعد التعريف بـ Apache Spark وفوائده ، سنتعرف أكثر على تطبيقاته المختلفة:

التعلم الالي

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

يمكن لمكتبة Spark's Machine Learning (MLlib) القيام بعمليات تحليلية متقدمة مثل التحليل التنبئي والتصنيف وتحليل المشاعر والتجميع وتقليل الأبعاد.

تكامل البيانات

البيانات التي يتم إنتاجها عبر الأنظمة المختلفة داخل المؤسسة ليست دائمًا نظيفة ومنظمة. Spark هي أداة فعالة للغاية في أداء عمليات ETL على هذه البيانات. هذا يعني أنه ينفذ ويستخرج وتحويل وتحميل العمليات لسحب البيانات من مصادر مختلفة وتنظيفها وتنظيمها. ثم يتم تحميل هذه البيانات في نظام آخر لتحليلها.

تحليل تفاعلي

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

حوسبة الضباب

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

لذلك ، تتم معالجة البيانات والتخزين اللامركزي من خلال حوسبة الضباب جنبًا إلى جنب مع Spark . لهذا ، تقدم Spark مكونات قوية مثل Spark Streaming و GraphX ​​و MLlib. تعرف على المزيد حول تطبيقات اباتشي سبارك.

خاتمة

لقد تعلمنا أن Apache Spark سريع وفعال وغني بالميزات. هذا هو السبب في أن شركات مثل Huawei و Baidu و IBM و JP Morgan Chase و Lockheed Martin و Microsoft تستخدمها لتسريع أعمالها. وهي الآن مشهورة في مجالات مختلفة مثل البيع بالتجزئة ، والأعمال التجارية ، والخدمات المالية ، وإدارة الرعاية الصحية والتصنيع.

نظرًا لأن العالم أصبح أكثر اعتمادًا على البيانات ، ستستمر Apache Spark في كونها أداة مهمة لمعالجة البيانات في المستقبل.

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

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

قيادة الثورة التكنولوجية المدفوعة بالبيانات

400+ ساعة من التعلم. 14 لغة وأدوات. حالة خريجي IIIT-B.
برنامج الشهادة المتقدم في البيانات الضخمة من معهد IIIT بنغالور