تبدأ رحلتنا في استكشاف موقع مجاني شامل يضم كنوز وهي : دورات مجانية ومنح دراسية ووظائف وتدريب ومقالات مفيدة ودليل كامل لكل مجال خاص بالتكنولوجيا حصريا وبعض من المجالات الاخري لمتابعة كل جديد علي التليجرام والفيسبوك | Telegram | Facebook

500+ Apache Spark Interview Questions with Answers 2026

دورة متاحة لفترة محدودة
free-palestine free-palestine

Responsive image
منذ 5 ساعات

أهلا بك عزيزي المتابع لموقع (journey for learn) نقدم دورات بكوبونات متاحة لاول 1000 تسجيل مجاني فقط وكوبونات اخري لفترة محدودة فاذا كنت تريد ان تحصل علي كل الكورسات علي موقعنا وان تكون اول المسجلين في الكورسات المجانية قم بتسجيل الدخول أوقم بالدخول علي وسائل التواصل الاجتماعي وخصوصا التليجرام نوضح الوصف المختصر والطويل للدورات لكي تعرف الدروس التي سوف تتعلمها بسهولة ويسر :

تغطية تفصيلية لمجال الاختبار تم تصميم بنك أسئلة الممارسة الشامل هذا ليعكس الكفاءات الدقيقة التي تم اختبارها في مقابلات هندسة البيانات على مستوى الإنتاج، والعروض الفنية، وشهادات البيانات الضخمة المتقدمة. يضمن توزيع المواضيع عبر 550 سؤالًا إتقانًا كاملاً لكل طبقة من طبقات نظام Apache Spark البيئي:
  • المفاهيم الأساسية والهندسة المعمارية (20%)
    • الموضوعات التي يتم تناولها: مكونات نظام Spark البيئي (السائق، المنفذون، مدير المجموعة)، سلالات وتقييم مجموعات البيانات الموزعة المرنة (RDDs)، تجريدات DataFrame ومجموعة البيانات، Spark SQL Catalyst Optimizer، والرسم البياني غير الدوري الموجه. إنشاء (DAG).
  • معالجة البيانات والأداء (18%)
    • الموضوعات التي يتم تناولها: التحويلات الضيقة مقابل الواسعة، والإجراءات، وهياكل إدارة الذاكرة، واستراتيجيات التخزين المؤقت النشطة والاستمرارية (مستويات التخزين)، وانضمامات البث مقابل انضمامات التجزئة العشوائية، واستراتيجيات إعادة التقسيم.
  • هندسة البيانات وخطوط الأنابيب (15%)
    • المواضيع مغطى: استيعاب البيانات المجمعة والمتدفقة من النهاية إلى النهاية، وأنماط معالجة البيانات القوية، وتنسيقات تخزين البيانات الموزعة (Parquet، ORC، Delta Lake)، وخطوط أنابيب تحليل البيانات، وخلاصات تصور البيانات المنظمة.
  • Spark SQL & DataFrames (12%)
    • الموضوعات التي تمت تناولها: تنفيذ المخطط وتطويره، وتحويلات DataFrame، ومعالجة الأنواع المعقدة، والوظائف المخصصة المحددة من قبل المستخدم (UDFs)، إثارة استعلامات SQL البرمجية، ووظائف النوافذ، ومعالجة البيانات التحليلية الثقيلة.
  • التعلم الآلي ومعالجة الرسوم البيانية (10%)
    • الموضوعات التي يتم تناولها: مسارات التعلم الآلي الموزعة عبر MLlib، ومحولات الميزات والمقدرات، وخوارزميات التعلم الآلي القابلة للتطوير، وواجهات برمجة تطبيقات معالجة الرسوم البيانية GraphX، وطوبولوجيا الرسم البياني الهيكلي، وأنظمة التوصية المؤسسية.
  • إدارة المجموعات النشر (8%)
    • المواضيع التي تمت تناولها: النشر التشغيلي عبر مديري المجموعات المتنوعين، واستراتيجيات تخصيص الموارد في YARN، وعزل موارد Apache Mesos، والتنسيق المجهز بالحاويات على Kubernetes، وعمليات النشر السحابية الأصلية (AWS EMR، وAzure Databricks، وGoogle Cloud Dataproc).
  • التحسين واستكشاف الأخطاء وإصلاحها (7%)
    • المواضيع التي تمت تناولها: تحديد البيانات وحلها. مشكلات الانحراف، وتصحيح أخطاء فشل OutOfMemoryError (OOM)، وتحسين أداء التطبيق، والتعامل مع المهام المتقطعة، وتحليل Spark UI، ومراقبة القياس عن بعد، والتسجيل المنظم.
  • التطبيقات الواقعية وحالات الاستخدام (10%)
    • الموضوعات التي يتم تناولها: إنتاج تطبيقات البيانات الضخمة، وسير عمل علوم البيانات المعقدة، وخطوط أنابيب معالجة الدفعات في العالم الحقيقي، ودراسات الحالة من المؤسسات عالية الإنتاجية البيئات واتجاهات الصناعة الحديثة.
وصف الدورة يتطلب التنقل في مقابلة فنية متقدمة لدور البيانات الضخمة فهمًا عميقًا للبنية التحتية للأنظمة الموزعة. لم يعد يكفي معرفة الصيغة الأساسية لتصفية DataFrame. يتوقع منك القائمون على المقابلات شرح خطط التنفيذ، وتحديد اختناقات التنفيذ داخل DAG، وإدارة قيود الذاكرة، وتصحيح مشكلات انحراف البيانات التي تؤدي إلى تعطل مجموعات الإنتاج. لقد قمت بتطوير بنك اختبار الممارسة الشامل هذا لتوفير الممارسة الصارمة القائمة على السيناريوهات اللازمة للتعامل مع أسئلة التصميم المعقدة واستكشاف الأخطاء وإصلاحها بثقة. مع 550 سؤال تدريبي فريد من نوعه عالي الجودة، تحاكي هذه الدورة العمق الفني الدقيق وسيناريوهات اتخاذ القرار الهيكلي التي تمت مواجهتها أثناء جولات المقابلات في المؤسسات ذات المستوى الأعلى التي تعتمد على البيانات. سواء كنت تجري مقابلة لشغل منصب مهندس بيانات كبير، أو مهندس بيانات كبيرة، أو مهندس تعلم الآلة، أو منصب عالم بيانات، فإن هذه التقييمات تختبر حدسك الهندسي العملي. يحتوي كل سؤال على شرح شامل يكسر الآليات الداخلية الأساسية لـ Apache Spark. سوف تتعلم كيفية تقييم خطط التنفيذ الفعلي، وتحسين السلوكيات العشوائية، وتكوين ملفات تعريف موارد المجموعة بشكل صحيح، وتنفيذ استراتيجيات الذاكرة الدفاعية. من خلال التعامل مع كل اختبار تدريبي باعتباره جولة مقابلة محاكاة، سوف تقوم ببناء المفردات التقنية والمنهج المنهجي لحل المشكلات اللازم لإظهار إتقان واضح أثناء محادثاتك الفنية المباشرة. أسئلة الممارسة النموذجية معاينة السؤال 1: التحسين واستكشاف الأخطاء وإصلاحها فشل مهمة دفعة الإنتاج واسعة النطاق التي تعالج مجموعة بيانات سعة 2 تيرابايت بشكل مستمر أثناء مرحلة تبديل عشوائي واسعة النطاق باستخدام java.lang.OutOfMemoryError: رسالة خطأ في مساحة كومة الذاكرة المؤقتة Java على منفذ معين العقد. يشير القياس عن بعد إلى أن بعض المهام المحددة تستغرق وقتًا أطول بكثير من غيرها قبل تعطل المنفذين. ما الإستراتيجية هي الطريقة الأكثر فعالية لحل هذه المشكلة؟
  • أ) قم بزيادة خاصية التكوين spark.executor.cores للسماح بمزيد من المهام المتزامنة لكل حاوية منفذ.
    • لماذا غير صحيح: زيادة نوى المنفذ دون تعديل الذاكرة تسمح بتشغيل المزيد من سلاسل العمليات المتزامنة داخل نفس مثيل JVM. يؤدي هذا إلى تقسيم ذاكرة المنفذ المتاحة بين المهام الأكثر نشاطًا، مما يزيد في الواقع من ضغط الذاكرة ويؤدي إلى تفاقم حالات فشل OutOfMemoryError.
  • ب) قم بتطبيق تحويل repartition() على عمود مفتاح الربط مباشرة قبل خطوة التحويل الواسعة دون تطبيق ملح.
    • لماذا غير صحيح: يعتمد استدعاء إعادة التقسيم على المفتاح الموجود على تقسيم التجزئة القياسي. إذا كانت البيانات الأساسية منحرفة بشكل كبير، فسيتم إرسال الصفوف التي تحتوي على مفاتيح متطابقة إلى نفس القسم بالضبط، مع الحفاظ على الانحراف سليمًا والفشل في حل تركيز الذاكرة.
  • ج) تنفيذ تقنية التمليح عن طريق إلحاق لاحقة عشوائية عشوائية بعمود مفتاح الربط في DataFrame المنحرف، وتكرار المفاتيح المقابلة في جدول البحث.
    • سبب التصحيح: يحدث هذا الفشل بسبب انحراف البيانات، حيث تحتوي المفاتيح المحددة على حجم غير متناسب من الصفوف، مما يؤدي إلى زيادة التحميل على أقسام التبديل الفردية. يؤدي التمليح إلى تقسيم المفاتيح الثقيلة بشكل موحد عبر أقسام متعددة، وتوزيع حمل المعالجة بالتساوي على جميع المنفذين وإزالة نقطة اتصال الذاكرة.
  • د) تحويل العملية إلى صلة بث نظرًا لأن DataFrame المنحرف يحتاج إلى المعالجة بالكامل في الذاكرة.
    • لماذا غير صحيح: تقوم صلة البث بنسخ مجموعة البيانات بأكملها إلى كل عقدة منفذة واحدة. ستؤدي محاولة بث مجموعة بيانات ضخمة متعددة الجيجابايت إلى إرباك مساحة ذاكرة برنامج التشغيل والمنفذ على الفور، مما يؤدي إلى تعطل فوري.
  • هـ) قم بترحيل بيئة مدير المجموعة من Apache YARN إلى إعداد Kubernetes المُدار لتغيير مهمة منتصف تخصيص ذاكرة الوصول العشوائي (RAM) للحاوية ديناميكيًا.
    • لماذا غير صحيح: يتعامل مديرو المجموعة مع تنسيق الموارد الأولية والجدولة. لا يمكن لـ YARN أو Kubernetes تغيير حجم الذاكرة المخصصة ديناميكيًا لمهمة متوسطة لحاوية تنفيذ JVM نشطة قيد التشغيل لحفظ سلسلة رسائل فاشلة.
  • F) قم بتقليل قيمة خاصية التكوين spark.sql.shuffle.partitions لتقليل العدد الإجمالي لملفات التبديل العشوائي المتوسطة التي تم إنشاؤها.
    • لماذا غير صحيح: يؤدي تقليل عدد الأقسام العشوائية إلى فرض المزيد من البيانات على إجمالي عدد أقسام أقل. يؤدي هذا إلى زيادة متوسط ​​كمية البيانات التي تتم معالجتها لكل مهمة، مما يزيد من استخدام الذاكرة ويسرع من تعطل OOM.
