สถาปัตยกรรม Apache Spark: ทุกสิ่งที่คุณต้องรู้ในปี 2022

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

Apache Spark คืออะไร?

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

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

สารบัญ

สำนวนสำคัญในการเรียนรู้

Spark Application – ดำเนินการรหัสที่ป้อนโดยผู้ใช้เพื่อให้ได้ผลลัพธ์ มันทำงานบนการคำนวณของตัวเอง

Apache SparkContext – นี่คือส่วนหลักของสถาปัตยกรรม ใช้เพื่อสร้างบริการและดำเนินงาน

งาน – ทุกขั้นตอนมีงานเฉพาะที่ดำเนินการทีละขั้นตอน

Apache Spark Shell – พูดง่ายๆ ก็คือ มันเป็นแอพพลิเคชั่น Apache Spark Shell เป็นหนึ่งในตัวกระตุ้นที่สำคัญในการประมวลผลชุดข้อมูลทุกขนาดอย่างง่ายดาย

เวที – งานต่าง ๆ เมื่อแยกออกจะเรียกว่าสเตจ

งาน – เป็นชุดของการคำนวณที่รันแบบคู่ขนาน

ส่วนสำคัญของ Apache Spark

Apache Stark มีพื้นฐานอยู่บนแนวคิดสองประการ ได้แก่ ชุดข้อมูลที่กระจายอย่างยืดหยุ่น (RDD) และกราฟอะไซคลิกโดยตรง (DAG) ฉายแสงบน RDD สิ่งนี้ทำให้เห็นว่ามันเป็นสต็อคของรายการข้อมูลที่เสียและบันทึกไว้ในโหนดของผู้ปฏิบัติงาน ชุดข้อมูล Hadoop และคอลเล็กชันแบบขนานเป็น RDD สองชุดที่ได้รับการสนับสนุน

อันก่อนหน้านั้นสำหรับ HDFS ในขณะที่อันหลังสำหรับการรวบรวมสกาล่า ข้ามไปที่ DAG – เป็นวงจรของการคำนวณทางคณิตศาสตร์ที่ดำเนินการกับข้อมูล สิ่งนี้ทำให้กระบวนการง่ายขึ้นโดยกำจัดการดำเนินการหลายรายการ นี่เป็นเหตุผลเดียวที่ต้องการ Apache Spark มากกว่า Hadoop เรียนรู้เพิ่มเติมเกี่ยวกับ Apache Spark กับ Hadoop Mapreduce

ภาพรวมสถาปัตยกรรม Spark

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

ข้อดีของ Spark

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

ไม่ต้องสงสัยเลยว่ามันมาโดยไม่มีการจัดเก็บแบบกระจายและการจัดการคลัสเตอร์แม้ว่าจะค่อนข้างมีชื่อเสียงในการเป็นเครื่องมือประมวลผลแบบกระจาย อย่างที่เราทราบกันดีว่าทั้ง Compute engine และ Core APIs เป็นสองส่วน แต่ยังมีอีกมากที่จะนำเสนอ – GraphX, การสตรีม, MLlib และ Spark SQL ไม่มีใครรู้คุณค่าของแง่มุมเหล่านี้ อัลกอริธึมการประมวลผล การประมวลผลข้อมูลอย่างไม่หยุดยั้ง ฯลฯ บน Spark Core API เท่านั้น

การทำงานของ Apache Spark

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

Spark รองรับงานได้ 3 แบบ

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

ระบบนิเวศ Spark และ RDD

เพื่อให้ได้ส่วนสำคัญของแนวคิดอย่างแท้จริง ต้องจำไว้ว่า Spark Ecosystem มีส่วนประกอบต่างๆ เช่น Spark SQL, Spark streaming, MLib (Machine Learning Library), Spark R และอื่นๆ อีกมากมาย

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

หลังจากนี้ Spark Streaming ช่วยให้นักพัฒนาดำเนินการทั้งการประมวลผลแบบแบตช์และการสตรีมข้อมูลพร้อมกัน ทุกอย่างสามารถจัดการได้ง่าย

นอกจากนี้ ส่วนประกอบกราฟิกยังแจ้งข้อมูลให้ทำงานกับแหล่งที่มาที่เพียงพอเพื่อความยืดหยุ่นและความยืดหยุ่นที่ยอดเยี่ยมในการสร้างและการเปลี่ยนแปลงที่ง่ายดาย

ถัดมาก็มาถึง Spark R ที่รับผิดชอบการใช้ Apache Spark สิ่งนี้ยังมีประโยชน์กับการใช้งานกรอบข้อมูลแบบกระจาย ซึ่งสนับสนุนการดำเนินการสองสามอย่างบนชุดข้อมูลขนาดใหญ่ แม้แต่แมชชีนเลิร์นนิงแบบกระจายก็ยังสนับสนุนการเสนอราคาโดยใช้ไลบรารีแมชชีนเลิร์นนิง

สุดท้ายนี้ องค์ประกอบ Spark Core ซึ่งเป็นหนึ่งในองค์ประกอบที่สำคัญที่สุดของระบบนิเวศ Spark จะให้การสนับสนุนสำหรับการเขียนโปรแกรมและการกำกับดูแล ที่ด้านบนของเอ็นจิ้นการดำเนินการหลักนี้ ระบบนิเวศ Spark ที่สมบูรณ์นั้นใช้ API หลายตัวในภาษาต่างๆ กล่าวคือ สกาล่า ไพทอน เป็นต้น

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

Spark ยังรองรับภาษาการเขียนโปรแกรมทั่วไปสองภาษา – R และ Java

บทสรุป

เมื่อคุณได้เรียนรู้วิธีการทำงานของระบบนิเวศ Spark แล้ว ก็ถึงเวลาที่คุณจะสำรวจเพิ่มเติมเกี่ยวกับ Apache Spark ด้วยโปรแกรมการเรียนรู้ออนไลน์ ติดต่อเราเพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรม eLearning ของเราบน Apache Spark

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

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

วางแผนอาชีพวิทยาศาสตร์ข้อมูลของคุณวันนี้

7 กรณีศึกษาและโครงการ. ความช่วยเหลือด้านงานกับบริษัทชั้นนำ อาจารย์ที่ปรึกษาเฉพาะทาง.
โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore