อธิบายสถาปัตยกรรม MapReduce ทุกสิ่งที่คุณจำเป็นต้องรู้
เผยแพร่แล้ว: 2020-02-27ด้วยความก้าวหน้าของเทคโนโลยี ทุกธุรกิจต้องการจัดเก็บและประมวลผลข้อมูลออนไลน์ของตน ข้อกำหนดนี้ทำให้เกิดความต้องการใหม่ในการรวบรวมบิ๊กดาต้าสำหรับองค์กรจากกิจกรรมออนไลน์และออฟไลน์ ข้อมูลที่รวบรวมต้องได้รับการจัดเก็บและประมวลผลอย่างมีประสิทธิภาพ
Hadoop เป็นหนึ่งในเฟรมเวิร์กที่ได้รับความนิยมมากที่สุดในการประมวลผลข้อมูลขนาดใหญ่ และหนึ่งในบล็อกที่รองรับ Hadoop ได้ดีที่สุดคือ MapReduce หากคุณกำลังมองหาอาชีพในฐานะนักวิเคราะห์ข้อมูลในสาขาวิทยาศาสตร์ข้อมูล คุณต้องตระหนักถึงภาษาการเขียนโปรแกรมที่กำลังเป็นที่นิยมและได้รับความนิยมนี้
สารบัญ
ความสำคัญของ MapReduce ในการวิเคราะห์ข้อมูล
MapReduce ประมวลผลข้อมูลมาตราส่วนจำนวนมาก ในขณะที่ Hadoop ทำงานตามโปรแกรม MapReduce ที่ต่อเนื่องกันซึ่งถูกจารึกไว้ในภาษาถิ่นของการเขียนโปรแกรมหลายภาษา รวมถึง C++, Python, Ruby on Rails, Java และอื่นๆ อีกมากมาย ลักษณะของ MapReduce เป็นแบบคู่ขนาน ซึ่งทำให้มีประโยชน์มากในการเขียนโปรแกรมข้อมูลจำนวนมหาศาลที่สามารถใช้โดยเครื่องหลายเครื่องในรูปแบบของคลัสเตอร์
การเขียนโปรแกรม MapReduce คืออะไร?
MapReduce เป็นโมดูลโปรแกรมสำหรับการคำนวณแบบกระจาย มันทำงานบน Java ในสองขั้นตอนคือ
- ระยะแผนที่
- ลดเฟส
เพื่อทำความเข้าใจ MapReduce ผู้เข้ารหัสและโปรแกรมเมอร์ทุกคนต้องเข้าใจสองขั้นตอนเหล่านี้และหน้าที่ของพวกเขา
1. ระยะแผนที่
ใน Map Phase ข้อมูลของข้อมูลจะแบ่งออกเป็น 2 ส่วนหลักๆ คือ Value และ Key ค่าจะถูกบันทึกเฉพาะในขั้นตอนการแจกไพ่ ในขณะที่คีย์จะถูกเขียนในขั้นตอนการประมวลผล เมื่อใดก็ตามที่ลูกค้ายอมจำนนต่อการมีส่วนร่วมของข้อมูลในเฟรมเวิร์ก Hadoop เครื่องมือติดตามงานจะมอบหมายงาน และข้อมูลของข้อมูลจะถูกแบ่งออกเป็นหลายส่วน

