5 تقنيات تحسين شرارة يجب على كل عالم بيانات معرفتها
نشرت: 2020-06-12سواء كانت شركة صغيرة أو شركة كبيرة ، فإن البيانات موجودة في كل مكان. يتم جمع هذه البيانات من مجموعة متنوعة من المصادر ، مثل سجلات العملاء وفواتير المكتب وأوراق التكلفة وقواعد بيانات الموظفين. تقوم الشركات بجمع وتحليل أجزاء البيانات هذه لتحديد الأنماط والاتجاهات. تساعدهم هذه الأنماط في اتخاذ قرارات مهمة لتعزيز الأعمال.
لكن تحليل البيانات هذا وطحن الأرقام غير ممكنين فقط من خلال أوراق Excel. هذا هو المكان الذي تأتي فيه تقنيات برمجيات معالجة البيانات. يعد Apache Spark أحد أسرع أطر معالجة البيانات وأكثرها استخدامًا. تُستخدم تقنيات Spark الأمثل لضبط أدائها لتحقيق أقصى استفادة منه.
سوف نتعلم عن التقنيات قليلا. دعونا نلف رؤوسنا حول أساسيات إطار عمل هذا البرنامج.
جدول المحتويات
ما هو اباتشي سبارك؟
Apache Spark هو إطار عمل للحوسبة العنقودية مفتوح المصدر مشهور عالميًا يستخدم لمعالجة مجموعات البيانات الضخمة في الشركات. تعد معالجة مجموعات البيانات الضخمة هذه وتوزيعها بين أنظمة متعددة أمرًا سهلاً باستخدام Apache Spark. إنه يوفر واجهات برمجة تطبيقات بسيطة تجعل حياة المبرمجين والمطورين سهلة.
يوفر Spark روابط أصلية للغات البرمجة ، مثل Python و R و Scala و Java. وهو يدعم التعلم الآلي ومعالجة الرسوم البيانية وقواعد بيانات SQL . نظرًا لهذه الفوائد المذهلة ، يتم استخدام Spark في البنوك وشركات التكنولوجيا والمؤسسات المالية وإدارات الاتصالات والوكالات الحكومية. لمعرفة المزيد حول اباتشي سبارك ، تحقق من دورات علوم البيانات لدينا من جامعات معترف بها.
عمارة اباتشي سبارك
تتكون بنية وقت التشغيل لـ Apache Spark من المكونات التالية:
سائق شرارة أو إتقان العملية
هذا يحول البرامج إلى مهام ثم يقوم بجدولتها للمنفذين (عمليات الرقيق). يقوم برنامج جدولة المهام بتوزيع هذه المهام على المنفذين.
مدير المجموعة
مدير مجموعة Spark مسؤول عن إطلاق المنفذين والسائقين. يقوم بجدولة الموارد وتخصيصها عبر العديد من الأجهزة المضيفة لمجموعة.
المنفذون
المنفذون ، الذين يطلق عليهم أيضًا عمليات الرقيق ، هم كيانات يتم فيها تنفيذ مهام الوظيفة. بعد بدء تشغيلهم ، يتم تشغيلهم حتى انتهاء دورة حياة تطبيق Spark. لا يتوقف تنفيذ وظيفة Spark إذا فشل المنفذ.
مجموعات البيانات الموزعة المرنة (RDD)
هذه مجموعة من مجموعات البيانات غير القابلة للتغيير ويتم توزيعها على عقد مجموعة Spark. والجدير بالذكر أن الكتلة عبارة عن مجموعة من الأنظمة الموزعة حيث يمكن تثبيت Spark. تنقسم RDDs إلى أقسام متعددة. ويطلق عليهم اسم المرونة حيث يمكنهم إصلاح مشكلات البيانات في حالة فشل البيانات.
أنواع RDD التي يدعمها Spark هي:
- مجموعات بيانات Hadoop التي تم إنشاؤها من ملفات على نظام الملفات الموزعة Hadoop
- مجموعات موازية يمكن أن تستند إلى مجموعات سكالا
DAG (الرسم البياني غير الدوري الموجه)
ينشئ Spark رسمًا بيانيًا بمجرد إدخال رمز في وحدة التحكم Spark. إذا تم تشغيل بعض الإجراءات (تعليمات لتنفيذ عملية) ، فسيتم إرسال هذا الرسم البياني إلى DAGScheduler .
يمكن اعتبار هذا الرسم البياني كسلسلة من إجراءات البيانات. يتكون DAG من الرؤوس والحواف. تمثل الرؤوس RDD وتمثل الحواف حسابات يتم إجراؤها على هذا RDD المحدد. يطلق عليه الرسم البياني الموجه حيث لا توجد حلقات أو دورات داخل الرسم البياني.
تقنيات شرارة التحسين
تُستخدم تقنيات تحسين Spark لتعديل إعدادات وخصائص Spark لضمان استخدام الموارد بشكل صحيح وتنفيذ المهام بسرعة. كل هذا يساعد في النهاية في معالجة البيانات بكفاءة.
يتم سرد تقنيات تحسين Spark الأكثر شيوعًا أدناه:
1. تسلسل البيانات
هنا ، يتم تحويل كائن في الذاكرة إلى تنسيق آخر يمكن تخزينه في ملف أو إرساله عبر شبكة. هذا يحسن أداء التطبيقات الموزعة. طريقتان لتسلسل البيانات هما:

