การจัดการ Big Data (Hadoop และ MapReduce)

ในการจัดการข้อมูลขนาดใหญ่หรือ Big Data มักมีการใช้ระบบสถาปัตยกรรมแบบ Hadoop ในการจัดการข้อมูล ไม่ว่าจะเป็นบริษัท Facebook หรือ eBay ก็จะใช้การทำงานของ Hadoop มาจัดการไฟล์ทั้งสิ้น วันนี้เราจะมาดูกันว่า ทำไมบริษัทยักษ์ใหญ่ขนาดนั้น ถึงได้เลือกใช้วิธีการดังกล่าว

 

ในการจัดการไฟล์ข้อมูลทั่วไปที่มีขนาด 0-32 GB เราสามารถใช้เครื่องคอมพิวเตอร์ทั่ว (Local Computer) ไปในการจัดการไฟล์ได้ ทั้งนี้ก็ขึ้นอยู่กับขนาดของ RAM หรือหน่วยความจำหลักของคอมพิวเตอร์ แต่เราจะทำอย่างไร หากเรามีข้อมูลที่มีขนาดใหญ่นั้น

 

โดยเราสามารถ

  • ใช้ SQL Database ในการเคลื่อนย้ายหน่วยความจำจาก Hard Drive แทน RAM
  • หรือหากข้อมูลมีมากขึ้นก็ใช้ระบบแบบกระจาย (Distributed System) คือข้อมูลจะถูกกระจายไปสู่เน็ตเวิร์คของคอมพิวเตอร์ที่เชื่อมต่อกันด้วยระบบแบบ Cluster เพื่อให้สามารถทำงานได้เสมือนเครื่องเดียว

 

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

 

“รูปแบบสถาปัตยกรรมของ Big Data ที่นิยมคือ Hadoop”

 

Hadoop เป็นวิธีการในการกระจายไฟล์ที่มีขนาดใหญ่มาก ๆ ผ่านเครื่องหลาย ๆ เครื่อง จะใช้วิธีการที่เรียกว่า Hadoop Distributed File System หรือ HDFS ซึ่งให้ผู้ใช้งานสามารถทำงานกับไฟล์ขนาดใหญ่ได้และ HDFS ก็สามารถสร้างไฟล์ซ้ำกันเพื่อป้องกันปัญหาหากระบบใดระบบหนึ่งเกิดล่ม ระบบอื่นก็ยังสามารถทำงานได้ 

Hadoop ใช้สถาปัตยกรรมแบบ Master/Slave โดยจะแบ่งCluster หรือกลุ่มของระบบคอมพิวเตอร์ที่เรียกว่า Node ออกเป็นสอง Node คือ Master ซึ่งจะเรียกว่า NameNode โดยมีหน้าที่การทำงานเหมือนหัวหน้าโดยมีหน้าที่มอบหมายและกระจายงานไปให้ Node ย่อยหรือ slave ที่เรียกว่า Data Node ซึ่งมีหน้าทำทำตามคำสั่งของ NameNode เพื่อให้การจัดการไฟล์เป็นไปอย่างมีประสิทธิภาพ

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

MapReduceคือวิธีการแบ่งงานในการประมวลผลไปสู่เซทของข้อมูลโดยจะแบ่งการทำงานออกเป็น Map Functionโดยจะมีหน้าที่สร้าง key-value (จากการหาค่าสูงสุดของปริมาณ PM2.5ในแต่ละปี ตัว key ก็คือ ปีของข้อมูล และ value ก็คือค่าปริมาณฝุ่น PM 2.5 สูงสุดในแต่ละปี)ซึ่งจะประมวลผลผ่าน chunk ของข้อมูลหลาย ๆ chunk(chunk คือ การแบ่งข้อมูลเป็นก้อนเล็ก ๆ เพื่อให้งานในการประมาลผล)และ Reduce Functionก็จะมีหน้าที่รวมข้อมูลจากการประมวลผลของ Map Function แต่ละ chunk ออกมาให้แก่ผู้ใช้งาน ซึ่งในที่นี้คือค่าปริมาณของ PM2.5 ที่สูงสุดในแต่ละปีนั้นเองครับ

ซึ่งในที่นี้คือค่าปริมาณของ PM2.5 ที่สูงสุดในแต่ละปีนั้นเองครับ

 

โดยสรุปแล้ว ในการจัดการข้อมูลขนาดใหญ่จะแบ่งงานออกเป็นสองส่วน หลักๆ คือ

  1. การใช้ HDFS ในการกระจายข้อมูลขนาดใหญ่
  2. การใช้ MapReduce ในประมวลผลข้อมูลขนาดใหญ่

ที่มา: Spark and Python for Big Data with PySpark

Related products

Apisit Anuntawan

If data was magic, I would be a wizard. การศึกษาปริญญาตรีและโทจากคณะเศรษฐศาสตร์ มหาวิทยาลัยเชียงใหม่มีความถนัดในการทำข้อมูลและการสร้างแบบจำลอง โดยเฉพาะเรื่องของ Big Data, Machine Learning, และBayesian.

Similar tags

Apisit Anuntawan

การจัดการ Big Data (Hadoop และ MapReduce)

ในการจัดการข้อมูลขนาดใหญ่หรือ Big Data มักมีการใช้ระบบสถาปัตยกรรมแบบ Hadoop ในการจัดการข้อมูล ไม่ว่าจะเป็นบริษัท Facebook หรือ eBay

Read more...
Apisit Anuntawan

สิ่งเล็ก ๆ ที่เรียกว่า Big Data

เทคโนโลยี Big Data จริง ๆ ก็คือ เทคโนโลยีที่ใช้จัดการกับข้อมูลที่ปริมาณมหาศาล มีการเปลี่ยนแปลงอย่างรวดเร็ว และมีความหลากหลายจากแหล่งที่มา

Read more...
Pakawadee Chanhom

สัมมนาออนไลน์สำหรับองค์กรที่ต้องทำ พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (PDPA)

งานสัมมนาออนไลน์สำหรับองค์กรทั้งภาครัฐและเอกชนที่ต้องการจะปฏิบัติตาม พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล แต่มีเวลาและทรัพยากรจำกัดในการทำ

Read more...