أباتشي سبارك
أباتشي سبارك هو محرك تحليلات موحد مفتوح المصدر لمعالجة البيانات واسعة النطاق. يوفر سبارك واجهة لبرمجة مجموعات الحوسبة مع توازي ضمني للبيانات وتحمل للأعطال . طُوّر سبارك في الأصل في مختبر AMP التابع لجامعة كاليفورنيا، بيركلي، بدءًا من عام 2009، وفي عام 2013، تم التبرع بقاعدة بيانات سبارك إلى مؤسسة برمجيات أباتشي ، التي تتولى صيانتها منذ ذلك الحين.
ملخص
يرتكز أباتشي سبارك في بنيته على مجموعة البيانات الموزعة المرنة (RDD)، وهي مجموعة بيانات متعددة للقراءة فقط موزعة على مجموعة من الأجهزة، ويتم صيانتها بطريقة مقاومة للأعطال . [ 2 ] تم إصدار واجهة برمجة تطبيقات Dataframe كطبقة تجريدية فوق RDD، تلتها واجهة برمجة تطبيقات Dataset. في سبارك 1.x، كانت RDD هي واجهة برمجة التطبيقات الأساسية ، ولكن بدءًا من سبارك 2.x، يُشجع استخدام واجهة برمجة تطبيقات Dataset [ 3 ] على الرغم من أن واجهة برمجة تطبيقات RDD لم تُهمل . [ 4 ] [ 5 ] لا تزال تقنية RDD هي الأساس الذي تقوم عليه واجهة برمجة تطبيقات Dataset. [ 6 ] [ 7 ]
طُوِّرَتْ Spark ووحدات RDD الخاصة بها في عام 2012 استجابةً للقيود المفروضة على نموذج الحوسبة العنقودية MapReduce ، الذي يفرض بنية تدفق بيانات خطية محددة على البرامج الموزعة: تقرأ برامج MapReduce بيانات الإدخال من القرص، وتُطبِّق دالة على البيانات، وتُختزل نتائج التطبيق، وتُخزِّن نتائج الاختزال على القرص. تعمل وحدات RDD الخاصة بـ Spark كمجموعة عمل للبرامج الموزعة، مما يوفر شكلاً (مُقيدًا عمدًا) من الذاكرة المشتركة الموزعة . [ 8 ]
في Apache Spark، تتم إدارة سير العمل كرسم بياني موجه غير دوري (DAG). تمثل العقد مجموعات البيانات الموزعة (RDDs) بينما تمثل الحواف العمليات على مجموعات البيانات الموزعة.
يُسهّل Spark تنفيذ كلٍّ من الخوارزميات التكرارية ، التي تزور مجموعة البيانات عدة مرات في حلقة تكرارية، وتحليل البيانات التفاعلي/الاستكشافي، أي الاستعلام المتكرر عن البيانات على غرار قواعد البيانات. ويمكن تقليل زمن استجابة هذه التطبيقات بعدة مراتب مقارنةً بتنفيذ Apache Hadoop MapReduce. [ 2 ] [ 9 ] ومن بين الخوارزميات التكرارية، خوارزميات تدريب أنظمة التعلّم الآلي ، التي شكّلت الدافع الأولي لتطوير Apache Spark. [ 10 ]
يتطلب Apache Spark مديرًا للمجموعات ونظام تخزين موزع . لإدارة المجموعات، يدعم Spark كلاً من Spark الأصلي المستقل، و Hadoop YARN ، و Apache Mesos ، و Kubernetes . [ 11 ] يمكن تشغيل مجموعة Spark الأصلية المستقلة يدويًا أو باستخدام نصوص التشغيل المُقدمة من حزمة التثبيت. كما يُمكن تشغيل الخدمات على جهاز واحد لأغراض الاختبار. بالنسبة للتخزين الموزع، يُمكن لـ Spark التفاعل مع مجموعة واسعة من الأنظمة الموزعة، بما في ذلك Alluxio ، ونظام ملفات Hadoop الموزع (HDFS) ، [ 12 ] ونظام ملفات MapR (MapR-FS) ، [ 13 ] وCassandra ، [ 14 ] وOpenStack Swift ، و Amazon S3 ، وKudu ، ونظام ملفات Lustre ، [ 15 ] أو يُمكن تطبيق حل مخصص. يدعم Spark أيضًا وضعًا محليًا شبه موزع، يُستخدم عادةً لأغراض التطوير أو الاختبار فقط، حيث لا يكون التخزين الموزع مطلوبًا، ويُمكن استخدام نظام الملفات المحلي بدلاً منه. في مثل هذا السيناريو، يتم تشغيل Spark على جهاز واحد مع منفذ واحد لكل نواة وحدة المعالجة المركزية .
سبارك كور
يُعدّ Spark Core أساس المشروع ككل. فهو يوفر إمكانية توزيع المهام، وجدولة العمليات، ووظائف الإدخال والإخراج الأساسية ، وذلك من خلال واجهة برمجة تطبيقات (لـ Java و Python و Scala و .NET [ 16 ] و R ) تتمحور حول تجريد RDD (واجهة برمجة تطبيقات Java متاحة للغات JVM الأخرى، ولكنها قابلة للاستخدام أيضًا مع بعض اللغات الأخرى غير JVM التي يمكنها الاتصال بـ JVM، مثل Julia [ 17 ] ). تعكس هذه الواجهة نموذجًا وظيفيًا / عالي المستوى للبرمجة: حيث يقوم برنامج "التشغيل" باستدعاء عمليات متوازية مثل map أو filter أو reduce على RDD عن طريق تمرير دالة إلى Spark، الذي يقوم بدوره بجدولة تنفيذ الدالة بالتوازي على المجموعة. [ 2 ] تأخذ هذه العمليات، بالإضافة إلى عمليات أخرى مثل joins ، كائنات RDD كمدخلات وتنتج كائنات RDD جديدة. كائنات RDD غير قابلة للتغيير ، وعملياتها كسولة . تتحقق مقاومة الأعطال من خلال تتبع "سلسلة" كل مجموعة بيانات موزعة (أي تسلسل العمليات التي أنتجتها) بحيث يمكن إعادة بنائها في حالة فقدان البيانات. يمكن أن تحتوي مجموعات البيانات الموزعة على أي نوع من كائنات بايثون أو دوت نت أو جافا أو سكالا.
إلى جانب أسلوب البرمجة الوظيفي الموجه نحو RDD، يوفر Spark شكلين محدودين من المتغيرات المشتركة: متغيرات البث التي تشير إلى بيانات للقراءة فقط يجب أن تكون متاحة على جميع العقد، بينما يمكن استخدام المُجمِّعات لبرمجة عمليات الاختزال بأسلوب إجرائي . [ 2 ]
من الأمثلة النموذجية على البرمجة الوظيفية التي تركز على RDD برنامج Scala التالي الذي يحسب ترددات جميع الكلمات الواردة في مجموعة من الملفات النصية ويطبع الكلمات الأكثر شيوعًا. تأخذ كل من map و flatMap (وهي صيغة معدلة من map ) و reduceByKey دالة مجهولة تُجري عملية بسيطة على عنصر بيانات واحد (أو زوج من العناصر)، وتُطبق وسيطها لتحويل RDD إلى RDD جديد.
منظمة الاستيراد أباتشي . شرارة .{ سبارك كون ، سبارك كونتيكست }استيراد org.apache.spark.rdd.RDDval conf : SparkConf = new SparkConf (). setAppName ( "wiki_test" ) // إنشاء كائن تكوين Sparkval sc : SparkContext = new SparkContext ( conf ) // إنشاء سياق سباركval data : RDD [ String ] = sc . textFile ( "/path/to/somedir" ) // قراءة الملفات من "somedir" إلى RDD من أزواج (اسم الملف، المحتوى).val tokens : RDD [ String ] = data . flatMap ( _ . split ( " " )) // تقسيم كل ملف إلى قائمة من الرموز (الكلمات).val wordFreq : RDD [( String , Int )] = tokens . map (( _ , 1 )). reduceByKey ( _ + _ ) // أضف قيمة واحد لكل رمز، ثم اجمع القيم لكل نوع كلمة.val topWords : Array [( Int , String )] = wordFreq . sortBy ( s => - s . _2 ). map ( x => ( x . _2 , x . _1 )). top ( 10 ) // الحصول على أفضل 10 كلمات. تبديل الكلمة والعدد لترتيبها حسب العدد.بايسبارك
PySpark هي واجهة برمجة تطبيقات بايثون لـ Apache Spark، وقد تم تقديمها في Spark 0.7، الذي صدر في فبراير 2013. [ 18 ] تتيح هذه الواجهة كتابة تطبيقات Spark بلغة بايثون ، وتوفر بيئة تفاعلية لتحليل البيانات. يتم تنفيذ كود PySpark ضمن بيئة تشغيل CPython القياسية ، ويمكنه استدعاء مكتبات بايثون الأصلية مثل NumPy و SciPy ؛ تاريخيًا، كانت مكتبة Py4J هي الوسيط في عملية التواصل بين كود المستخدم بلغة بايثون ونواة Spark الأساسية القائمة على JVM . [ 18 ] [ 19 ]
يوفر PySpark واجهات Python لمعظم مكونات Spark، بما في ذلك Spark Core و Spark SQL وواجهة برمجة تطبيقات DataFrame و Structured Streaming و MLlib ؛ ومنذ Spark 4.1، فإنه يعرض أيضًا واجهة برمجة تطبيقات Spark Declarative Pipelines. [ 19 ]
تم دمج واجهة برمجة تطبيقات متوافقة مع مكتبة Pandas، تُعرف باسم واجهة برمجة تطبيقات Pandas على Spark ، في PySpark في Apache Spark 3.2.0، الذي صدر في أكتوبر 2021. توفر هذه الواجهة مكافئات لواجهة برمجة تطبيقات تحليل البيانات الخاصة بـ Pandas ، والتي تُنفذ على محرك Spark، مما يسمح بتشغيل التعليمات البرمجية بأسلوب Pandas على البيانات الموزعة. [ 20 ] [ 21 ] وقد نشأ هذا المكون في الأصل باسم Koalas، وهو مشروع منفصل مفتوح المصدر أطلقته Databricks في عام 2019، والذي تم دمجه لاحقًا في PySpark. [ 21 ]
يوفر PySpark أيضًا عميلًا لـ Spark Connect، وهو بنية عميل-خادم تُمكّن من الاتصال عن بُعد بمجموعات Spark من تطبيقات PySpark. [ 19 ]
يستخدم برنامج PySpark النموذجي SparkSession لتحميل البيانات كإطار بيانات وتطبيق التحويلات:
from pyspark.sql import SparkSessionspark = SparkSession.builder.appName ( " example " ) . getOrCreate ( )df = spark.read.json ( " path / to/people.json" ) df.groupBy ( " age " ) . count ( ) . show ( )سبارك إس كيو إل
يُعدّ Spark SQL مكونًا أساسيًا في Spark Core، وقد قدّم تجريدًا للبيانات يُسمى DataFrames، [ a ] والذي يدعم البيانات المهيكلة وشبه المهيكلة . يوفر Spark SQL لغة برمجة خاصة بالمجال (DSL) للتعامل مع DataFrames في Scala أو Java أو Python أو .NET . [ 16 ] كما يدعم لغة SQL، مع واجهات سطر أوامر وخادم ODBC / JDBC . على الرغم من أن DataFrames تفتقر إلى التحقق من النوع في وقت الترجمة الذي توفره RDDs، إلا أنه بدءًا من Spark 2.0، أصبح DataSet ذو النوع القوي مدعومًا بالكامل من قِبل Spark SQL أيضًا.
استيراد org.apache.spark.sql . { DataFrame , SparkSession }val url : String = "jdbc:mysql://yourIP:yourPort/test?user=yourUsername;password=yourPassword" // عنوان URL لخادم قاعدة البيانات. val spark : SparkSession = SparkSession . builder (). getOrCreate () // إنشاء كائن جلسة Sparkval df : DataFrame = spark . read . format ( "jdbc" ) . option ( "url" , url ) . option ( "dbtable" , "people" ) . load ()df.printSchema () // يعرض مخطط DataFrame هذا. val countsByAge : DataFrame = df.groupBy ( " age" ) . count () // يحسب عدد الأشخاص حسب العمرأو بدلاً من ذلك عبر لغة SQL:
df.createOrReplaceTempView ( " people" ) val countsByAge : DataFrame = spark.sql ( " SELECT age, count ( * ) FROM people GROUP BY age" )خطوط أنابيب Spark التصريحية
تُعدّ Spark Declarative Pipelines (SDP) إطار عمل تصريحيًا لتعريف وتشغيل مسارات استخراج البيانات وتحويلها وتحميلها (ETL)، وقد أُضيفت في Apache Spark 4.1.0، الذي صدر في 16 ديسمبر 2025. [ 23 ] [ 24 ] يُعرّف المطورون مجموعات البيانات التي يجب أن يُنتجها المسار والاستعلامات التي تُعرّفها، بدلًا من كتابة تعليمات برمجية إجرائية تُحدد كيفية حساب كل مجموعة بيانات وترتيبها؛ إذ يقوم Spark بإنشاء رسم بياني لتدفق البيانات وإدارة ترتيب التبعيات والتوازي ونقاط التحقق وإعادة المحاولات. [ 23 ] [ 25 ]
يُوسّع هذا الإطار نموذج التنفيذ الكسول والتصريحي لـ Spark، الذي كان يُطبّق سابقًا على الاستعلامات الفردية عبر Spark SQL ، ليشمل مسارات البيانات التي تغطي مجموعات بيانات متعددة. [ 25 ] تُعرَّف مسارات البيانات بلغة SQL أو Python، وتُنظَّم حول جداول البيانات المتدفقة والعروض المادية، مع التعبير عن التحويلات الأساسية على شكل "تدفقات"؛ ويمكن دمج عمليات الحساب الدفعية والمتدفقة ضمن مسار بيانات واحد. [ 25 ] [ 26 ]
يمكن لخط الأنابيب الذي يستخدم الصيغة أن يعلن عن جدول تدفق يستوعب السجلات وعرض مادي يجمعها، باستخدام واجهة برمجة تطبيقات بايثون: [ 26 ]
from pyspark import pipelines as dp@ dp.table def orders ( ) : return spark.readStream.table ( " orders_source " )@ dp.materialized_view def daily_orders_by_state (): return ( spark.table ( "orders" ) . groupBy ( " state" , "order_date" ) . count ( ) )يمكن تعريف نفس مجموعات البيانات في لغة SQL: [ 26 ]
إنشاء جدول بيانات متدفق باسم orders كالتالي: SELECT * FROM STREAM orders_source ;إنشاء عرض مادي daily_orders_by_state كالتالي : SELECT state , order_date , count ( * ) AS order_count FROM orders GROUP BY state , order_date ;بث البيانات المنظم من سبارك
تستخدم خدمة Spark Structured Streaming قدرة الجدولة السريعة في Spark Core لإجراء تحليلات البيانات المتدفقة . حيث تستقبل البيانات على شكل دفعات صغيرة وتُجري عليها تحويلات RDD. يُمكّن هذا التصميم من استخدام نفس مجموعة أكواد التطبيق المُخصصة لتحليلات الدفعات في تحليلات البيانات المتدفقة، مما يُسهّل تطبيق بنية Lambda . [ 27 ] [ 28 ] مع ذلك، تأتي هذه الميزة مصحوبة بزيادة في زمن الاستجابة تُعادل مدة الدفعة الصغيرة. من بين محركات معالجة البيانات المتدفقة الأخرى التي تُعالج البيانات حدثًا تلو الآخر بدلًا من الدفعات الصغيرة، نذكر Storm ومكون البث في Flink . [ 29 ] تدعم Spark Streaming بشكل مُدمج استهلاك البيانات من Kafka و Flume و Twitter و ZeroMQ و Kinesis ومنافذ TCP/IP . [ 30 ]
في Spark 2.x، يتم توفير تقنية منفصلة تعتمد على مجموعات البيانات، تسمى البث المنظم، والتي تحتوي على واجهة ذات مستوى أعلى لدعم البث. [ 31 ]
أضاف Apache Spark 4.x نموذج تنفيذ في الوقت الحقيقي (RTM) للبث المهيكل، بهدف تقليل زمن الاستجابة الشامل لدعم أحمال العمل التشغيلية والدفعية على محرك واحد. [ 23 ] [ 24 ] [ 32 ] يمكن تنفيذ استعلامات البث المهيكل الحالية المكتوبة باستخدام واجهات برمجة تطبيقات DataFrame وDataset في الوضع الجديد دون تعديل الاستعلام. [ 32 ]
يمكن نشر Spark في مركز بيانات تقليدي محلي وكذلك في السحابة . [ 33 ]
سبارك كونكت
Spark Connect عبارة عن بنية عميل-خادم منفصلة لـ Apache Spark، تسمح للتطبيقات البعيدة بالاتصال بمجموعة Spark من أي بيئة، وقد تم تقديمها في Apache Spark 3.4، الذي صدر في أبريل 2023. [ 34 ] تفصل هذه البنية تطبيق العميل عن برنامج تشغيل Spark، الذي كان يعمل سابقًا في نفس العملية؛ في Spark Connect، يكون العميل عبارة عن مكتبة بسيطة يمكن تضمينها في خوادم التطبيقات، وبيئات التطوير المتكاملة ، ودفاتر الملاحظات، وبيئات البرمجة الأخرى. [ 34 ]
يقوم عميل Spark Connect بترجمة عمليات DataFrame إلى خطط استعلام منطقية غير محلولة، ثم يشفرها باستخدام بروتوكول Buffers ، ويرسلها إلى خادم Spark عبر إطار عمل gRPC ؛ يقوم الخادم بترجمة هذه الخطط إلى عوامل تشغيل خطة Spark المنطقية، وينفذها من خلال مسار تنفيذ Spark القياسي. تُعاد النتائج إلى العميل على شكل دفعات صفوف مشفرة باستخدام Apache Arrow . [ 34 ] [ 35 ]
تتصل تطبيقات PySpark بخادم Spark Connect عن طريق تحديد عنوان URL بعيد عند إنشاء جلسة Spark:
from pyspark.sql import SparkSessionspark = SparkSession.builder.remote ( " sc ://localhost: 15002 " ) .getOrCreate ( )تمت إضافة دعم PySpark لـ Spark Connect في Spark 3.4، وتلاه دعم عميل Scala في Spark 3.5؛ وتم تطوير عملاء إضافيين للغات تشمل Go و Swift و Rust في الإصدارات اللاحقة. [ 34 ]
مكتبة MLlib للتعلم الآلي
Spark MLlib هو إطار عمل موزّع للتعلم الآلي مبني على Spark Core، وهو أسرع بتسعة أضعاف من التنفيذ القائم على القرص المستخدم في Apache Mahout (وفقًا لاختبارات الأداء التي أجراها مطورو MLlib على تطبيقات المربعات الصغرى المتناوبة (ALS)، وقبل أن يحصل Mahout نفسه على واجهة Spark)، ويتفوق في قابلية التوسع على Vowpal Wabbit . [ 36 ] تم تنفيذ العديد من خوارزميات التعلم الآلي والإحصائية الشائعة، وهي مُضمّنة في MLlib، مما يُبسّط مسارات التعلم الآلي واسعة النطاق ، بما في ذلك:
- الإحصاءات الموجزة ، والارتباطات ، وأخذ العينات الطبقية ، واختبار الفرضيات ، وتوليد البيانات العشوائية [ 37 ]
- التصنيف والانحدار : آلات المتجهات الداعمة ، الانحدار اللوجستي ، الانحدار الخطي ، تصنيف بايز الساذج ، شجرة القرار ، الغابة العشوائية ، شجرة التدرج المعزز
- تقنيات الترشيح التعاوني بما في ذلك طريقة المربعات الصغرى المتناوبة (ALS)
- أساليب تحليل التجميع بما في ذلك k-means وتخصيص Dirichlet الكامن (LDA)
- تقنيات تقليل الأبعاد مثل تحليل القيم المفردة (SVD) وتحليل المكونات الرئيسية (PCA)
- وظائف استخراج الميزات وتحويلها
- خوارزميات التحسين مثل التدرج العشوائي ، وخوارزمية BFGS ذات الذاكرة المحدودة (L-BFGS)
GraphX
GraphX هو إطار عمل لمعالجة الرسوم البيانية الموزعة مبني على Apache Spark. ولأنه يعتمد على RDDs، وهي كائنات غير قابلة للتغيير، فإن الرسوم البيانية غير قابلة للتغيير أيضًا، وبالتالي فإن GraphX غير مناسب للرسوم البيانية التي تحتاج إلى تحديث، ناهيك عن تحديثها بطريقة معاملاتية مثل قواعد بيانات الرسوم البيانية . [ 38 ] يوفر GraphX واجهتي برمجة تطبيقات منفصلتين لتنفيذ الخوارزميات المتوازية الضخمة (مثل PageRank ): واجهة Pregel المجردة ، وواجهة برمجة تطبيقات أكثر عمومية على غرار MapReduce. [ 39 ] على عكس سابقه Bagel، الذي تم إيقافه رسميًا في Spark 1.6، يدعم GraphX بشكل كامل الرسوم البيانية الخاصة بالخصائص (الرسوم البيانية التي يمكن فيها ربط الخصائص بالحواف والرؤوس). [ 40 ]
على غرار أباتشي سبارك، بدأ مشروع GraphX في البداية كمشروع بحثي في مختبر AMPLab التابع لجامعة كاليفورنيا في بيركلي وشركة Databricks، وتم التبرع به لاحقًا لمؤسسة برمجيات أباتشي ومشروع سبارك. [ 41 ]
الدعم اللغوي
يدعم Apache Spark بشكل مدمج لغات Scala و Java و SQL و R و Python و Swift مع دعم من جهات خارجية لـ .NET CLR و [ 42 ] Julia و [ 43 ] والمزيد.
تاريخ
بدأ مشروع Spark في البداية بواسطة ماتي زاهاريا في مختبر AMPLab بجامعة كاليفورنيا في بيركلي عام 2009، وتم طرحه كمصدر مفتوح في عام 2010 بموجب ترخيص BSD . [ 44 ]
في عام 2013، تم التبرع بالمشروع لمؤسسة برمجيات أباتشي، وتم تغيير ترخيصه إلى أباتشي 2.0 . وفي فبراير 2014، أصبح سبارك مشروعًا رئيسيًا من مشاريع أباتشي . [ 45 ]
في نوفمبر 2014، حققت شركة داتابريكس، التي أسسها م. زاهاريا مؤسس سبارك، رقماً قياسياً عالمياً جديداً في فرز البيانات على نطاق واسع باستخدام سبارك. [ 46 ] [ 44 ]
كان لدى Spark أكثر من 1000 مساهم في عام 2015، [ 47 ] مما يجعله أحد أكثر المشاريع نشاطًا في مؤسسة Apache Software Foundation [ 48 ] وأحد أكثر مشاريع البيانات الضخمة مفتوحة المصدر نشاطًا .
| إصدار | تاريخ الإصدار الأصلي | أحدث إصدار | تاريخ الافراج عنه |
|---|---|---|---|
| غير مدعوم: 0.5 | 12-06-2012 | 0.5.2 | 2012-11-22 |
| غير مدعوم: 0.6 | 15-10-2012 | 0.6.2 | 2013-02-07 |
| غير مدعوم: 0.7 | 2013-02-27 | 0.7.3 | 2013-07-16 |
| غير مدعوم: 0.8 | 2013-09-25 | 0.8.1 | 19-12-2013 |
| غير مدعوم: 0.9 | 2014-02-02 | 0.9.2 | 2014-07-23 |
| غير مدعوم: 1.0 | 2014-05-26 | 1.0.2 | 2014-08-05 |
| غير مدعوم: 1.1 | 2014-09-11 | 1.1.1 | 2014-11-26 |
| غير مدعوم: 1.2 | 2014-12-18 | 1.2.2 | 2015-04-17 |
| غير مدعوم: 1.3 | 2015-03-13 | 1.3.1 | 2015-04-17 |
| غير مدعوم: 1.4 | 2015-06-11 | 1.4.1 | 2015-07-15 |
| غير مدعوم: 1.5 | 2015-09-09 | 1.5.2 | 2015-11-09 |
| غير مدعوم: 1.6 | 2016-01-04 | 1.6.3 | 2016-11-07 |
| غير مدعوم: 2.0 | 2016-07-26 | 2.0.2 | 2016-11-14 |
| غير مدعوم: 2.1 | 2016-12-28 | 2.1.3 | 2018-06-26 |
| غير مدعوم: 2.2 | 2017-07-11 | 2.2.3 | 2019-01-11 |
| غير مدعوم: 2.3 | 2018-02-28 | 2.3.4 | 2019-09-09 |
| غير مدعوم: 2.4 LTS | 2018-11-02 | 2.4.8 | 2021-05-17 [ 49 ] |
| غير مدعوم: 3.0 | 2020-06-18 | 3.0.3 | 2021-06-01 [ 50 ] |
| غير مدعوم: 3.1 | 2021-03-02 | 3.1.3 | 2022-02-18 [ 51 ] |
| غير مدعوم: 3.2 | 2021-10-13 | 3.2.4 | 2023-04-13 [ 52 ] |
| غير مدعوم: 3.3 | 2022-06-16 | 3.3.3 | 2023-08-21 [ 53 ] |
| غير مدعوم: 3.4 | 2023-04-13 | 3.4.4 | 2024-10-27 [ 54 ] |
| يدعم: 3.5 لتر | 2023-09-09 | 3.5.8 | 2026-01-15 [ 55 ] |
| أحدث إصدار: 4.0 | 2025-05-23 | 4.0.1 | 2025-09-06 [ 56 ] |
| أحدث إصدار: 4.1 | 2025-12-16 | 4.1.2 | 2026-05-21 [ 57 ] |
| الإصدار المستقبلي: 4.2 | 2026-05-01 | 4.2.0-معاينة 5 | 2026-01-11 [ 58 ] |
أسطورة: غير مدعوم مدعوم أحدث إصدار نسخة معاينة الإصدار المستقبلي | |||
إصدار سكالا
يعتمد Spark 3.5.2 على Scala 2.13 (وبالتالي يعمل مع Scala 2.12 و 2.13 بشكل افتراضي)، ولكن يمكن أيضًا جعله يعمل مع Scala 3. [ 59 ]
المطورين
تم تطوير Apache Spark بواسطة مجتمع. ويتولى إدارة المشروع مجموعة تسمى "لجنة إدارة المشروع" (PMC). [ 60 ]
إصدارات الصيانة ونهاية العمر الافتراضي
تُحفظ فروع إصدارات الميزات، عمومًا، مع إصدارات تصحيح الأخطاء لمدة 18 شهرًا. على سبيل المثال، لم يعد الفرع 2.3.x يُعتبر مُدارًا اعتبارًا من سبتمبر 2019، أي بعد 18 شهرًا من إصدار 2.3.0 في فبراير 2018. ولا يُتوقع صدور أي إصدارات أخرى من 2.3.x بعد ذلك التاريخ، حتى لتصحيح الأخطاء.
عادةً ما يتم دعم آخر إصدار فرعي ضمن إصدار رئيسي لفترة أطول كإصدار "LTS". على سبيل المثال، تم إصدار الإصدار 2.4.0 في 2 نوفمبر 2018، واستمر دعمه لمدة 31 شهرًا حتى إصدار الإصدار 2.4.8 في مايو 2021. يُعد الإصدار 2.4.8 هو الإصدار الأخير، ولا يُتوقع صدور أي إصدارات أخرى من سلسلة 2.4.x حتى لإصلاح الأخطاء. [ 61 ]
انظر أيضاً
ملحوظات
مراجع
- ↑ "إصدار Spark 2.0.0" .
MLlib في R: يوفر SparkR الآن واجهات برمجة تطبيقات MLlib [...] بايثون: يوفر PySpark الآن العديد من خوارزميات MLlib الإضافية.
- 1 2 3 4 زاهاريا، ماتاي؛ تشودري، مشرف؛ فرانكلين، مايكل جيه؛ شنكر، سكوت؛ ستويكا، أيون. سبارك: الحوسبة العنقودية باستخدام مجموعات العمل (ملف PDF) . ورشة عمل USENIX حول المواضيع الساخنة في الحوسبة السحابية (HotCloud).
- ↑ "دليل البدء السريع لـ Spark 2.2.0" . apache.org . 11 يوليو 2017. تاريخ الاطلاع: 19 أكتوبر 2017.
نوصي بشدة بالتحول إلى استخدام Dataset، الذي يتميز بأداء أفضل من RDD
. - ↑ "قائمة إيقاف استخدام Spark 2.2.0" . apache.org . 2017-07-11 . تم الاطلاع عليه بتاريخ 2017-10-10 .
- ↑ دامجي، جولز (14 يوليو 2016). "قصة ثلاث واجهات برمجة تطبيقات أباتشي سبارك: RDDs، وDataFrames، وDatasets: متى تُستخدم ولماذا" . databricks.com . تاريخ الاسترجاع: 19 أكتوبر 2017 .
- ↑ تشامبرز، بيل (10 أغسطس 2017). "12" . سبارك: الدليل الشامل . أورايلي ميديا .
يتم تجميع جميع أكواد سبارك التي تقوم بتشغيلها تقريبًا، حيث يتم تجميع DataFrames أو Datasets، إلى RDD.
- ↑ "ما هو أباتشي سبارك؟ دليل تعليمي لسبارك للمبتدئين" . janbasktraining.com . 13 أبريل 2018. تم الاطلاع عليه بتاريخ 13 أبريل 2018 .
- ↑ زاهاريا، ماتاي؛ تشودري، مشرف؛ داس، تاتاغاتا؛ ديف، أنكور؛ ما، جاستن؛ مكولي، مورفي؛ ج.، مايكل؛ شنكر، سكوت؛ ستويكا، أيون (2010). مجموعات البيانات الموزعة المرنة: تجريد متسامح مع الأعطال للحوسبة العنقودية في الذاكرة (ملف PDF) . ندوة USENIX حول تصميم وتنفيذ الأنظمة الشبكية.
- ↑ شين، رينولد؛ روزين، جوش؛ زاهاريا، ماتاي؛ فرانكلين، مايكل؛ شينكر، سكوت؛ ستويكا، أيون (يونيو 2013). شارك: SQL والتحليلات الغنية على نطاق واسع (ملف PDF) . SIGMOD 2013. arXiv : 1211.6176 . Bibcode : 2012arXiv1211.6176X .
- ↑ هاريس، ديريك (28 يونيو 2014). "4 أسباب قد تدفع سبارك إلى تسريع نمو هادوب بشكل كبير" . جيجاوم . مؤرشف من الأصل في 24 أكتوبر 2017. تم الاطلاع عليه في 25 فبراير 2016 .
- ↑ "نظرة عامة على وضع المجموعة - وثائق Spark 2.4.0 - أنواع مدير المجموعة" . apache.org . مؤسسة أباتشي. 2019-07-09. مؤرشف من الأصل في 2025-09-26 . تم الاسترجاع في 2019-07-09 .
- ↑ شكل يوضح موقع Spark بالنسبة لمشاريع البرمجيات مفتوحة المصدر الأخرى بما في ذلك Hadoop
- ↑ مصفوفة دعم النظام البيئي لـ MapR
- ↑ دوان، دويهاي (10 سبتمبر 2014). "رد: كاساندرا + سبارك / باي سبارك" . مستخدمو كاساندرا (قائمة بريدية) . تم الاطلاع عليه بتاريخ 21 نوفمبر 2014 .
- ↑ وانغ، ياندونغ؛ غولدستون، روبن؛ يو، ويكوان؛ وانغ، تينغ (مايو 2014). "توصيف وتحسين MapReduce المقيم في الذاكرة على أنظمة الحوسبة عالية الأداء". المؤتمر الدولي الثامن والعشرون للمعالجة المتوازية والموزعة لعام 2014، معهد مهندسي الكهرباء والإلكترونيات. الصفحات 799-808 . doi : 10.1109/IPDPS.2014.87 . ISBN 978-1-4799-3800-1. S2CID 11157612 .
- 1 2 dotnet/spark ، منصة .NET، 14-09-2020 ، تم الاطلاع عليه في 14-09-2020
- ↑ "GitHub - DFDX/Spark.jl: ربط جوليا لـ Apache Spark" . GitHub . 2019-05-24.
- 1 2 "إصدار سبارك 0.7.0" . أباتشي سبارك . مؤسسة برمجيات أباتشي. 27 فبراير 2013. تم الاطلاع عليه في 28 مايو 2026 .
- 1 2 3 "نظرة عامة على PySpark" . Apache Spark . مؤسسة برمجيات Apache . تم الاطلاع عليه في 28 مايو 2026 .
- ↑ "إصدار سبارك 3.2.0" . أباتشي سبارك . مؤسسة برمجيات أباتشي. 13 أكتوبر 2021. تم الاطلاع عليه في 28 مايو 2026 .
- 1 2 "أباتشي سبارك تُضيف واجهة برمجة تطبيقات بانداز مع الإصدار 3.2" . إنفو كيو . نوفمبر 2021. تم الاطلاع عليه في 28 مايو 2026 .
- ↑ "إصدار سبارك 1.3.0 | أباتشي سبارك" .
- 1 2 3 "إصدار سبارك 4.1.0" . أباتشي سبارك . مؤسسة برمجيات أباتشي . تم الاطلاع عليه بتاريخ 28 مايو 2026 .
- ١ ٢ "إصدار Spark 4.1.0" . أباتشي سبارك . مؤسسة برمجيات أباتشي. ١٦ ديسمبر ٢٠٢٥. تم الاطلاع عليه في ٢٨ مايو ٢٠٢٦ .
- 1 2 3 "SPARK-51727: SPIP: Declarative Pipelines" . ASF JIRA . مؤسسة برمجيات أباتشي . تم الاطلاع عليه بتاريخ 28 مايو 2026 .
- 1 2 3 "دليل برمجة خطوط أنابيب Spark التصريحية" . أباتشي سبارك . مؤسسة برمجيات أباتشي . تم الاطلاع عليه في 28 مايو 2026 .
- ↑ "تطبيق بنية لامدا مع سبارك، وكافكا، وكاساندرا | بلورالسايت" . www.pluralsight.com . تاريخ الاسترجاع: ٢٠ نوفمبر ٢٠١٦ .
- ↑ شابيرا، غوين (29 أغسطس 2014). "بناء بنية لامدا باستخدام سبارك ستريمنج" . cloudera.com . كلاوديرا. مؤرشف من الأصل في 14 يونيو 2016. تم الاسترجاع في 17 يونيو 2016.
إعادة استخدام نفس التجميعات التي كتبناها لتطبيق الدفعات الخاص بنا على تدفق بيانات في الوقت الفعلي
- ↑ شينتابالي، سانكيت؛ داجيت، ديريك؛ إيفانز، بوبي؛ فاريفار، رضا؛ غريفز، توماس؛ هولدربو، مارك؛ ليو، تشو؛ نوسباوم، كايل؛ باتيل، كيشوركومار؛ بينغ، بويانغ جيري؛ بولوسكي، بول (مايو 2016). "تقييم أداء محركات الحوسبة المتدفقة: ستورم، فلينك، وسبارك ستريمنج". ورش عمل ندوة IEEE الدولية للمعالجة المتوازية والموزعة لعام 2016 (IPDPSW) . IEEE. الصفحات 1789-1792 . doi : 10.1109/IPDPSW.2016.138 . ISBN 978-1-5090-3682-0. S2CID 2180634 .
- ↑ خارباندا، أروش (17 مارس 2015). "إدخال البيانات إلى سبارك ستريمنج" . sigmoid.com . سيجمويد (شركة منتجات تقنية معلومات، ساني فيل، كاليفورنيا). مؤرشف من الأصل في 15 أغسطس 2016. تم الاطلاع عليه في 7 يوليو 2016 .
- ↑ زاهاريا، ماتاي (28 يوليو 2016). "البث المهيكل في أباتشي سبارك: واجهة برمجة تطبيقات جديدة عالية المستوى للبث" . databricks.com . تم الاطلاع عليه بتاريخ 19 أكتوبر 2017 .
- 1 2 "SPARK-52330: SPIP: وضع الوقت الحقيقي في Apache Spark Structured Streaming" . ASF JIRA . مؤسسة برمجيات أباتشي . تم الاطلاع عليه في 28 مايو 2026 .
- ↑ "مستودعات البيانات المحلية مقابل مستودعات البيانات السحابية: المزايا والعيوب" . SearchDataManagement . تم الاطلاع عليه بتاريخ 16-10-2022 .
- 1 2 3 4 "نظرة عامة على Spark Connect" . Apache Spark . مؤسسة برمجيات Apache . تم الاطلاع عليه في 28 مايو 2026 .
- ↑ "بناء محرك Spark Connect على Snowflake: دراسة هندسية معمقة" . مدونة Snowflake الهندسية . 6 أكتوبر 2025. تم الاطلاع عليه في 28 مايو 2026 .
- ↑ سباركس، إيفان؛ تالوالكار، أميت (2013-08-06). "لقاء مستخدمي سبارك: MLbase، التعلم الآلي الموزع باستخدام سبارك" . slideshare.net . لقاء مستخدمي سبارك، سان فرانسيسكو، كاليفورنيا . تم الاطلاع عليه بتاريخ 10 فبراير 2014 .
- ↑ "MLlib | Apache Spark" . spark.apache.org . تم الاطلاع عليه بتاريخ 18-01-2016 .
- ↑ مالاك، مايكل (14 يونيو 2016). "إيجاد تماثلات الرسوم البيانية في GraphX وGraphFrames: معالجة الرسوم البيانية مقابل قاعدة بيانات الرسوم البيانية" . slideshare.net . sparksummit.org . تم الاطلاع عليه في 11 يوليو 2016 .
- ↑ مالاك، مايكل (1 يوليو 2016). Spark GraphX in Action . مانينغ. ص 89. ISBN 9781617292521تُعدّ دالة
Pregel وشقيقتها الصغيرة aggregateMessages() من الركائز الأساسية لمعالجة الرسوم البيانية في GraphX. ... يجب تنفيذ الخوارزميات التي تتطلب مرونة أكبر في شرط الإنهاء باستخدام aggregateMessages().
- ↑ مالاك، مايكل (14 يونيو 2016). "إيجاد تماثلات الرسوم البيانية في GraphX وGraphFrames: معالجة الرسوم البيانية مقابل قاعدة بيانات الرسوم البيانية" . slideshare.net . sparksummit.org . تم الاطلاع عليه في 11 يوليو 2016 .
- ↑ غونزاليس، جوزيف؛ شين، رينولد؛ ديف، أنكور؛ كرانكشو، دانيال؛ فرانكلين، مايكل؛ ستويكا، أيون (أكتوبر 2014). GraphX: معالجة الرسوم البيانية في إطار عمل تدفق البيانات الموزع (ملف PDF) . OSDI 2014.
- ↑ ".NET لـ Apache Spark | تحليلات البيانات الضخمة" . 15 أكتوبر 2019.
- ↑ "Spark.jl" . GitHub . 14 أكتوبر 2021.
- 1 2 كلارك، ليندسي. "أباتشي سبارك يُسرّع عملية اتخاذ القرارات في البيانات الضخمة" . ComputerWeekly.com . تاريخ الاسترجاع: 16 مايو 2018 .
- ↑ «مؤسسة برمجيات أباتشي تعلن عن أباتشي سبارك كمشروع رئيسي» . apache.org . مؤسسة برمجيات أباتشي. 27 فبراير 2014. تاريخ الاطلاع: 4 مارس 2014 .
- ↑ شركة سبارك تسجل رسمياً رقماً قياسياً جديداً في فرز البيانات على نطاق واسع
- ↑ نشاط تطوير Open HUB Spark
- ↑ «مؤسسة برمجيات أباتشي تعلن عن أباتشي سبارك كمشروع رئيسي» . apache.org . مؤسسة برمجيات أباتشي. 27 فبراير 2014. تاريخ الاطلاع: 4 مارس 2014 .
- ↑ "تم إصدار Spark 2.4.8" . spark.apache.org . مؤرشف من الأصل بتاريخ 25-08-2021.
- ↑ "تم إصدار Spark 3.0.3" . spark.apache.org .
- ↑ "تم إصدار Spark 3.1.3" . spark.apache.org . مؤرشف من الأصل بتاريخ 18-06-2022.
- ↑ "تم إصدار Spark 3.2.4" . spark.apache.org .
- ↑ "تم إصدار Spark 3.3.3" . spark.apache.org .
- ↑ "تم إصدار Spark 3.4.4" . spark.apache.org .
- ↑ "تم إصدار Spark 3.5.8" . spark.apache.org .
- ↑ "تم إصدار Spark 4.0.1" . spark.apache.org .
- ↑ "تم إصدار Spark 4.1.1" . spark.apache.org .
- ↑ "إصدار تجريبي من Spark 4.2.0" . spark.apache.org .
- ↑ "استخدام Scala 3 مع Spark" . 47 Degrees . تم الاطلاع عليه بتاريخ 29 يوليو 2022 .
- ↑ "معلومات لجنة أباتشي" .
- ↑ "سياسة الإصدار" . spark.apache.org .
روابط خارجية
- مشاريع مؤسسة برمجيات أباتشي
- منتجات البيانات الضخمة
- الحوسبة العنقودية
- برامج استخراج البيانات والتعلم الآلي
- برنامج مجاني مكتوب بلغة سكالا
- أباتشي هادوب
- جافا (منصة برمجية)
- برنامج يستخدم ترخيص أباتشي
- جامعة كاليفورنيا، بيركلي
- مشاريع مفتوحة المصدر