- جافا التسلسل - يتم استخدام إطار عمل ObjectOutputStream لتسلسل الكائنات. يمكن استخدام java.io.Externalizable للتحكم في أداء التسلسل. توفر هذه العملية ثباتًا خفيفًا.
- تسلسل كيرو - يستخدم Spark مكتبة Kryo Serialization (v4) لتسلسل الكائنات التي تكون أسرع من تسلسل Java وهي عملية أكثر إحكاما. لتحسين الأداء ، يجب تسجيل الفصول الدراسية باستخدام طريقة registerKryoClasses.
2. التخزين المؤقت
هذه تقنية فعالة تُستخدم عندما تكون البيانات مطلوبة في كثير من الأحيان. Cache () و persist () هما الطريقتان المستخدمتان في هذه التقنية. تُستخدم هذه الطرق لتخزين حسابات RDD و DataSet و DataFrame. لكن ذاكرة التخزين المؤقت () تخزنها في الذاكرة ، وتستمر () بتخزينها في مستوى التخزين المحدد من قبل المستخدم.
يمكن أن تساعد هذه الطرق في تقليل التكاليف وتوفير الوقت عند استخدام الحسابات المتكررة.
قراءة: Dataframe في Apache PySpark: برنامج تعليمي شامل
3. ضبط بنية البيانات
يمكننا تقليل استهلاك الذاكرة أثناء استخدام Spark ، عن طريق تعديل بعض ميزات Java التي قد تضيف حملًا إضافيًا. هذا ممكن بالطرق التالية:
- استخدم الكائنات المعدودة أو المعرفات الرقمية بدلاً من السلاسل للمفاتيح.
- تجنب استخدام الكثير من الكائنات والهياكل المتداخلة المعقدة.
- اضبط علامة JVM على xx: + UseCompressedOops إذا كان حجم الذاكرة أقل من 32 جيجا بايت.
4. تحسين جمع القمامة
لتحسين مجمعات القمامة ، يجب استخدام G1 و GC لتشغيل تطبيقات Spark. جامع G1 يدير الأكوام المتزايدة. يعد ضبط GC ضروريًا وفقًا للسجلات التي تم إنشاؤها للتحكم في السلوك غير المتوقع للتطبيقات. ولكن قبل ذلك ، تحتاج إلى تعديل منطق البرنامج ورمزه وتحسينهما.
يساعد G1GC على تقليل وقت تنفيذ الوظائف من خلال تحسين أوقات التوقف المؤقت بين العمليات.
5. إدارة الذاكرة
تسمى الذاكرة المستخدمة لتخزين العمليات الحسابية ، مثل الوصلات والخلط العشوائي والفرز والتجميعات ، ذاكرة التنفيذ. تُستخدم ذاكرة التخزين للتخزين المؤقت ومعالجة البيانات المخزنة في مجموعات. تستخدم كلتا الذكريات منطقة موحدة M.
عندما لا تكون ذاكرة التنفيذ قيد الاستخدام ، يمكن لذاكرة التخزين استخدام المساحة. وبالمثل ، عندما تكون ذاكرة التخزين خاملة ، يمكن لذاكرة التنفيذ الاستفادة من المساحة. هذه واحدة من أكثر تقنيات التحسين Spark كفاءة .
اقرأ أيضًا: 6 ميزات لتغيير اللعبة في Apache Spark
خاتمة
من خلال تقنيات تحسين Spark المختلفة ، يمكننا فهم كيف تساعد في تقليل وقت المعالجة ومعالجة البيانات بشكل أسرع. يطبق المطورون والمهنيون هذه التقنيات وفقًا للتطبيقات وكمية البيانات المعنية.
إذا كنت مهتمًا بمعرفة المزيد عن تحسين الشرارة وعلوم البيانات ، فراجع برنامج IIIT-B & upGrad's Executive PG في علوم البيانات والذي تم إنشاؤه للمهنيين العاملين ويقدم أكثر من 10 دراسات حالة ومشاريع ، وورش عمل عملية عملية ، وإرشاد مع الصناعة خبراء ، وجهاً لوجه مع مرشدين في الصناعة ، وأكثر من 400 ساعة من التعلم والمساعدة في العمل مع الشركات الكبرى.
ما هي تقنيات Spark Optimization؟
يُسهل Apache Spark على المؤسسات معالجة البيانات بسرعة وحل مشكلات البيانات المعقدة بسهولة. من الواضح أنه أثناء تطوير أي برنامج ، من المهم جدًا الاهتمام بأدائه. تساعد تقنيات تحسين Spark في حسابات البيانات في الذاكرة. الشيء الوحيد الذي يمكن أن يعيق هذه الحسابات هو الذاكرة أو وحدة المعالجة المركزية أو أي مورد آخر.
يتم استخدام كل تقنية شرارة لتحقيق غرض مختلف وتؤدي بعض الإجراءات المحددة. بعض تقنيات تحسين الشرارة المستخدمة على نطاق واسع هي:
1. التسلسل
2. اختيار API
3. متغير مقدما
4. مخبأ واستمرار
5. عملية ByKey
6. اختيار تنسيق الملف
7. ضبط جمع القمامة
8. مستوى التوازي
متى يجب ألا تفكر في استخدام Spark؟
يحتوي Apache Spark على الكثير من حالات الاستخدام ، ولكن هناك بعض الاحتياجات المتخصصة حيث تحتاج إلى محركات بيانات كبيرة أخرى لتحقيق الغرض. في مثل هذه الحالات ، يوصى باستخدام تقنية أخرى بدلاً من استخدام Spark. فيما يلي حالات الاستخدام التي يجب ألا تفكر فيها في استخدام Spark:
1. قدرة حوسبة منخفضة - تتم المعالجة الافتراضية على Apache Spark في ذاكرة المجموعة. إذا كانت أجهزتك أو مجموعتك الافتراضية ذات سعة حوسبة قليلة ، فيجب عليك البحث عن بدائل أخرى مثل Apache Hadoop.
2. استيعاب البيانات في نموذج اشتراك النشر - في هذه الحالة ، هناك مصادر متعددة بالإضافة إلى وجهات متعددة حيث يتم نقل ملايين البيانات في وقت قصير. هنا ، لا يجب استخدام Spark ، وبدلاً من ذلك ، استخدم Apache Kafka.
هل الباندا أسرع من اباتشي سبارك؟
عند مقارنة السرعة الحسابية لكل من Pandas DataFrame و Spark DataFrame ، ستلاحظ أن أداء Pandas DataFrame أفضل بشكل هامشي لمجموعات البيانات الصغيرة. من ناحية أخرى ، إذا زاد حجم البيانات ، فقد وجد أن Spark DataFrame قادر بما يكفي على التفوق على Pandas DataFrame. وبالتالي ، فإنه سيعتمد كثيرًا على كمية البيانات.