ข้อมูลจะถูกแบ่งตามลักษณะของข้อมูล เครื่องอ่านบันทึกจะขนส่งข้อมูลที่แบ่งเป็นคู่คีย์-ค่า ซึ่งเรียกกันทั่วไปว่าคู่ (KV) KV คือรูปแบบข้อมูลอินพุตดั้งเดิมสำหรับ Map Phase ซึ่งจะประมวลผลข้อมูลภายในตัวติดตามงานอีกครั้ง ข้อมูลในแบบฟอร์มจะแตกต่างกันไปสำหรับการใช้งานที่แตกต่างกัน ดังนั้น คุณต้องปรับข้อมูลอินพุตให้เหมาะสมเพื่อเข้ารหัสตามนั้น
เมื่อคุณนำข้อมูลในรูปแบบข้อความ คุณจะพบคีย์ ซึ่งเป็นค่าชดเชยไบต์ เฟสแผนที่นี้ยังใช้ตัวรวมและโมดูลพาร์ติชั่นเพื่อเข้ารหัสโปรแกรมเพื่อให้ดำเนินการกับข้อมูลที่ผิดปกติ คุณจะพบว่าการแปลข้อมูลจะเกิดขึ้นเฉพาะในหน่วยข้อมูลของ mapper
- โมดูล Combiner ในระยะแผนที่
ในด่านแผนที่ โมดูลตัวรวมเรียกอีกอย่างว่าตัวลดขนาดจิ๋ว เครื่องผสมสัญญาณมีความจำเป็นในการพิชิตแบนด์วิธสูงเมื่อผู้ทำแผนที่ประมวลผลข้อมูลจำนวนมหาศาล ในการแก้ไขปัญหาแบนด์วิดท์ระดับบน คุณต้องใช้ตรรกะของตัวรวมในเฟสของแผนที่เพื่อให้ได้ผลลัพธ์ที่ยอดเยี่ยม
- โมดูลพาร์ติชันในเฟสแผนที่
เช่นเดียวกับในโมดูลตัวรวม ส่วนพาร์ติชั่นมีส่วนสำคัญต่อภาษาโปรแกรม MapReduce ซึ่งท้ายที่สุดจะส่งผลต่อเฟรมเวิร์ก Hadoop ส่วนพาร์ติชั่นช่วยลดแรงกดที่เกิดขึ้นระหว่างกระบวนการรีดิวซ์ ทำให้ได้ผลลัพธ์ที่ยอดเยี่ยม คุณยังสามารถปรับแต่งพาร์ติชั่นตามข้อมูลของคุณได้อีกด้วย ขึ้นอยู่กับสถานการณ์ที่แตกต่างกัน
คุณยังสามารถใช้พาร์ติชั่นเริ่มต้นได้ในระหว่างกระบวนการ นอกจากนี้ยังมีพาร์ติชั่นแบบสแตติกและไดนามิกที่ช่วยให้ผู้ปฏิบัติงานคอมพิวเตอร์แบ่งข้อมูลออกเป็นหลาย ๆ ตัวเลขโดยใช้วิธีการลดและแมปเฟส คุณสามารถออกแบบและปรับแต่งพาร์ติชันเหล่านี้ได้ตามความต้องการทางธุรกิจ โมดูลพาร์ติชันนี้จะมีประโยชน์ในการถ่ายโอนข้อมูลระหว่างสองกระบวนการข้างต้นของสถาปัตยกรรม MapReduce
2. ลดเฟส
หลังจากประมวลผลเฟสของแผนที่ ข้อมูลที่จัดระเบียบและขัดแย้งจะกลายเป็นอินพุตสำหรับเฟสลด ในระหว่างระยะนี้ ข้อมูลที่จัดเรียงทั้งหมดจะถูกรวมเข้าด้วยกัน และคู่คีย์-ค่าจริงจะได้รับการพิจารณาในเฟรมเวิร์ก HDFS ผู้เขียนบันทึกจะบันทึกสถิติตั้งแต่ระยะ Reducer ไปจนถึงเฟรมเวิร์ก HDFS แม้ว่าระยะนี้จะเป็นทางเลือกสำหรับการค้นหาและการทำแผนที่ แต่ก็มีส่วนสำคัญในการปรับปรุงประสิทธิภาพให้ดีขึ้น

