อธิบายสถาปัตยกรรม MapReduce ทุกสิ่งที่คุณจำเป็นต้องรู้

เผยแพร่แล้ว: 2020-02-27

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

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

สารบัญ

ความสำคัญของ MapReduce ในการวิเคราะห์ข้อมูล

MapReduce ประมวลผลข้อมูลมาตราส่วนจำนวนมาก ในขณะที่ Hadoop ทำงานตามโปรแกรม MapReduce ที่ต่อเนื่องกันซึ่งถูกจารึกไว้ในภาษาถิ่นของการเขียนโปรแกรมหลายภาษา รวมถึง C++, Python, Ruby on Rails, Java และอื่นๆ อีกมากมาย ลักษณะของ MapReduce เป็นแบบคู่ขนาน ซึ่งทำให้มีประโยชน์มากในการเขียนโปรแกรมข้อมูลจำนวนมหาศาลที่สามารถใช้โดยเครื่องหลายเครื่องในรูปแบบของคลัสเตอร์

การเขียนโปรแกรม MapReduce คืออะไร?

MapReduce เป็นโมดูลโปรแกรมสำหรับการคำนวณแบบกระจาย มันทำงานบน Java ในสองขั้นตอนคือ

  1. ระยะแผนที่
  2. ลดเฟส

เพื่อทำความเข้าใจ 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 สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

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

โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore