15+ คำถามสัมภาษณ์ Apache Spark & ​​คำตอบ 2022

เผยแพร่แล้ว: 2021-01-08

ใครก็ตามที่คุ้นเคยกับ Apache Spark รู้ดีว่าเหตุใดจึงเป็นหนึ่งในเครื่องมือ Big Data ที่เป็นที่ต้องการมากที่สุดในปัจจุบัน ซึ่งช่วยให้สามารถคำนวณได้อย่างรวดเร็ว

ความจริงที่ว่า Spark รองรับการประมวลผล Big Data ที่รวดเร็วทำให้เป็นที่นิยมกับบริษัทต่างๆ ทั่วโลก ตั้งแต่บริษัทยักษ์ใหญ่อย่าง Amazon, Alibaba, eBay และ Yahoo ไปจนถึงบริษัทขนาดเล็กในอุตสาหกรรม Spark ได้รับความสนใจจากแฟนๆ จำนวนมาก ด้วยเหตุนี้ บริษัทต่างๆ จึงมองหาผู้เชี่ยวชาญด้าน Big Data ที่มีทักษะและความเชี่ยวชาญด้านโดเมนใน Spark อย่างต่อเนื่อง

สำหรับทุกคนที่ต้องการรวบรวมงานที่เกี่ยวข้องกับโปรไฟล์ Big Data (Spark) คุณต้องทำการสัมภาษณ์ Spark ให้สำเร็จก่อน นี่คือสิ่งที่จะช่วยให้คุณเข้าใกล้เป้าหมายมากขึ้น – 15 คำถามสัมภาษณ์ Apache Spark ที่ถามบ่อยที่สุด!

  1. Spark คืออะไร?

Spark เป็นเฟรมเวิร์ก Big Data ของการประมวลผลคลัสเตอร์แบบโอเพนซอร์สที่ช่วยให้สามารถประมวลผลแบบเรียลไทม์ได้ เป็นเครื่องมือประมวลผลข้อมูลเอนกประสงค์ที่สามารถจัดการปริมาณงานที่แตกต่างกัน เช่น แบตช์ แบบโต้ตอบ การวนซ้ำ และการสตรีม Spark ดำเนินการคำนวณในหน่วยความจำที่ช่วยเพิ่มความเร็วของการประมวลผลข้อมูล มันสามารถทำงานแบบสแตนด์อโลนหรือบน Hadoop หรือในระบบคลาวด์

  1. RDD คืออะไร?

RDD หรือ Resilient Distributed Dataset เป็นโครงสร้างข้อมูลหลักของ Spark มันเป็นนามธรรมที่จำเป็นใน Spark ที่แสดงถึงการป้อนข้อมูลในรูปแบบวัตถุ RDD เป็นคอลเลกชั่นอ็อบเจ็กต์แบบอ่านอย่างเดียวและไม่เปลี่ยนรูปแบบ ซึ่งแต่ละโหนดถูกแบ่งพาร์ติชันเป็นส่วนเล็กๆ ที่สามารถคำนวณได้บนโหนดต่างๆ ของคลัสเตอร์เพื่อเปิดใช้งานการประมวลผลข้อมูลอิสระ

  1. แยกความแตกต่างระหว่าง Apache Spark และ Hadoop MapReduce

ความแตกต่างที่สำคัญระหว่าง Apache Spark และ Hadoop MapReduce คือ:

  • Spark นั้นง่ายต่อการตั้งโปรแกรมและไม่ต้องการสิ่งที่เป็นนามธรรม MapReduce เขียนด้วยภาษาจาวาและเขียนโปรแกรมได้ยาก มันต้องการนามธรรม
  • Spark มีโหมดโต้ตอบในขณะที่ MapReduce ไม่มี อย่างไรก็ตาม เครื่องมืออย่าง Pig and Hive ช่วยให้ทำงานกับ MapReduce ได้ง่ายขึ้น
  • Spark อนุญาตให้ประมวลผลแบบกลุ่ม การสตรีม และการเรียนรู้ของเครื่องภายในคลัสเตอร์เดียวกัน MapReduce เหมาะที่สุดสำหรับการประมวลผลแบบกลุ่ม
  • Spark สามารถแก้ไขข้อมูลแบบเรียลไทม์ผ่าน Spark Streaming ไม่มีข้อกำหนดตามเวลาจริงใน MapReduce – คุณสามารถประมวลผลชุดข้อมูลที่เก็บไว้ได้เท่านั้น
  • Spark อำนวยความสะดวกในการคำนวณเวลาแฝงต่ำโดยการแคชผลลัพธ์บางส่วนในหน่วยความจำ สิ่งนี้ต้องการพื้นที่หน่วยความจำเพิ่มเติม ตรงกันข้าม MapReduce เป็นดิสก์เชิงที่อนุญาตให้มีการจัดเก็บถาวร
  • เนื่องจาก Spark สามารถดำเนินการประมวลผลในหน่วยความจำ จึงสามารถประมวลผลข้อมูลได้เร็วกว่า MapReduce
  1. เวกเตอร์กระจัดกระจายคืออะไร?

