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