السؤال 2: إثارة SQL وDataFrames أنت تصمم نمط تحسين لخط أنابيب معالجة البيانات اليومية. تنضم المهمة إلى جدول تاريخي ضخم يسمى df_large (حوالي 1.5 تيرابايت من مساحة التخزين) مع جدول مرجعي ثابت للبحث عن الأعمال يسمى df_small (حوالي 12 ميجابايت من مساحة التخزين). تُظهر واجهة مستخدم Spark أن خطة التنفيذ الفعلية تستخدم SortMergeJoin، مما يؤدي إلى زيادة حمل الإدخال/الإخراج للشبكة. كيف يجب عليك تحسين هذا الانضمام؟
  • أ) فرض إجراء عشوائي كامل للمجموعة عن طريق تنفيذ df_large.repartition(2000) مباشرة قبل استدعاء شرط الانضمام.
    • لماذا غير صحيح: يؤدي فرض إعادة تقسيم صريح على مجموعة بيانات سعة 1.5 تيرابايت إلى تقديم تسلسل هائل للشبكة وتكاليف خلط عبر المجموعة، مما يؤدي إلى انخفاض الأداء العام بدلاً من تحسين الربط.
  • ب) قم بتخزين كل من DataFrames المُدخلة في ذاكرة المنفذ عن طريق استدعاء StorageLevel.DISK_ONLY بشكل صريح على كلا المكونين.
    • لماذا غير صحيح: يؤدي التخزين المؤقت على القرص فقط إلى حفظ البيانات على الأقراص المحلية، وهو ما لا يلغي مرحلة التبديل العشوائي للشبكة المكلفة والمتأصلة في SortMergeJoin. كما أنه يضيف عمليات الإدخال/الإخراج غير الضرورية لقراءة القرص وكتابته.
  • ج) لف إطار البيانات المرجعي داخل وظيفة تلميح البث () داخل تعبير الانضمام لفرض الانضمام إلى تجزئة البث.
    • سبب التصحيح: نظرًا لأن df_small أقل بكثير من حد الذاكرة النموذجي، فإن بثه يسمح لـ Spark بإرسال جدول 12 ميجابايت بالكامل إلى كل عقدة منفذ. يؤدي هذا إلى تغيير نمط التنفيذ إلى Broadcast Hash Join، مما يلغي الحاجة إلى تبديل مجموعة البيانات التي يبلغ حجمها 1.5 تيرابايت ويزيل الحمل الزائد للشبكة.
  • د) قم بتحويل إطارات البيانات عالية المستوى إلى تجريدات RDD منخفضة المستوى وتنفيذ تحويل Map() قياسي للتعامل مع منطق مطابقة المفتاح يدويًا.
    • لماذا غير صحيح: يؤدي الإسقاط إلى واجهات RDD الأولية إلى تجاوز Catalyst Optimizer و محرك تنفيذ التنغستن. يمنع هذا Spark من تطبيق إنشاء التعليمات البرمجية وتحسين الاستعلام للمرحلة بأكملها، مما يجعل التنفيذ أبطأ.
  • هـ) قم بزيادة خاصية التكوين العام spark.sql.autoBroadcastJoinThreshold إلى قيمة 2 تيرابايت لأتمتة سلوك المطابقة المستقبلية.
    • لماذا غير صحيح: يؤدي تعيين هذا الحد إلى 2 تيرابايت إلى إخبار Spark بأنه من الآمن بث جداول متعددة الجيجابايت تلقائيًا. سيؤدي هذا إلى قيام Spark بمحاولة بث مجموعات بيانات ضخمة، مما يتسبب في نفاد ذاكرة عقدة برنامج التشغيل.
  • و) قم بتحديث تكوين طبقة التخزين الأساسية لكتابة البيانات الوسيطة كملفات CSV خام غير مضغوطة بدلاً من ملفات Parquet منظمة.
    • لماذا غير صحيح: تفتقر التنسيقات المستندة إلى النص مثل CSV إلى الفهرسة العمودية وضغط المخطط وإمكانيات الضغط المسند. يؤدي استخدامها إلى زيادة مساحة التخزين وإبطاء عمليات القراءة النهائية.