เวกเตอร์แบบกระจายประกอบด้วยอาร์เรย์คู่ขนานสองอาร์เรย์ อาร์เรย์หนึ่งสำหรับดัชนี และอีกชุดสำหรับค่า ใช้สำหรับจัดเก็บรายการที่ไม่ใช่ศูนย์เพื่อประหยัดพื้นที่หน่วยความจำ

  1. การแบ่งพาร์ติชันใน Spark คืออะไร?

การแบ่งพาร์ติชันใช้เพื่อสร้างหน่วยข้อมูลเชิงตรรกะที่มีขนาดเล็กลง เพื่อช่วยเร่งการประมวลผลข้อมูล ใน Spark ทุกอย่างเป็น RDD ที่แบ่งพาร์ติชัน พาร์ติชั่นทำการประมวลผลข้อมูลแบบกระจายขนานกันโดยมีทราฟฟิกเครือข่ายน้อยที่สุดสำหรับการส่งข้อมูลไปยังตัวดำเนินการต่างๆ ในระบบ

  1. กำหนดการเปลี่ยนแปลงและการดำเนินการ

ทั้งการแปลงและการดำเนินการเป็นการดำเนินการภายใน RDD

เมื่อฟังก์ชันการแปลงใช้กับ RDD จะสร้าง RDD อื่นขึ้นมา สองตัวอย่างของการแปลงคือ map() และ filer() – ในขณะที่ map() ใช้ฟังก์ชันที่ถ่ายโอนไปยังแต่ละองค์ประกอบของ RDD และสร้าง RDD อื่น filter() จะสร้าง RDD ใหม่โดยเลือกส่วนประกอบจาก RDD ปัจจุบันที่ถ่ายโอน อาร์กิวเมนต์ของฟังก์ชัน ทริกเกอร์เมื่อเกิดการดำเนินการเท่านั้น

การดำเนินการดึงข้อมูลจาก RDD ไปยังเครื่องท้องถิ่น มันทริกเกอร์การดำเนินการโดยใช้กราฟ lineage เพื่อโหลดข้อมูลลงใน RDD ดั้งเดิม ทำการแปลงระดับกลางทั้งหมด และส่งคืนผลลัพธ์สุดท้ายไปยังโปรแกรม Driver หรือเขียนลงในระบบไฟล์

  1. กราฟ Lineage คืออะไร?

ใน Spark RDDs พึ่งพาซึ่งกันและกัน การแสดงภาพกราฟิกของการพึ่งพาเหล่านี้ระหว่าง RDD เรียกว่ากราฟเชื้อสาย ด้วยข้อมูลจากกราฟ lineage RDD แต่ละ RDD สามารถคำนวณได้ตามต้องการ - หากมีการสูญเสีย RDD ถาวร ข้อมูลที่สูญหายสามารถกู้คืนได้โดยใช้ข้อมูลกราฟ Lineage

  1. จุดประสงค์ของ SparkCore คืออะไร?

SparkCore เป็นเอ็นจิ้นพื้นฐานของ Spark มันดำเนินการโฮสต์ของฟังก์ชันที่สำคัญ เช่น ความทนทานต่อข้อผิดพลาด การจัดการหน่วยความจำ การตรวจสอบงาน การจัดตารางงาน และการโต้ตอบกับระบบจัดเก็บข้อมูล

  1. ตั้งชื่อไลบรารีหลักของ Spark Ecosystem

ห้องสมุดหลักในระบบนิเวศ Spark ได้แก่:

  • Spark Streaming – ใช้เพื่อเปิดใช้งานการสตรีมข้อมูลแบบเรียลไทม์
  • Spark MLib- เป็นไลบรารี Machine Learning ของ Spark ที่ใช้อัลกอริธึมการเรียนรู้โดยทั่วไป เช่น การจำแนกประเภท การถดถอย การจัดกลุ่ม ฯลฯ
  • Spark SQL – ช่วยดำเนินการค้นหาแบบ SQL บนข้อมูล Spark โดยใช้เครื่องมือสร้างภาพมาตรฐานหรือเครื่องมือข่าวกรองธุรกิจ
  • Spark GraphX ​​– เป็น Spark API สำหรับการประมวลผลกราฟเพื่อพัฒนาและแปลงกราฟเชิงโต้ตอบ
  1. เส้นด้ายคืออะไร? จำเป็นต้องติดตั้ง Spark บนโหนดทั้งหมดของคลัสเตอร์ YARN หรือไม่

