วิธีการ Parallelize ในการประมวลผล Spark Parallel? [ใช้ RDD]

เผยแพร่แล้ว: 2020-09-03

การสร้างและการใช้ข้อมูลเพิ่มขึ้น n-folds ในช่วงไม่กี่ปีที่ผ่านมา ด้วยแพลตฟอร์มจำนวนมากที่เข้ามาในชีวิต การจัดการและจัดการข้อมูลอย่างรอบคอบจึงกลายเป็นสิ่งสำคัญ AI (ปัญญาประดิษฐ์) และ ML (การเรียนรู้ของเครื่อง) ทำให้ประสบการณ์ดิจิทัลของเราราบรื่นยิ่งขึ้นด้วยการค้นหาวิธีแก้ไขปัญหาที่ดีขึ้น ดังนั้น บริษัทต่างๆ จึงกำลังมุ่งสู่การปฏิบัติต่อข้อมูลและค้นหาข้อมูลเชิงลึกจากข้อมูลดังกล่าว

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

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

นั่นคือจุดที่การประมวลผลแบบขนานเข้ามาในภาพ เราจะเริ่มต้นด้วยการทำความเข้าใจการประมวลผลแบบขนานในระยะสั้น จากนั้นจึงดำเนินการต่อไปเพื่อทำความเข้าใจวิธีการขนานในจุดประกาย

อ่าน: Apache Spark Architecture

สารบัญ

การประมวลผลแบบขนานคืออะไร?

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

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

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

การประมวลผลแบบขนานของประกายไฟ

แอปพลิเคชัน Spark ทำงานในรูปแบบของกระบวนการอิสระที่อยู่บนคลัสเตอร์และประสานงานโดย SparkContext ในโปรแกรมหลัก

ขั้นตอนแรกในการรันโปรแกรม Spark คือการส่งงานโดยใช้ Spark-submit สคริปต์ spark-submit ใช้เพื่อเรียกใช้โปรแกรมบนคลัสเตอร์

เมื่อคุณส่งงานโดยใช้สคริปต์ spark-submit งานจะถูกส่งต่อไปยังไดรเวอร์ sparkcontext โปรแกรมไดรเวอร์ Sparkcontext เป็นจุดเริ่มต้นของ Spark Sparkcontext กำหนดเส้นทางโปรแกรมไปยังโมดูลเช่น Cluster Master Node และ RDD ซึ่งสร้างโดยโปรแกรมไดรเวอร์ Sparkcontext เหล่านี้

จากนั้นโปรแกรมจะถูกส่งไปยัง Cluster Master Node ทุกคลัสเตอร์มีโหนดหลักหนึ่งโหนดซึ่งดำเนินการประมวลผลที่จำเป็นทั้งหมด มันส่งต่อโปรแกรมเพิ่มเติมไปยังโหนดผู้ปฏิบัติงาน

โหนดผู้ปฏิบัติงานคือโหนดที่แก้ปัญหา โหนดหลักประกอบด้วยตัวดำเนินการที่ดำเนินการด้วยไดรเวอร์ Sparkcontext

การประมวลผลแบบขนานของประกายไฟ แหล่งที่มา

Resilient Distributed Dataset (RDD) คืออะไร

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

ให้เราเข้าใจ RDD ในรายละเอียดมากขึ้น เนื่องจากเป็นพื้นฐานของการขนานกันในประกายไฟ เราสามารถแบ่งชื่อออกเป็นสามส่วนและรู้ว่าเหตุใดโครงสร้างข้อมูลจึงตั้งชื่อเช่นนั้น

  • ยืดหยุ่น : หมายความว่าโครงสร้างข้อมูลมีความทนทานต่อข้อผิดพลาดด้วยความช่วยเหลือของกราฟเชื้อสาย RDD และด้วยเหตุนี้จึงสามารถคำนวณพาร์ติชั่นที่ขาดหายไปหรือพาร์ติชั่นที่เสียหายซึ่งเกิดจากความล้มเหลวของโหนด
  • กระจาย: สิ่งนี้เป็นจริงสำหรับระบบทั้งหมดที่ใช้สภาพแวดล้อมแบบกระจาย เรียกว่ากระจายเนื่องจากมีข้อมูลอยู่บนโหนดต่างๆ/หลายโหนด
  • ชุดข้อมูล: ชุดข้อมูลแสดงถึงข้อมูลที่คุณใช้งาน คุณสามารถนำเข้าชุดข้อมูลที่มีอยู่ในรูปแบบใดก็ได้ เช่น .csv, .json, ไฟล์ข้อความ หรือฐานข้อมูล คุณสามารถทำได้โดยใช้ JDBC โดยไม่มีโครงสร้างเฉพาะ

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

อ่านเพิ่มเติม: คุณสมบัติ Apache Spark

เมื่อคุณรู้จัก RDD แล้ว คุณจะเข้าใจการประมวลผล Spark Parallel ได้ง่ายขึ้น

ขนานกันใน Spark โดยใช้ RDD

การประมวลผลแบบขนานดำเนินการใน 4 ขั้นตอนสำคัญใน Apache Spark RDD ใช้ในระดับหลักเพื่อขนานกันในจุดประกายเพื่อดำเนินการประมวลผลแบบขนาน

ขั้นตอนที่ 1

RDD มักจะสร้างจากแหล่งข้อมูลภายนอก อาจเป็นไฟล์ CSV ไฟล์ JSON หรือฐานข้อมูลสำหรับเรื่องนั้น ในกรณีส่วนใหญ่ จะเป็น HDFS หรือไฟล์ในเครื่อง

ขั้นตอนที่ 2

หลังจากขั้นตอนแรก RDD จะผ่านการแปลงแบบคู่ขนานสองสามอย่าง เช่น ตัวกรอง แผนที่ groupBy และการเข้าร่วม การแปลงแต่ละรูปแบบเหล่านี้ให้ RDD ที่แตกต่างกันซึ่งนำไปสู่การเปลี่ยนแปลงครั้งต่อไป

รับ ใบรับรองวิทยาศาสตร์ข้อมูล จากมหาวิทยาลัยชั้นนำของโลก เข้าร่วมโปรแกรม Executive PG, Advanced Certificate Programs หรือ Masters Programs ของเราเพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ขั้นตอนที่ 3

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

เช็คเอาท์: บทช่วยสอน Apache Spark สำหรับผู้เริ่มต้น

บทสรุป

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

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

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

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

วางแผนอาชีพของคุณใน Data Science ตอนนี้

สมัคร Advanced Program in Data Science จาก IIIT-B