1. ابدأ مجموعة Spark ، والتي تتمثل في تنفيذ SBIN/Start-All.sh ، بدء العقد الرئيسية والعامل المتعدد. يستخدم الماجستير بشكل أساسي كإدارة ومراقبة الكتلة ، وعقدة العمال مسؤولة بشكل أساسي عن تشغيل التطبيقات المختلفة. تحتاج العقدة الرئيسية إلى السماح للعقدة العامل بالإبلاغ عن حالتها الخاصة ، مثل وحدة المعالجة المركزية وكم حجم الذاكرة. تم الانتهاء من هذه العملية من خلال آلية نبضات القلب
2. بعد أن يتلقى السيد معلومات تقرير العامل ، سيعطي معلومات العامل.
3. يقدم برنامج التشغيل مهام لإشراق Cluster [يتم التواصل بين السائق والسيد من خلال Akkaactor ، أي أن Master هو نموذج ممثل في نموذج الاتصال غير المتزامن Akkaactor ، والسائق هو نفسه. يرسل برنامج التشغيل بشكل غير متزامن معلومات التسجيل (التسجيل) بشكل غير متزامن إلى Master]
4. تقدر العقدة الرئيسية التطبيق ، و 7 غرام من الذاكرة تكمل المهمة ، وتخصص المهام ، وتخصص كل عقدة عامل 3.5 جم من الذاكرة لتنفيذ المهام. في الماجستير ، تتم مراقبة المهام على كل عامل وجدولة ككل.
5. تتلقى عقدة العامل المهمة وتبدأ التنفيذ. تبدأ عملية المنفذ المقابلة على عقدة العمال للتنفيذ. كل منفذي لديه مفهوم تجمع مؤشرات الترابط ، والذي يحتوي على مؤشرات ترابط مهمة متعددة.
6. سوف يقوم المنفذ بإخراج المهمة من تجمع مؤشرات الترابط لحساب البيانات في عمليات RDDDPatition وعمليات التحويل وعمليات الإجراء.
7. تقارير عقدة العامل عن حالة الحساب إلى عقدة السائق
إنشاء RDDs مع مجموعة التوازي المحلي
الفئة العامة javalocals javalocals {public static void main (string [] args) {SparkConf conf = new SparkConf (). <integer> listrdd = sc.paralledize (list) ؛ // sum integer sum = listrdd.reduce (new function2 <integer ، integer ، integer ، integer> () تتطلب البرمجة في Java تعيين المترجم إلى 1.8Listrdd.reduce ((V1 ، V2) => V1+V2)عمليات التحول والعمليات الإضافية
RDD: مجموعة البيانات الموزعة المرنة ، هي مجموعة تدعم مصادر متعددة ، ولديها آلية تتحمل الأخطاء ، ويمكن تخزينها مؤقتًا ، ويدعم العمليات المتوازية. يمثل RDD مجموعة بيانات في قسم.
RDD لديه اثنين من مشغلي التشغيل:
التحول: التحول هو حساب التأخير. عندما يتم تحويل RDD إلى RDD آخر ، فإنه لا يتم تحويله على الفور. يتذكر العمليات المنطقية لمجموعة البيانات.
الإجراء: يؤدي إلى تشغيل وظائف الشرارة ، ويؤدي حقًا إلى حساب مشغل التحويل.
دور مشغل الشرارة
يصف هذا الرقم Spark Conncurts RDD من خلال العوامل أثناء التحويل. المشغلين هي وظائف محددة في RDD ، والتي يمكنها تحويل وتشغيل البيانات في RDD.
الإدخال: أثناء تشغيل برنامج Spark ، يتم إدخال البيانات إلى Spark من مساحة البيانات الخارجية (مثل التخزين الموزع: TextFile to Read HDFs ، وما إلى ذلك ، وتدخل طريقة الموازية في جمع Scala أو البيانات) وتدخل البيانات إلى مساحة بيانات وقت تشغيل الشرارة ، وتحولها إلى كتل بيانات في الشرارة ، ويتم إدارتها من خلال blockmanager.
Run: بعد إدخال إدخال بيانات Spark إلى Form RDD ، يمكن تمريره من خلال مشغل تحويل ، مثل المرشح ، وما إلى ذلك قم بتشغيل البيانات وتحويل RDD إلى RDD جديد. من خلال مشغل الإجراء ، يقدم Spark الوظيفة. إذا كانت البيانات تحتاج إلى تعدد الإرسال ، فيمكن تخزين البيانات مؤقتًا للذاكرة من خلال مشغل ذاكرة التخزين المؤقت.
الإخراج: سيتم إخراج البيانات بعد تشغيل البرنامج لإشعال مساحة وقت التشغيل وتخزينها في التخزين الموزعة (مثل إخراج SeveAstextFile إلى HDFS) أو بيانات أو مجموعة Scala (جمع الإخراج إلى مجموعة Scala ، عدد بيانات Scala int type)
نظرة عامة على التحول والإجراءات
تحويل
MAP (FUNC): إرجاع مجموعة بيانات موزعة جديدة ، تتألف من كل عنصر أصلي بعد تحويلها بواسطة وظيفة FUNC
مرشح (FUNC): إرجاع مجموعة بيانات جديدة ، تم تمريرها من خلال وظيفة FUNC
Flatmap (FUNC): على غرار الخريطة ، ولكن سيتم تعيين كل عنصر إدخال إلى 0 لعناصر الإخراج المتعددة (وبالتالي فإن قيمة إرجاع وظيفة FUNC هي SEQ ، وليس عنصرًا واحدًا)
عينة (withReplacement ، FRAC ، البذور): وفقًا للبذور العشوائي المعطى ، يتم أخذ عينات من البيانات التي تحتوي على عدد من FRAC بشكل عشوائي.
Union (OtherDataset): إرجاع مجموعة بيانات جديدة ، تتألف من مجموعة البيانات والمعلمات الأصلية
roupbykey ([numtasks]): تم استدعاء مجموعة بيانات تتكون من أزواج (k ، v) ، وإعادة مجموعة بيانات من أزواج (k ، seq [v]). ملاحظة: بشكل افتراضي ، يتم استخدام 8 مهام متوازية للتجميع. يمكنك تمرير معلمات اختيارية NumTask وتعيين أرقام مختلفة من المهام وفقًا لمقدار البيانات.
LEMBERBYKEY (FUNC ، [NUMTASKS]): المستخدمة على مجموعة بيانات الزوج (K ، V) ، إرجاع مجموعة بيانات الزوج (K ، V) ، يتم تجميع نفس القيمة للمفتاح معًا باستخدام وظيفة تقليل المحددة. على غرار GroupByKey ، يمكن تكوين عدد المهام باستخدام المعلمة الاختيارية الثانية.
انضم إلى (otherdataset ، [numtasks]): تم استدعاء مجموعة بيانات من الأنواع (k ، v) و (k ، w) ، إرجاع زوج (k ، (v ، w)) ، وجميع العناصر في كل مفتاح.
Groupwith (OtherDataset ، [numtasks]): استدعاء مجموعة بيانات من الأنواع (K ، V) و (K ، W) وإرجاع مجموعة بيانات مع المكونات (K ، Seq [V] ، Seq [W]). هذه العملية في أطر أخرى تسمى cogroup
الديكارتية (أخرى dataSet): منتج ديكارت. ولكن عند استدعاء مجموعات البيانات T و U ، يتم إرجاع مجموعة بيانات من زوج (T ، U) ، وتتفاعل جميع العناصر مع المنتج الديكارتي.
الإجراءات
قلل (FUNC): قم بتجميع جميع العناصر في مجموعة البيانات من خلال وظيفة FUNC. تقبل وظيفة FUNC 2 معلمات وإرجاع القيمة. يجب أن ترتبط هذه الوظيفة لضمان تنفيذها بشكل صحيح وبشكل متزامن
جمع (): في برنامج برنامج التشغيل ، إرجاع جميع عناصر مجموعة البيانات كصفيف. عادةً ما يعيد هذا مجموعة فرعية صغيرة بما يكفي بعد استخدام مرشح أو عمليات أخرى ، ويعيد مباشرة مجموعة RDD بالكامل ، والتي من المحتمل أن تجعل برنامج السائق OOM
COUNT (): إرجاع عدد العناصر في مجموعة البيانات
خذ (ن): إرجاع صفيف يتكون من العناصر n الأولى من مجموعة البيانات. لاحظ أن هذه العملية لا يتم تنفيذها حاليًا بالتوازي مع عقد متعددة ، ولكن هي الجهاز الذي يوجد فيه برنامج برنامج التشغيل ، ويتم حساب جميع العناصر بواسطة جهاز واحد (سيزداد ضغط الذاكرة للبوابة ويجب استخدامه بحذر)
أولاً (): إرجاع العنصر الأول من مجموعة البيانات (على غرار Take (1))
SaveeStextFile (المسار): احفظ عناصر مجموعة البيانات في شكل textfile إلى نظام الملفات المحلي ، HDFS أو أي نظام ملفات آخر مدعوم من Hadoop. ستستدعي Spark طريقة ToString لكل عنصر وتحويلها إلى سطر نص في الملف.
SeveassequenceFile (PATH): احفظ عناصر مجموعة البيانات بتنسيق SequenceFile إلى الدليل المحدد أو النظام المحلي أو HDFs أو أي نظام ملفات آخر مدعوم من Hadoop. يجب أن تتكون عناصر RDD من أزواج القيمة الرئيسية ، وأنها جميعها تنفذ واجهة Hadoop القابلة للكتابة ، أو يمكن تحويلها إلى قابلة للكتابة ضمنيًا (تتضمن Spark تحويلات الأنواع الأساسية ، مثل int ، double ، string ، etc.)
Foreach (FUNC): قم بتشغيل Func func على كل عنصر من عنصر مجموعة البيانات. عادة ما يستخدم هذا لتحديث متغير تراكم أو للتفاعل مع نظام تخزين خارجي
عملية تنفيذ WordCount
لخص
ما سبق هو كل محتوى هذه المقالة حول مبادئ بنية جدولة الشرارة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!