Apache Spark – مقدمة

Apache Spark

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

تم تقديم Spark بواسطة مؤسسة Apache Software Foundation لتسريع عملية برامج الحوسبة الحسابية Hadoop.

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

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

Apache Spark

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

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

تطور Apache Spark

يعد Spark أحد مشاريع Hadoop الفرعية التي تم تطويرها في عام 2009 في AMPLab بجامعة كاليفورنيا في بيركلي بواسطة Matei Zaharia. لقد كان مفتوح المصدر في عام 2010 بموجب ترخيص BSD. تم التبرع به لمؤسسة برمجيات Apache في عام 2013، والآن أصبح Apache Spark مشروع Apache عالي المستوى اعتبارًا من فبراير 2014.

مميزات Apache Spark

يحتوي Apache Spark على الميزات التالية.

السرعة – تساعد Spark على تشغيل تطبيق في مجموعة Hadoop، أسرع بما يصل إلى 100 مرة في الذاكرة، وأسرع 10 مرات عند التشغيل على القرص. وهذا ممكن عن طريق تقليل عدد عمليات القراءة/الكتابة على القرص. يقوم بتخزين بيانات المعالجة المتوسطة في الذاكرة.

يدعم لغات متعددة – يوفر Spark واجهات برمجة التطبيقات المضمنة في Java أو Scala أو Python. لذلك، يمكنك كتابة التطبيقات بلغات مختلفة. يأتي Spark مع 80 مشغلًا رفيع المستوى للاستعلام التفاعلي.

التحليلات المتقدمة – لا يدعم Spark فقط “الخريطة” و”التقليل”. كما أنه يدعم استعلامات SQL وتدفق البيانات والتعلم الآلي (ML) وخوارزميات الرسم البياني.

Spark مبني على Hadoop

يوضح الرسم البياني التالي ثلاث طرق لكيفية بناء Spark باستخدام مكونات Hadoop.

spark built on hadoop

هناك ثلاث طرق لنشر Spark كما هو موضح أدناه.

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

Hadoop Yarn – يعني نشر Hadoop Yarn، ببساطة، تشغيل الشرارة على Yarn دون الحاجة إلى أي تثبيت مسبق أو الوصول إلى الجذر. يساعد على دمج Spark في نظام Hadoop البيئي أو مكدس Hadoop. يسمح للمكونات الأخرى بالعمل فوق المكدس.

Spark in MapReduce (SIMR) – يتم استخدام Spark in MapReduce لإطلاق وظيفة الشرارة بالإضافة إلى النشر المستقل. باستخدام SIMR، يمكن للمستخدم تشغيل Spark واستخدام الصدفة الخاصة به دون أي وصول إداري.

مكونات Spark

يصور الرسم التوضيحي التالي المكونات المختلفة لـ Spark.

components of spark

Apache Spark Core
Spark Core هو محرك التنفيذ العام الأساسي لمنصة Spark التي تعتمد عليها جميع الوظائف الأخرى. يوفر الحوسبة داخل الذاكرة ومجموعات البيانات المرجعية في أنظمة التخزين الخارجية.

Spark SQL
يعد Spark SQL مكونًا أعلى Spark Core يقدم تجريدًا جديدًا للبيانات يسمى SchemaRDD، والذي يوفر الدعم للبيانات المنظمة وشبه المنظمة.

Spark Streaming
يعمل Spark Streaming على تعزيز قدرة الجدولة السريعة لـ Spark Core لإجراء تحليلات البث. فهو يستوعب البيانات على دفعات صغيرة ويقوم بإجراء تحويلات RDD (مجموعات البيانات الموزعة المرنة) على تلك الدفعات الصغيرة من البيانات.

MLlib (Machine Learning Library)
MLlib هو إطار عمل موزع للتعلم الآلي فوق Spark بسبب بنية Spark الموزعة القائمة على الذاكرة. تم ذلك، وفقًا للمعايير، بواسطة مطوري MLlib مقابل تطبيقات المربعات الصغرى البديلة (ALS). يعد Spark MLlib أسرع بتسع مرات من إصدار Hadoop المستند إلى القرص من Apache Mahout (قبل أن يحصل Mahout على واجهة Spark).

GraphX
GraphX هو إطار عمل موزع لمعالجة الرسوم البيانية أعلى Spark. يوفر واجهة برمجة التطبيقات (API) للتعبير عن حساب الرسم البياني الذي يمكنه تصميم الرسوم البيانية المعرفة من قبل المستخدم باستخدام واجهة برمجة تطبيقات التجريد Pregel. كما أنه يوفر وقت التشغيل الأمثل لهذا التجريد.

Related posts

Apache Kafka نظرة عامة

تحليل البيانات الضخمة – متخصص علوم البيانات

Cassandra – نموذج البيانات