Mapreduce ใน Big Data: ภาพรวม ฟังก์ชัน & ความสำคัญ
เผยแพร่แล้ว: 2022-07-15บิ๊กดาต้าคืออะไร?
บิ๊กดาต้าคือการรวบรวมข้อมูลจำนวนมหาศาลที่ไม่สามารถประมวลผลได้ด้วยวิธีการคำนวณแบบเดิม การวิเคราะห์ข้อมูลขนาดใหญ่หมายถึงการใช้วิธีการต่างๆ เช่น การวิเคราะห์พฤติกรรมผู้ใช้ การวิเคราะห์เชิงคาดการณ์ หรือการวิเคราะห์ขั้นสูงอื่นๆ ที่จัดการกับข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพ การวิเคราะห์ข้อมูลขนาดใหญ่ใช้เพื่อดึงข้อมูลจากชุดข้อมูลขนาดใหญ่อย่างเป็นระบบ
ด้วยความก้าวหน้าของเทคโนโลยี ชีวิตที่ขับเคลื่อนด้วยดิจิทัลของเราขึ้นอยู่กับชุดข้อมูลขนาดใหญ่ในด้านต่างๆ เป็นหลัก ข้อมูลมีอยู่ทุกที่ ตั้งแต่อุปกรณ์ดิจิทัล เช่น โทรศัพท์มือถือ ไปจนถึงระบบคอมพิวเตอร์ และเป็นทรัพยากรที่สำคัญสำหรับองค์กรและธุรกิจขนาดใหญ่ พวกเขาอาศัยชุดข้อมูลที่ยังไม่ได้ประมวลผลจำนวนมาก ซึ่งอยู่ภายใต้กลุ่มข้อมูลขนาดใหญ่
ดังนั้น การรวบรวม ศึกษา วิเคราะห์ และดึงข้อมูลจึงมีความสำคัญต่อการเติบโตของธุรกิจและวัตถุประสงค์อื่นๆ ในภาคส่วนต่างๆ งานของนักวิทยาศาสตร์ข้อมูลคือการประมวลผลข้อมูลนี้และนำเสนอต่อบริษัทเพื่อคาดการณ์และวางแผนธุรกิจ
`
สำรวจหลักสูตรวิศวกรรมซอฟต์แวร์ยอดนิยมของเรา
เอสแอล. ไม่ | โปรแกรมพัฒนาซอฟต์แวร์ | |
1 | วิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก LJMU & IIITB | โปรแกรมใบรับรองความปลอดภัยทางไซเบอร์ของ Caltech CTME |
2 | Bootcamp การพัฒนาเต็มกอง | โปรแกรม PG ใน Blockchain |
3 | Executive Post Graduate Program in Software Development - Specialization in DevOps | ดูหลักสูตรวิศวกรรมซอฟต์แวร์ทั้งหมด |
MapReduce คืออะไร?
MapReduce เป็นโมเดลการเขียนโปรแกรมที่มีส่วนสำคัญในการประมวลผลข้อมูลขนาดใหญ่และชุดข้อมูลขนาดใหญ่ โดยใช้อัลกอริทึมแบบกระจายขนานบนคลัสเตอร์ โปรแกรม MapReduce สามารถเขียนได้หลายภาษา เช่น C++, Java, Ruby, Python เป็นต้น ข้อได้เปรียบที่ใหญ่ที่สุดของ MapReduce คือทำให้การประมวลผลข้อมูลปรับขนาดได้ง่ายบนโหนดคอมพิวเตอร์จำนวนมาก
MapReduce และ HDFS ใช้สำหรับการจัดการข้อมูลขนาดใหญ่อย่างมีประสิทธิภาพเป็นหลัก Hadoop เรียกว่าเป็นพื้นฐานพื้นฐานของระบบ Mapreduce และ HDFS ที่เชื่อมต่อกันซึ่งรู้จักกันในชื่อระบบ HDFS-MapReduce ดังนั้นจึงไม่จำเป็นต้องบอกว่า MapReduce เป็นองค์ประกอบสำคัญของระบบนิเวศ Apache Hadoop กรอบงานของ Mapreduce มีส่วนช่วยในการปรับปรุงการประมวลผลข้อมูลในระดับใหญ่ Apache Hadoop ประกอบด้วยองค์ประกอบอื่นๆ ซึ่งรวมถึง Hadoop Distributed File System (HDFS), Apache Pig และ Yarn
MapReduce ช่วยปรับปรุงการประมวลผลข้อมูลด้วยความช่วยเหลือของอัลกอริธึมแบบกระจายและคู่ขนานของระบบนิเวศ Hadoop การประยุกต์ใช้โมเดลการเขียนโปรแกรมนี้ในแพลตฟอร์มอีคอมเมิร์ซและโซเชียลช่วยวิเคราะห์ข้อมูลขนาดใหญ่ที่รวบรวมจากผู้ใช้ออนไลน์
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
MapReduce ทำงานอย่างไร
อัลกอริธึม MapReduce ประกอบด้วยงานที่สำคัญสองงาน ได้แก่ แผนที่และการลด งานแผนที่ใช้ชุดข้อมูลและดำเนินการแปลงเป็นชุดข้อมูลอื่น โดยที่แต่ละองค์ประกอบจะถูกแบ่งออกเป็น tuples หรือคู่คีย์-ค่า งาน ลด นำเอาท์พุตจากแผนที่เป็นอินพุต และรวมทูเพิลข้อมูลหรือคู่คีย์-ค่าเข้าเป็นชุดทูเพิลที่เล็กกว่า งานลดจะดำเนินการเสมอหลังจากงานแผนที่
ด้านล่างนี้เป็นขั้นตอนต่างๆ ของ MapReduce:-
- เฟสอินพุต : ในเฟสอินพุต ตัวอ่านบันทึกช่วยแปลแต่ละเร็กคอร์ดในไฟล์อินพุต และส่งข้อมูลที่แยกวิเคราะห์ในรูปแบบของคู่คีย์-ค่าไปยังผู้แมป
- แผนที่: ฟังก์ชั่นแผนที่ถูกกำหนดโดยผู้ใช้ ช่วยประมวลผลชุดของคู่คีย์-ค่า และสร้างคู่คีย์-ค่าศูนย์หรือหลายคู่
- คีย์ระดับกลาง: คู่คีย์-ค่าที่สร้างโดยผู้ทำแผนที่เรียกว่าคีย์ระดับกลาง
- Combiner : Reducer ในพื้นที่ประเภทนี้ช่วยจัดกลุ่มข้อมูลที่คล้ายคลึงกันซึ่งสร้างขึ้นจากเฟสของแผนที่เป็นชุดที่สามารถระบุได้ เป็นส่วนเสริมของอัลกอริธึม MapReduce
- Shuffle and Sort: งาน Reducer เริ่มต้นด้วยขั้นตอนนี้ ซึ่งจะดาวน์โหลดคู่คีย์-ค่าที่จัดกลุ่มไว้ในเครื่อง โดยที่ Reducer กำลังทำงานอยู่แล้ว คู่คีย์-ค่าจะถูกแยกออกโดยคีย์ในรายการข้อมูลที่ครอบคลุมมากขึ้น จากนั้นรายการข้อมูลจะจัดกลุ่มคีย์ที่เทียบเท่ากันเพื่อวนซ้ำค่าต่างๆ อย่างง่ายดายในงาน Reducer
- Reducer : Reducer นำข้อมูลที่จับคู่คีย์-ค่ามาจัดกลุ่มเป็นอินพุต จากนั้นรันฟังก์ชัน Reducer กับทุกข้อมูล ที่นี่ ข้อมูลสามารถกรอง รวม และรวมข้อมูลได้หลายวิธี นอกจากนี้ยังต้องการการประมวลผลที่หลากหลาย เมื่อกระบวนการสิ้นสุดลง จะให้คู่คีย์-ค่าศูนย์หรือหลายคู่ไปยังขั้นตอนสุดท้าย
- เฟสเอาต์พุต: ในเฟสนี้มีตัวจัดรูปแบบเอาต์พุตที่แปลคู่คีย์-ค่าสุดท้ายจากฟังก์ชัน Reducer และเขียนลงในไฟล์โดยใช้ตัวเขียนบันทึก
MapReduce เกิดขึ้นในสามขั้นตอน:-
ด่านที่ 1 : ด่านแผนที่
สเตจที่ 2 : สเตจสับเปลี่ยน
ระยะที่ 3 : ระยะลด
ตัวอย่างเพื่อช่วยให้เข้าใจขั้นตอนต่างๆ ได้ดีขึ้น นี่คือตัวอย่างของปัญหา Wordcount ที่แก้ไขโดย Mapreduce ผ่านขั้นตอนต่างๆ:-
นำข้อมูลที่ป้อนด้านล่างมาพิจารณา:-
- แอนนา คาเรน โลล่า
- คลาร่า คลาร่า โลล่า
- Anna Clara Karen
- ข้อมูลข้างต้นถูกแยกออกเป็นสามส่วนอินพุต
- แอนนา คาเรน โลล่า
- คลาร่า คลาร่า โลล่า
- Anna Clara Karen
- ในขั้นต่อไป ข้อมูลนี้จะถูกป้อนเข้าสู่เฟสถัดไป ซึ่งเรียกว่าเฟสการทำแผนที่
พิจารณาบรรทัดแรก (Anna Karen Lola) เราได้รับคู่คีย์-ค่าสามคู่ – Anna, 1; กะเหรี่ยง 1; โลล่า 1
คุณจะพบผลลัพธ์ในขั้นตอนการทำแผนที่ด้านล่าง:-
- แอนนา1
กะเหรี่ยง1
โลล่า1 - คลาร่า1
คลาร่า1
โลล่า1 - แอนนา1
คลาร่า1
กะเหรี่ยง1
- ข้อมูลดังกล่าวจะถูกป้อนเข้าสู่เฟสต่อไป ระยะนี้เรียกว่าระยะการเรียงลำดับและสับเปลี่ยน ข้อมูลในเฟสนี้จะถูกจัดกลุ่มเป็นคีย์เฉพาะและจัดเรียงเพิ่มเติม คุณจะพบผลลัพธ์ของขั้นตอนการเรียงลำดับและสับเปลี่ยน:
- โลล่า,(1,1)
- กะเหรี่ยง(1,1)
- แอนนา(1,1)
- คลาร่า(1,1,1)
- ข้อมูลข้างต้นจะถูกป้อนเข้าสู่เฟสถัดไป ซึ่งเรียกว่าเฟสลด
ค่าคีย์ทั้งหมดถูกรวมไว้ที่นี่ และนับจำนวน 1 วินาที
ด้านล่างนี้เป็นผลในการลดเฟส:
- โลล่า2
- กะเหรี่ยง2
- แอนนา2
- คลาร่า3
อ่านบทความยอดนิยมของเราเกี่ยวกับการพัฒนาซอฟต์แวร์
วิธีการใช้ Data Abstraction ใน Java? | Inner Class ใน Java คืออะไร? | ตัวระบุ Java: คำจำกัดความ ไวยากรณ์ และตัวอย่าง |
ทำความเข้าใจการห่อหุ้มใน OOPS ด้วยตัวอย่าง | อาร์กิวเมนต์บรรทัดคำสั่งใน C อธิบาย | คุณสมบัติและลักษณะเด่น 10 อันดับแรกของคลาวด์คอมพิวติ้งในปี 2022 |
ความหลากหลายใน Java: แนวคิด ประเภท ลักษณะและตัวอย่าง | แพ็คเกจใน Java และวิธีใช้งาน | บทช่วยสอน Git สำหรับผู้เริ่มต้น: เรียนรู้ Git ตั้งแต่เริ่มต้น |
ทำไมต้องเลือก MapReduce?
ในรูปแบบการเขียนโปรแกรมสำหรับเขียนแอปพลิเคชัน MapReduce เป็นหนึ่งในเครื่องมือที่ดีที่สุดสำหรับการประมวลผลข้อมูลขนาดใหญ่แบบคู่ขนานบนหลายโหนด ข้อดีอื่นๆ ของการใช้ MapReduce มีดังนี้:-
- ความปลอดภัย
- ความสามารถในการปรับขนาด
- ความยืดหยุ่น
- ราคาประหยัด
- การตรวจสอบสิทธิ์
- รูปแบบการเขียนโปรแกรมอย่างง่าย
- รวดเร็วและมีประสิทธิภาพ
- ความพร้อมใช้งาน
- การประมวลผลแบบขนาน
- ความยืดหยุ่น
บทสรุป
บิ๊กดาต้าเป็นส่วนสำคัญของชีวิตเรา เนื่องจากบริษัทยักษ์ใหญ่ที่เศรษฐกิจเฟื่องฟูอาศัยบิ๊กดาต้าดังกล่าว วันนี้เป็นหนึ่งในตัวเลือกอาชีพที่ทำกำไรได้มากที่สุดที่สามารถเลือกได้
หากคุณต้องการลงทะเบียนเรียนหลักสูตร Advanced Certificate Program ที่เชื่อถือได้ใน Big Data ไม่ต้องมองหาที่ไหนอีกแล้ว upGrad มีหลักสูตรที่ดีที่สุดที่คุณจะเจอ คุณจะได้เรียนรู้ทักษะระดับมืออาชีพชั้นนำ เช่น การประมวลผลข้อมูลด้วย PySpark, คลังข้อมูล, MapReduce, การประมวลผลข้อมูลขนาดใหญ่บนคลาวด์, การประมวลผลแบบเรียลไทม์ และอื่นๆ
ตัวแบ่งพาร์ติชั่นคืออะไรและใช้งานอย่างไร?
ตัวแบ่งพาร์ติชั่นคือเฟสที่ควบคุมพาร์ติชั่นของคีย์เอาต์พุต Mapreduce ทันทีโดยใช้ฟังก์ชันแฮช การแบ่งพาร์ติชั่นเป็นตัวกำหนดตัวลด คู่คีย์-ค่าจะถูกส่งไป
การกำหนดค่าหลักที่ระบุใน MapReduce คืออะไร
MapReduce ต้องการตำแหน่งอินพุตและเอาต์พุตของงานในระบบไฟล์แบบกระจาย Hadoop และรูปแบบของงาน โปรแกรมเมอร์ MapReduce ยังต้องจัดเตรียมพารามิเตอร์ของคลาสที่มีแผนที่และฟังก์ชันลด MapReduce ยังต้องการให้กำหนดค่าไฟล์ .JAR สำหรับคลาสตัวลด ไดรเวอร์ และตัวแมป
chain mapper และตัวทำแผนที่ใน MapReduce คืออะไร
chain mapper สามารถกำหนดเป็นคลาส mapper แบบง่ายที่ดำเนินการด้วยความช่วยเหลือของการดำเนินการลูกโซ่ข้ามคลาส mapper เฉพาะภายในงานแผนที่เดียว ตัวทำแผนที่ระบุตัวตนสามารถกำหนดเป็นคลาสตัวทำแผนที่ของ Hadoop โดยค่าเริ่มต้น ตัวแม็พข้อมูลประจำตัวจะถูกดำเนินการเมื่อไม่ได้กำหนดคลาสของผู้ทำแผนที่อื่น