MapReduce คืออะไร เกี่ยวข้องกับ Hadoop หรือ Big Data ยังไง
MapReduce เป็น framework ในการเขียนโปรแกรมแบบหนึ่งที่ช่วยในงานประมวลผลที่มีชุดของข้อมูล จำนวนมาก
เป็นการทำงานแบบขนาน ซึ่งจะอาศัยเครื่องคอมพิวเตอร์หลายๆเครื่องช่วยกันทำงาน
โดยที่ผู้ใช้งานนั้นไม่ต้องสนใจเบื้องหลังการทำงานเช่น
parallelization, data distribution, loads balancing และ fault tolerance
ในการทำงานแล้วผู้ใช้งาน MapReduce จะสนใจแค่ส่วนของ Map และส่วนของ Reduce เท่านั้น
ซึ่ง Map จะทำการจับคู่ของ Key/Value ที่เราต้องการ แล้วก็จะส่งไปให้ Reduce ทำการประมวลผลเพื่อให้ได้ผลลัพธ์ที่ต้องการ
อ่านดูแล้วก็มี งงๆ บ้างอ่ะนะ มาดูตัวอย่างการทำ Map/Reduce กันเลยละกัน ยกตัวอย่างเช่นเรามี ข้อมูล เป็น text ลักษณะแบบนี้
1001201220 1002201230 1003201310 100420139
Function Map ทำหน้าที่ในการจัดเตรียมข้อมูลก่อนที่จะทำการ Reduce โดยขั้นตอนแรกจะหาคู่ Key กับ Value ก่อน
Input เข้า function Map จะเป็ดังนี้
1:1001201220
2:1002201230
3:1003201310
4:1004201309
Function Map ทำการ Map Key กับ Value ได้ดังนี้
2012:20
2012:30
2013:10
2013:9
จากนั้น Function ของ Framework จะทำการ จัดเรียงให้เป็นหน้า Output แบบนี้
2012:[20,30]
2013:[9,10]
จากนั้นก็จะเข้าสู่ขั้นตอนของการทำ Reduce โดยมี Input ตามนี้
2012:[20,30]
2013:[9,10]
สมมุติเราจะหาค่าต่ำสุดของแต่ละปี ตอนนี้ก็ไม่ยากแระเพราะขั้นตอนการ Map
ได้ช่วยเราไว้เยอะแระ Output ที่ได้ก็จะเป็น
2012:20
2013:9
อย่าลืมว่านี่คือแค่ตัวอย่างอ่ะนะครับ ความจริงแล้ว Data ที่เข้ามานั้นมัน มหาศาลมากๆ
ตอนนี้มี Frame work ที่ทำงานด้านนี้โดยเฉพาะหลายตัวเช่น
Hadoop ทำหน้าที่จัดการข้อมูล Big Data
มีจุดเด่นที่การกระจายการทำงาน Map , Reduce