Yarn เป็นแพลตฟอร์มการจัดการทรัพยากรส่วนกลางใน Spark ช่วยให้สามารถจัดส่งการดำเนินการที่ปรับขนาดได้ทั่วทั้งคลัสเตอร์ Spark ในขณะที่ Spark เป็นเครื่องมือประมวลผลข้อมูล YARN เป็นเครื่องมือจัดการคอนเทนเนอร์แบบกระจาย เช่นเดียวกับ Hadoop MapReduce สามารถทำงานบน YARN ได้ Spark ก็สามารถทำงานบน YARN ได้เช่นกัน

ไม่จำเป็นต้องติดตั้ง Spark บนโหนดทั้งหมดของคลัสเตอร์ YARN เนื่องจาก Spark สามารถทำงานบน YARN ได้ – มันทำงานโดยอิสระจากการติดตั้ง นอกจากนี้ยังรวมถึงการกำหนดค่าต่างๆ เพื่อรันบน YARN เช่น มาสเตอร์ คิว ​​โหมดปรับใช้ หน่วยความจำไดรเวอร์ หน่วยความจำตัวดำเนินการ และแกนประมวลผล

  1. Catalyst Framework คืออะไร?

เฟรมเวิร์ก Catalyst เป็นเฟรมเวิร์กการปรับให้เหมาะสมที่ไม่เหมือนใครใน Spark SQL วัตถุประสงค์หลักของเฟรมเวิร์กตัวเร่งปฏิกิริยาคือการเปิดใช้ Spark เพื่อแปลงการสืบค้น SQL โดยอัตโนมัติด้วยการเพิ่มการเพิ่มประสิทธิภาพใหม่เพื่อพัฒนาระบบการประมวลผลที่เร็วขึ้น

  1. ตัวจัดการคลัสเตอร์ประเภทต่าง ๆ ใน Spark มีอะไรบ้าง

เฟรมเวิร์ก Spark ประกอบด้วยตัวจัดการคลัสเตอร์สามประเภท:

  1. สแตนด์อโลน – ตัวจัดการหลักที่ใช้ในการกำหนดค่าคลัสเตอร์
  2. Apache Mesos – ตัวจัดการคลัสเตอร์ทั่วไปในตัวของ Spark ที่สามารถเรียกใช้ Hadoop MapReduce และแอปพลิเคชันอื่นๆ ได้เช่นกัน
  3. Yarn – ตัวจัดการคลัสเตอร์สำหรับจัดการการจัดการทรัพยากรใน Hadoop
  1. โหนดคนงานคืออะไร?

โหนดคนงานคือ "โหนดทาส" ของโหนดหลัก หมายถึงโหนดใด ๆ ที่สามารถเรียกใช้รหัสแอปพลิเคชันในคลัสเตอร์ ดังนั้น โหนดหลักจะมอบหมายงานให้กับโหนดผู้ปฏิบัติงานซึ่งทำงานที่ได้รับมอบหมาย โหนดผู้ปฏิบัติงานประมวลผลข้อมูลที่เก็บไว้ภายในแล้วรายงานไปยังโหนดหลัก

  1. Spark Executor คืออะไร?

Spark Executor เป็นกระบวนการที่รันการคำนวณและจัดเก็บข้อมูลในโหนดผู้ปฏิบัติงาน ทุกครั้งที่ SparkContext เชื่อมต่อกับตัวจัดการคลัสเตอร์ จะได้รับ Executor บนโหนดภายในคลัสเตอร์ ผู้ดำเนินการเหล่านี้ดำเนินการงานสุดท้ายที่ได้รับมอบหมายจาก SparkContext

  1. ไฟล์ปาร์เก้คืออะไร?

ไฟล์ Parquet เป็นไฟล์รูปแบบคอลัมน์ที่อนุญาตให้ Spark SQL ดำเนินการอ่านและเขียน การใช้ไฟล์ปาร์เก้ (รูปแบบคอลัมน์) มีข้อดีหลายประการ:

  1. รูปแบบการจัดเก็บคอลัมน์ใช้พื้นที่น้อยลง
  2. รูปแบบการจัดเก็บคอลัมน์ช่วยให้การทำงานของ IO อยู่ในการตรวจสอบ
  3. ช่วยให้คุณเข้าถึงคอลัมน์เฉพาะได้อย่างง่ายดาย
  4. เป็นไปตามการเข้ารหัสเฉพาะประเภทและให้ข้อมูลสรุปที่ดีกว่า

ที่นั่น - เราได้ทำให้คุณรู้สึกผ่อนคลายใน Spark แนวคิดพื้นฐานทั้ง 15 ข้อใน Spark จะช่วยให้คุณเริ่มต้นใช้งาน Spark

หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ

ตรวจสอบหลักสูตรวิศวกรรมซอฟต์แวร์อื่นๆ ของเราที่ upGrad

พัฒนาตัวเองและเตรียมพร้อมสำหรับอนาคต

การเรียนรู้มากกว่า 400 ชั่วโมง 14 ภาษาและเครื่องมือ สถานะศิษย์เก่า IIIT-B
โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore