هذا القسم مأخوذ من الفصل 1 في كتاب Technology Spark Core Technology والتطبيقات المتقدمة في مجتمع Huazang ، بالإضافة إلى امتداد Spark المهم في القسم 1.2. عرض تقرير المجتمع على مجتمع Huazang
1.2 توسع شراري مهم
يعلم الجميع أن إكمال الاستعلام الأيقوني (الاستعلامات الخاصة) ومعالجة الدُفعات ومعالجة الدفق في Hadoop ومعالجة الدفق تتطلب أوامر مختلفة. يتطلب كل فريق تقنية وخبرة مختلفة. من الصعب القيام بذلك. يشارك. تقوم Spark بتنفيذ Fusion Fusion ، حيث تعمل المنصة الأساسية على حل جميع المشكلات ، ويتمتع الفريق بنفس التقنية والخبرة لإكمال جميع المهام.
استنادًا إلى النظام الأساسي Spark الأساسي ، تم توسيع مكتبات Spark الأساسية 5 ، بما في ذلك Spark SQL التي تدعم البيانات الهيكلية ، وتدفق Spark الذي يعالج البيانات الحقيقية ، و Mllib للتعلم الآلي ، و Graphx للتخطيط ، و Sparkr المستخدمة للتحليل الإحصائي. يتم دمج مكتبات البرامج المختلفة بشكل كبير مع Spark Core API ويتم تحسينها باستمرار.
1.2.1 شرارة SQL و DataFrame
Spark SQL هي وحدة نمطية تتعامل مع البيانات المهيكلة Spark والتي توفر تجريدًا لبرمجة DataFrame. يمكن اعتباره محرك استعلام SQL موزع ، والذي يتكون بشكل أساسي من محفز ، ونواة Spark SQL ، ودعم HIVE.
مقارنةً بـ MapReduce API التقليدية ، فإن Spark API لها حجم كبير. بدءًا من Spark SQL 1.3.0 ، تعتمد واجهة برمجة تطبيقات DataFrame على نمط R على المخطط الأصلي.
DataFrame عبارة عن مجموعة موزعة من البيانات ذات أعمدة مسماة. في Spark SQL ، يكون مكافئًا لجدول قاعدة بيانات العلاقة أو بنية بيانات R / Python ، لكن الخلفية أكثر انسيابية.
تدعم DataFrames مصادر البيانات المختلفة ، بما في ذلك: ملفات البيانات المنظمة (Parquet ، JSON) ، التحميل ، قراءة جدول الخلية ، قراءة قاعدة البيانات الخارجية ، تحويل RDD الحالي ، ونتائج SQLContext Running SQL لإنشاء DataFrame ، كما هو موضح في الشكل 1-4. مجال

من ناحية أخرى ، تعمل واجهة برمجة تطبيقات DataFrame الجديدة على تقليل عتبة تعلم المطور بشكل كبير من خلال دعم لغة Scala و Java و Python و R ودعم مهام Spark Shell و Pyspark Shell و Sparkr Shell. نظرًا لأنه يأتي من Schemardd ، فإن DataFrame مناسب بشكل طبيعي لسيناريوهات البيانات الضخمة الموزعة.
سيتم تقديم محتوى وحالات أكثر تحديدًا لـ Spark SQL بالتفصيل في الفصل 6 التالي.
1.2.2 تدفق شرارة
Spark Streaming هو امتداد لواجهة Spark Core API. وهو يدعم النطاق الترددي العالي والمعالجة في الوقت الحقيقي التي تتسامح مع الأخطاء. للمعالجة ، مثل الخريطة ، والتقليل ، والاتصال ، والنافذة ، إلخ. يمكن تخزين نتائج معالجة المعالجة في أنظمة الملفات وقواعد البيانات. يمكنك أيضًا استخدام خوارزمية التعلم الآلي المضمنة وخوارزمية معالجة الرسومات لمعالجة البيانات. يظهر مخطط إدخال / إخراج البيانات في الشكل 1-5.

يوفر تدفق شرارة مستوى عالٍ من الدفق المستمر للبيانات يسمى DSTREAM. يدعم DSTREAM بشكل مباشر إنشاء مصادر بيانات كافكا وفلوم ، أو يتم إنشاؤه بواسطة عمليات عالية المستوى. DSTREAM هو ملف RDD متسلسل.
سيتم تقديم محتوى أكثر تحديدًا وحالات تدفق شرارة بالتفصيل في الفصل 7.
1.2.3 سبارك مليب و مل
Mllib هي مكتبة لتنفيذ خوارزميات Spark العامة للتعلم الآلي ، بما في ذلك الاختبار المرتبط بها ومولدات البيانات. يدعم Mllib حاليًا 4 مهام شائعة للتعلم الآلي: التصنيف المزدوج ، والانحدار ، والتجميع والترشيح التعاوني ، وخفض التدرج في التدرج الأساسي لتحسين الخوارزمية الرئيسية.
يعتمد Mllib على RDD الذي يتكامل بشكل طبيعي مع Spark SQL و Graphx و Spark Streaming. Mllib هو جزء من MLBase. يتم تعريف MLBase بواسطة حد لمحاولة جعل MLBase تبدو أقل. يمكنهم أيضًا بسهولة استخدام أداة MLBase لمعالجة بياناتهم.
يدعم Mllib المتجه المحلي والمصفوفة في جهاز واحد ويتضمن أيضًا مصفوفة موزعة مع المزيد من دعم RDD. في التنفيذ الحالي ، تعتبر المتجهات والمصفوفات المحلية أنماط بيانات بسيطة لخدمات الواجهة العامة. يستخدم Mllib حزمة الجبر الخطي. أصبحت الأنماط المستخدمة في التدريب على الإشراف نقاطًا ملحوظة في مليب.
تتكون بنية Spark Mllib من ثلاثة أجزاء: الإطار الأساسي ، والمكتبة ، وتطبيق الخوارزمية. يشتمل الصندوق الأساسي على مكتبة Spark runtime ومكتبة مصفوفة ومكتبة متجهية للتقنيات الخطية المتعلقة بالجبر. تتضمن مكتبة الخوارزميات خوارزميات محددة للتعلم الآلي تنفذها Spark Mllib ، بالإضافة إلى طرق التقييم المختلفة التي توفرها تلك الخوارزميات ؛ تتضمن خوارزميات التنفيذ الرئيسية تصنيف نموذج الانحدار الخطي الواسع والانحدار والتصفية التعاونية والتكتل واتخاذ القرار. أضاف أحدث إصدار من Spark 1.5.0 خوارزمية مصنف MultilayerCectronClassif؟ شبكة الطاقة العصبية القائمة على Ier (MLPC). ستصبح نسخة التطور أكثر قوة. تشمل التطبيقات توليد بيانات الاختبار وتحميل البيانات الخارجية.
توفر مكتبة ML Spark واجهة برمجة تطبيقات عالية الكفاءة في DataMe لمساعدة المستخدمين على إنشاء وتحسين خطوط التعلم الآلي العملية (Pipeline) ، بما في ذلك خطوط أنابيب API الفريدة لتحويل الميزات. بالمقارنة مع مليب ، ينعكس التغيير بشكل أساسي في:
1) البدء من مكتبة التعلم الآلي إلى بناء نظام سير عمل التعلم الآلي. ملخصات ML – العملية الكاملة للتعلم الآلي في خط الأنابيب. يتكون خط الأنابيب الواحد من عدة مراحل. كل مرحلة عبارة عن محول أو مقدر.
2) تستند جميع مصادر البيانات داخل ML Framework إلى DataFrame. تعتمد جميع الطرز أيضًا على نوع Spark Data. تم تغيير عملية ML API أيضًا من RDD إلى DataFrame.
سيتم تقديم محتوى وحالات أكثر تحديدًا لمكتبات MLLIB و ML بالتفصيل في الفصل 8.
1.2.4 GraphX
من وسائل التواصل الاجتماعي إلى نمذجة اللغة ، يعمل الحجم المتزايد باستمرار لبيانات الرسم البياني وأهميته على تعزيز تطوير عدد لا يحصى من أنظمة رسم الخرائط المتوازية الجديدة (مثل Giraph و GraphLab). من خلال الحد من أنواع الحسابات التي يمكن التعبير عنها وتقديمها لإدخال تقنيات جديدة لتقسيم المخططات وتوزيعها. يمكن لهذه الأنظمة تنفيذ خوارزميات الرسوم البيانية المعقدة بسرعات عدة أوامر من حيث الحجم أسرع من البيانات التقليدية ، كما هو موضح في الشكل 1-7.

Graphx هي واجهة برمجة تطبيقات Spark جديدة تستخدم في الرسوم البيانية x وبطاقات متوازية. من المستوى الأعلى ، تقوم Graphx بتوسيع Spark RDD من خلال تقديم الرسوم البيانية لسمات التوزيع المرنة. هذا المخطط هو مخطط زائف ، ولكل جانب وعقدة في الشكل السمات المقابلة.
لدعم حسابات الرسم البياني ، توفر Graphx سلسلة من العمليات الأساسية (مثل الرسم البياني الفرعي والصلات و MapredRiplets) والخيارات المحسنة بناءً على واجهة برمجة التطبيقات Pregel. بالإضافة إلى ذلك ، تحتوي Graphx أيضًا على امتداد خوارزمية الرسم البياني وإعدادات المُنشئ لتبسيط مهمة تحليل الرسم البياني.
سيتم تقديم محتوى وحالات Graphx أكثر تحديدًا بالتفصيل في الفصل 9.
1.2.5 SparkR
Sparkr هي حزمة تطوير R صادرة عن Amplab توفر واجهة أمامية خفيفة الوزن لـ Apache Spark. يوفر SparkR واجهة برمجة تطبيقات (API) لمجموعة البيانات الموزعة المرنة (RDD) في Spark والتي يمكنها العمل في مهمة بشكل تفاعلي عبر R Shell على مجموعة. على سبيل المثال ، يمكننا قراءة الملفات أو كتابتها على HDFS ، أو استخدام وظيفة Lapply لاستدعاء طريقة لتحديد تشغيل كل عنصر من عناصر RDD.
يتميز Spark بخصائص التفاعل السريع (السريع) والقابل للتطوير (الإنترنت) ، ويتميز R بمزايا الإحصاء والرسم (الرسومات) والجمع الفعال بين R و Spark لحل فشل قابلية التوسيع على مستوى R في لغة R. تثري المشكلة أيضًا مكتبة LIB التي يمكن لـ Spark استخدامها في التعلم الآلي.
بالإضافة إلى البيانات الوظيفية الشائعة RDD drops و DEMUTBY و GROUPBYKEY و Collection ، يدعم SPARKR أيضًا استخدام LapplyWithPartition لاستغلال أقسام كل RDD. يدعم Sparkr أيضًا ميزات الإغلاق الشائعة: المتغيرات المذكورة في مستخدم معين ترسلها تلقائيًا إلى أجهزة أخرى في المجموعة.
كيف يعمل SparkR مبين في الشكل 1-8. أولاً ، قم بتنزيل حزمة طريقة R وحزمة Rjava ، ثم قم بتهيئة SparkContext من خلال SparkR.

سيتم تقديم محتوى وحالات أكثر تحديدًا لبيانات معالجة SPARKR بالتفصيل في الفصل 10.