การจัดการ 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 (Spark)

Spark คือหนึ่งในเทคโนโลยีที่ใช้งานกับบิ๊กดาต้าที่ได้รับความนิยมสูง เนื่องจากใช้งานง่ายและยังเป็นแพลตฟอร์มที่เป็น Open Source ที่สามารถใช้งานได้

Read more...
Apisit Anuntawan

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

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

Read more...
Apisit Anuntawan

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

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

Read more...