السؤال 3: معالجة البيانات والأداءيقوم خط أنابيب البيانات باستخراج الملفات من بحيرة البيانات السحابية، ويطبق سلسلة من التحويلات الضيقة بما في ذلك filter() وselect()، ثم يحفظ النتائج مرة أخرى إلى التخزين البارد. تحتوي مجموعة البيانات المصدر على 2500 قسم إدخال صغير بسبب سلوكيات استيعاب الملفات الأولية. الإخراج الذي تمت تصفيته صغير، ويريد المطور تقليل عدد الملفات النهائية إلى 20 قسمًا قبل الكتابة إلى وحدة التخزين لتجنب مشكلة الملفات الصغيرة. ما هو الأسلوب الأكثر كفاءة في استخدام الموارد؟
  • أ) استدعاء df.repartition(20) لدمج الأقسام، لأنه يضمن توزيعًا موحدًا دون تشغيل مرحلة خلط عشوائي للشبكة.
    • لماذا غير صحيح: يؤدي تحويل إعادة التقسيم دائمًا إلى تشغيل عشوائي كامل للشبكة عبر المجموعة. يقدم هذا عقوبات كبيرة على الإدخال/الإخراج للشبكة والقرص غير ضرورية لتقليل عدد الأقسام ببساطة.
  • ب) قم باستدعاء df.coalesce(20) على DataFrame قبل تنفيذ إجراء الكتابة النهائي لتجنب التبديل العشوائي الكامل للشبكة.
    • سبب التصحيح: يتجنب تحويل الدمج التبديل العشوائي الكامل للشبكة عند تقليل عدد الأقسام. إنه يعزز وضع البيانات المحلية من خلال الجمع بين الأقسام المتجاورة الموجودة على نفس العقد المنفذة، مما يجعله عالي الكفاءة لتقليل عدد ملفات الإخراج بعد العمليات الضيقة.
  • ج) قم بتحويل DataFrame النشط إلى بنية RDD وتنفيذ وظيفة rdd.pipe() لدمج الأقسام باستخدام برنامج نصي لأداة bash الأصلية.
    • لماذا غير صحيح: توصيل الأقسام الموزعة بعمليات Shell الخارجية يكسر حدود JVM. يؤدي هذا إلى فرض عقوبات هائلة على تسلسل البيانات وإلغاء التسلسل ويمنع التحسين الموزع.
  • د) قم بتعيين معلمة التكوين spark.sql.shuffle.partitions على قيمة 20 مباشرة قبل استدعاء عملية الكتابة.
    • لماذا غير صحيح: تتحكم خاصية spark.sql.shuffle.partitions فقط في عدد الأقسام لمراحل تبديل التحويل الواسعة (مثل groupBy أو join). نظرًا لأن خط الأنابيب هذا يستخدم تحويلات ضيقة فقط، فإن تغيير هذا الإعداد ليس له أي تأثير على عدد ملفات الإخراج.
  • هـ) اكتب DataFrame غير المنظم إلى القرص، وأعد تشغيل مثيل SparkSession النشط، ثم قم بتحميل الملفات مرة أخرى باستخدام بنية مخطط بيانات مخصصة.
    • لماذا غير صحيح: تقدم هذه الإستراتيجية حملات إدخال/إخراج ضخمة وغير ضرورية للقراءة والكتابة من خلال استمرار البيانات الفوضوية على القرص، وتكسر سلسلة التنفيذ دون تغيير القسم الأساسي التخطيط.
  • F) قم بتطبيق عملية groupBy() الصريحة على عمود وهمي ثابت لإجبار إطار العمل على دمج الصفوف في 20 مجموعة هيكلية.
    • لماذا غير صحيح: يؤدي تجميع البيانات حول قيمة وهمية إلى فرض مرحلة خلط مكلفة وغير ضرورية عبر المجموعة. كما أنه يغير المخطط الهيكلي لمجموعة البيانات، مما يتطلب معالجة إضافية للتنظيف.
  • مرحبًا بك في اختبارات أسئلة المقابلة لمساعدتك في الاستعداد لأسئلة المقابلة الخاصة بـ Apache Spark.
  • يمكنك إعادة إجراء الاختبارات عدة مرات كما تريد
  • هذا بنك أسئلة أصلي ضخم
  • يمكنك الحصول على الدعم من المدرسين إذا كانت لديك أسئلة
  • يحتوي كل سؤال على تفاصيل الشرح
  • متوافق مع الجوال مع تطبيق Udemy
أتمنى أن تكون مقتنعًا الآن! وهناك الكثير من الأسئلة داخل الدورة.

ما هي المتطلبات الأساسية لدخول الدورة والتسجيل فيها على موقعنا؟ رحلة التعلم:

(احصل على الدورة للدخول إلى الموقع والتسجيل)

يجب أن يكون لديك بريد إلكتروني (حساب بريد) تتذكره لنفسك وأيضًا يجب أن تتذكر كلمة مرور البريد الإلكتروني الذي ستسجل به ، وإذا لم يكن لديك حساب بريد إلكتروني ، فمن الأفضل إنشاء حساب (Gmail)

اغلق مانع الاعلانات لتحصل على الدورة



0 تعليقات