การจัดการ Big Data (Spark)

Spark คือหนึ่งในเทคโนโลยีที่ใช้งานกับบิ๊กดาต้าที่ได้รับความนิยมสูง เนื่องจากใช้งานง่ายและยังเป็นแพลตฟอร์มที่เป็น Open Source ที่สามารถใช้งานได้หลากหลายภาษา ไม่ว่าจะเป็น Python, R หรือ Scala โดย Spark จะทำงานร่วมกับ Hadoop ที่เป็นเทคโนโลยีที่ใช้เกี่ยวกับการเก็บข้อมูลและประมวลผล นอกจากนี้ Spark ยังสามารถใช้งานกับฐานข้อมูลได้หลากหลาย ไม่ว่าจะเป็น Cassandra, AWS S3, HDFS ฯลฯ รวมถึงทำงานกับ Disk Storage ในบทความนี้ เราจะมาพูดถึงการทำงานของเทคโนโลยีนี้กันครับ

เราสามารถมองได้ว่า Spark คืออีกหนึ่งทางเลือกของ MapReduce


เรามาลองเปรียบเทียบความสามารถระหว่าง Spark และ MapReduce กันครับ

Spark VS MapReduce

  • MapReduce จะต้องให้ไฟล์จัดเก็บในระบบ HDFS แต่ Spark ไม่จำเป็น
  • Spark สามารถใช้งานได้รวดเร็วกว่า MapReduce ถึง 100 เท่า

ทำไม Spark ถึงเร็วกว่า MapReduce ?


MapReduce จะเขียนข้อมูลหลังจากการทำ Map และ Reduce ลงใน Disk Storage แต่ Spark จะเก็บข้อมูลทั้งหมดหลังจากการทำแต่ละ Transformation ไว้ที่หน่วยความจำ แต่ถ้าหน่วยความจำที่เก็บเต็ม Spark ก็ยังสามารถกระจายข้อมูลไปสู่ Disk Storage ได้ครับ

Spark RDDs


โดยหลัก ๆ แล้ว Spark จะทำงานแบบ Cluster computing (สามารถอ่านเพิ่มเติมได้ที่ การจัดการ Big Data (Hadoop และ MapReduce) นะครับ) เพื่อประมวลผลข้อมูลจาก Hadoop ซึ่งจะใช้แนวคิดแบบ Resilient Distributed Datasets (RDD) โดยมีลักษณะสำคัญคือ Distributed Collection of Data(การกระจายข้อมูลอยู่ในหลาย ๆ node ของ cluster) นอกจากนี้ยังมีความสามารถในการประมวลแบบขนาน (Parallel Operation-portioned) และ Fault-tolerant อีกด้วย อย่างเช่นหาก การทำงานใน node ใด node หนึ่งเกิดความเสียหายขึ้น spark ก็ยังสามารถทำงานได้ต่อไปเนื่องจากคุณสมบัติทั้งหมดที่กล่าวมา

ที่เป็นการรับคำสั่งให้ทำอะไรบางอย่าง และการส่งผลค่าออกมา แต่เมื่อเราส่งคำสั่งใด ๆ ออกไป ก็จะไม่มีอะไรเกิดขึ้น จนกว่าเราจะใช้คำสั่ง action ของของคำสั่งนั้น เนื่องจาก ข้อมูลของเรามีขนาดใหญ่มากและเพื่อเป็นการลดการประมวลผลของการทำงาน เราจึงไม่จำเป็นจำต้องเห็นทุกอย่างของการ Transformation จนกว่าเราจะมั่นใจได้ว่าเราต้องการเห็นผลลัพธ์ อย่างเช่น หากเรามีข้อมูลยอดขายของร้านค้า (sale) และเราต้องการทราบว่า ยอดขายสูงสุดเป็นเท่าไหร่ เราก็จะส่งคำสั่ง max(sale) ของยอดขายให้กับ Spark จากนั้นหากเราต้องการทราบผลลัพธ์ เราก็ต้องใช้คำสั่ง show() เพื่อแสดงค่าของ max(sale) ออกมา ด้วยเหตุนี้ล่ะครับที่ทำให้ Spark ทำงานอย่างรวดเร็ว


ที่มา: Spark and Python for Big Data with PySpark การจัดการ Big Data (Hadoop และ MapReduce)

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...