شرحت بطاريات الشرارة: اباتشي سبارك



تشرح مدونة Apache Spark هذه بطاريات Spark بالتفصيل. تعلم استخدام مجمع Spark مع الأمثلة. تشبه مراكم الشرارة عدادات Hadoop Mapreduce.

بمساهمة بريثفيراج بوس

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





ما هو جيت في جافا

ما هي المراكم؟

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

لفهم سبب حاجتنا للمراكم ، دعنا نرى مثالًا صغيرًا.



إليك سجل وهمي لمعاملات سلسلة متاجر حول منطقة كولكاتا المركزية.

logs-Spark-accumulators

هناك 4 مجالات ،

حقل 1 -> المدينة



حقل 2 -> المنطقة

الحقل 3 -> فئة السلعة المباعة

الحقل 4 -> قيمة السلعة المباعة

ومع ذلك ، يمكن أن تتلف السجلات. على سبيل المثال ، السطر الثاني عبارة عن سطر فارغ ، بينما يُبلغ السطر الرابع عن بعض مشكلات الشبكة ، وأخيرًا يعرض السطر الأخير قيمة مبيعات بقيمة صفر (وهذا لا يمكن أن يحدث!).

يمكننا استخدام المجمعات لتحليل سجل المعاملات لمعرفة عدد السجلات الفارغة (الأسطر الفارغة) ، وعدد مرات فشل الشبكة ، وأي منتج لا يحتوي على فئة أو حتى عدد المرات التي تم فيها تسجيل صفر مبيعات. يمكن العثور على نموذج السجل الكامل هنا .
المراكم قابلة للتطبيق على أي عملية ،
1. تبادلي -> و (س ، ص) = و (ص ، س) و و
2. النقابي -> f (f (x، y)، z) = f (f (x، z)، y) = f (f (y، z)، x)
فمثلا، مجموع و ماكس وظائف تفي بالشروط المذكورة أعلاه بينما معدل لا.

لماذا نستخدم Spark Accumulators؟

الآن لماذا نحتاج إلى مجمعات ولماذا لا نستخدم المتغيرات فقط كما هو موضح في الكود أدناه.

البرنامج التعليمي ssis خطوة بخطوة

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

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

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

سيلاحظ الأشخاص المطلعون على Hadoop Map-Reduce أن بطاريات Spark تشبه عدادات Map-Reduce من Hadoop.

تحفظات

عند استخدام المراكم ، هناك بعض التحذيرات التي يجب علينا كمبرمجين أن نكون على دراية بها ،

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

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

لديك سؤال لنا؟ أذكرها في قسم التعليقات وسنعاود الاتصال بك.

المنشورات ذات الصلة:

أباتشي سبارك تتحد