อ่าน: เครื่องมือ Hadoop 10 อันดับแรกสำหรับ Big Data
เฟสนี้เริ่มต้นกระบวนการจริงกับข้อมูลที่ให้โดยเฟสแผนที่ เฟส Map ให้ผลลัพธ์ของตัวลด เช่น part-r-0001 คุณต้องระบุชุดตัวเลขสำหรับแต่ละงานที่ผู้ใช้ของคุณต้องการติดตาม คุณยังสามารถกำหนดลำดับความสำคัญได้มากมายที่จะเปิดใช้งานเพื่อใส่ชื่อของสถานการณ์เฉพาะ
ในระยะนี้ การดำเนินการตามทฤษฎีเป็นสิ่งจำเป็นสำหรับการรันข้อมูล หากตัวลดหลายตัวกำลังประมวลผลข้อมูลเดียวกันและตัวลดตัวแรกกำลังประมวลผลช้า ตัวติดตามงานสามารถกำหนดการประมวลผลให้กับตัวลดขนาดถัดไปที่พร้อมใช้งานเพื่อเร่งกระบวนการ การจัดสรรงานประเภทนี้ให้กับตัวลดที่มีอยู่เรียกว่า FIFO กล่าวคือเข้าก่อนออกก่อน
การทำความเข้าใจกระบวนการของสถาปัตยกรรม MapReduce
ต่อไปนี้คือประเด็นที่คุณควรคำนึงถึงขณะทำงานกับสถาปัตยกรรม MapReduce ในกรอบงาน Hadoop
การสร้างงานเฟสแผนที่ : ในสถาปัตยกรรม MapReduce งานเฟสแผนที่แรกจะถูกสร้างขึ้นเพื่อแบ่งข้อมูลและดำเนินการโมดูลแผนที่เพื่อบันทึกข้อมูล
การแบ่งข้อมูล : โมดูลตัวรวมและพาร์ติชั่นช่วยให้ข้อมูลประมวลผลการแยกจำนวนมาก เวลาที่ต้องใช้ในการประมวลผลข้อมูลเข้าทั้งหมดจะสูงขึ้นเมื่อเท่ากับเวลาที่ต้องใช้ในการประมวลผลส่วนต่างๆ การแยกขนาดเล็กลงทำให้การประมวลผลและความสมดุลของข้อมูลดีขึ้นในแบบคู่ขนาน
อ่านเพิ่มเติม: คุณสมบัติและแอปพลิเคชั่นของ Hadoop
การแยกส่วนที่ แม่นยำ : การแยกที่มีขนาดเล็กเกินไปนั้นไม่เหมาะในขั้นตอนแผนที่ เนื่องจากจะเพิ่มภาระในการจัดการแผนกและการสร้างงานแผนที่เพื่อควบคุมเวลาในการทำงานทั้งหมด
พิจารณาขนาดเฉลี่ยของการแยก : ตามหลักการแล้ว ขนาดการหารควรเป็น 64 MB และคุณควรตั้งเป็นค่าเริ่มต้นเพื่อสร้างขนาดการแยกที่สม่ำเสมอ ขนาดที่แบ่งควรเท่ากับบล็อก HDFS
การนำโมดูล HDFS ไปใช้ : เอาต์พุตเฟสของ Map จะดำเนินการเขียนข้อมูลไปยังดิสก์ในเครื่องบนแต่ละหน่วยของข้อมูล ไม่ใช่ในโมดูล HDFS เพื่อหลีกเลี่ยงการเกิดซ้ำ ซึ่งเป็นเรื่องปกติใน HDFS คุณต้องเลือกไดรฟ์ในเครื่องอื่นที่ไม่ใช่ HDFS
ป้องกันการทำซ้ำ : เฟส Map เป็นส่วนกลางที่ประมวลผลข้อมูลเพื่อป้อนไปยังเฟส Reduce และให้ผลลัพธ์ เมื่องานเสร็จแล้ว สามารถลบเอาท์พุตของแผนที่ ป้องกันการทำซ้ำของข้อมูล
ผลลัพธ์ที่เสนอให้ลดงานเฟส : ผลลัพธ์จากเฟสแผนที่จะถูกนำเสนออย่างต่อเนื่องไปยังเฟสลด ในใบสั่ง การผลิตจะถูกรวมและประมวลผลไปยังฟังก์ชันลดขนาดที่ผู้ใช้กำหนด

ที่ เก็บข้อมูลใน เครื่อง : นอกเหนือจากวิธีแผนที่แล้ว ข้อมูลจากส่วนลดจะถูกเก็บไว้ใน HDFS ซึ่งเป็นสำเนาแรกที่จะบันทึกในหน่วยข้อมูลในเครื่องของคุณ
บทสรุป
กรอบงาน MapReduce ช่วยลดความยุ่งยากในกระบวนการที่ซับซ้อนของการประมวลผลข้อมูลขนาดใหญ่ที่มีอยู่ในโครงสร้าง Hadoop มีการเปลี่ยนแปลงที่สำคัญมากมายในภาษาโปรแกรม MapReduce ใน Hadoop 2.0 เมื่อเปรียบเทียบกับ Hadoop 1.0
มีหลักสูตรมากมายให้เรียนรู้ภาษาโปรแกรม MapReduce คุณสามารถใช้โปรแกรมหลังจบการศึกษา เช่น โปรแกรม Big Data Engineering และ Big Data Analytics ที่ upGrad เพื่อประกอบอาชีพที่ประสบความสำเร็จในการเขียนโปรแกรม ติดต่อกับผู้เชี่ยวชาญของเราเพื่อทราบข้อมูลเพิ่มเติมและรับข้อมูลเชิงลึกที่ดีขึ้นเกี่ยวกับโปรแกรมของเรา
หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับ Big Data โปรดดูที่ PG Diploma in Software Development Specialization in Big Data program ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ เวิร์กช็อป ความช่วยเหลือด้านการเรียนรู้และจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ
เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว