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

Positive Opportunity of PDPA in BIG Data

อีกหนึ่งโอกาสทางธุรกิจกับ PDPA ด้วย Big Data (Positive Opportunity of PDPA in BIG Data)

Read more...
Pakawadee Chanhom

Twitter โดนค่าปรับ 16.5 ล้านบาท เพราะไม่ทำ GDPR

แม้แต่ Twitter ก็ยังถูกฟ้องเพราะไม่ยอมทำ พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (GDPR EU) แล้ว PDPA ถ้าไม่ทำจะรอดเหรอ ?

Read more...
Apisit Anuntawan

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

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

Read more...